java基础面试题应届生,java实战面试题
如何解决写爬虫IP受阻的问题?立即使用。
以下是java实习生的一些基本面试问题:
(更多相关面试问题推荐:java面试问答)
1、Java到底是什么东西?
Java是一种面向对象的编程语言,由SUN(斯坦福大学网络公司)于1995年推出,2010年被ORACLE收购。
2、Java这么热门它有什么特点呢?
Java是一种跨平台语言(在一个地方编译,在任何地方执行)。
比如:Java在Windows平台写hello.class文件——编译成hello.class文件;在不同的操作系统中安装相应的Java虚拟机(所有系统平台都必须有JVM才能运行Java编译文件),就可以直接运行了。
3、Java的三种技术架构
Java的基本技术架构有三种:JavaSE、JavaEE和JavaME。
Se:是JavaEE和JavaME的基础,很平。
Java:适合开发者的平台,主要针对WEB应用系统的开发。
JavaME:开发小型电子消费品;比如:APP在手机上;机器上的语言(电梯、扫地机器人)
4、在编写Java程序时的注意点
(1) Java是区分大小写的,对应的hello和Hello是不同的。
(2) Java对于所有的类,类的首字母都要大写。如果类名由多个单词组成,每个单词的第一个字母应该大写。例如MyFirstJava
(3)所有Java方法名的首字母都要小写。如果有多个单词,下面单词的首字母要大写。例如findByName
(4)源文件必须与类名一致。
5、Java有那几个基本数据类型
Java有八种基本数据类型:byte、short、int、long、float、double、char、boolean(六种数字类型:四种整数(byte、short、int、long)和两种浮点类型(float、double))byte:数据类型为8位、有符号、二进制。用在大型数组中节省空间,字节变量占用的空间只有int类型的四分之一。对应的打包类:Byte,取值为(27- 27-1)short:数据类型为二进制补码表示的16位整数。短数据类型也可以像字节一样节省空间。短整型变量是整型变量的一半。对应的包装类:Short。Value (215- 215-1)int:数据类型是用二进制补码表示的32位有符号整数。一般整型变量默认为int类型。值(231- 231-1)long:数据类型是64位有符号整数,用二进制补码表示。这种数据类型主要用于需要大整数的系统中。值(263- 263-1)float:数据类型是单精度32位浮点数。存储大浮点数时,Float可以节省内存空间。默认值为0.0f。浮点数不能用于表示精确值,如货币。double:数据类型是双精度64位浮点数。浮点数的默认类型是位双精度类型。double类型也不能表示精确值,如货币。默认值为0.0d。char:类型为单个16位Unicode字符。Char数据类型可以存储任何字符。但只能存储一个字符boolean:数据类型表示一位信息,只有两个值:true和false。该类型仅作为标志,记录真\假情况,默认值为false。
6、访问权限修饰符分别是什么?
访问权限修饰符有:public、protected、default(默认)、private。
Public:最大访问权限,用于外部接口。
Protected:用于保护从子类继承的东西。
默认:它是为访问这个包而设计的。
Private:访问权限仅限于类内部,外部类7、怎样才能运行一个程序?不能访问。
的所有Java程序都由公共静态viodmain (string [] args) {}方法启动。
8、Java中经常提到的对象是什么?
对象是类的实例,具有状态和行为。
例如,一只狗是一个对象,它的状态是:颜色、名字、品种;行为:摇尾巴、吠叫、进食等。
软件对象也有状态和行为。软件的对象是属性,行为通过方法来体现。
9、类是什么?
类是描述类对象的行为和状态的模板。一个类可以有多个方法。
10、类里面的方法,要如何去构造?
创建对象时,至少应该调用一个构造函数。构造方法的名称必须与类的名称相同,一个类可以有多个构造方法。
11、如何创造一个对象?
对象是从类创建的。在Java中,使用关键字new创建一个新对象。创建对象有三个步骤:
声明:声明一个对象,包括它的名字和类型。
实例化:使用关键字new创建一个对象。
初始化:使用new创建对象时,将调用构造函数来初始化对象。
12、源文件的声明有声明规则?
(1)源文件只能有一个公共类。
(2)可以有多个非公共类。
(3)源文件的名称必须与类的名称相同。
(4)如果源文件定义在一个包中,那么引导包应该在源文件的第一行。
(5)如果源文件包含导入语句,则在包语句和类之间定义。如果没有package语句,import语句应该在源文件的前面。
(6)、import语句和package语句对源文件中定义的所有类都有效。在同一个源文件中,不能为不同的类定义不同的包声明。
13、什么是变量?
变量是内存存储值的应用程序。也就是说,在创建变量的时候,需要在内存中申请空间。内存管理系统根据变量的类型分配空间,分配的空间只能用来存储这种类型的数据。
14、定义变量有什么作用?
通过定义不同的类型,可以用来存储不同类型的数字(如整数、小数、字符)。
15、各个类型之间能不能转换?
从低到高:
byte,short,char —— int —— long —— float —— double
可以自动转换。
(1)、不能将类型转换为布尔类型。
(2)不能把一个对象类型转换成不相关的类对象。
(3)当大容量类型转换为小容量类型时,必须强制类型转换(type)值类型。转换过程中可能会出现溢出或精度损失。
(4)自动类型转换必须满足转换前数据的位数小于转换后数据类型的位数。
(5)浮点到整数的转换是直接通过舍弃小数部分得到的,而不是四舍五入。
例如:(int)23.7==23,(int)-23.7==-23
16、java运算符有哪些?
(1)、算术运算符:类似于数学中的运算符,主要包括-* \%-(A是运算前在原基础上加1,A是先运算后减1)
(2)逻辑运算符:主要是!
(3)赋值运算符:主要起赋值的作用。常用的有==-=
(4)条件运算符:又称三元运算符。这个运算符有三个操作数,需要判断布尔表达式的值。这个操作符的主要目的是决定哪个值应该赋给一个变量。
例如:int a=(20==40)?30 : 50;
17、java主要的三种循环结构是?
Java中主要有三种循环结构:while循环、do……while循环和for循环。
、while是最基本的循环,它的结构是:
While(布尔表达式){
//循环内容
}
只要布尔表达式为真,循环就会继续。
(2)、do…while循环和while循环互相认识。不同之处在于do…while循环至少会执行一次。
做{
//循环内容
}while(布尔表达式)
(3)循环执行的次数在执行前确定。
For(初始化;布尔表达式;更新){
//代码语句
}
18、循环结构有什么关键字吗?
主要是:破而后续;
Break:主要用于循环语句或switch语句中跳出整个语句块;跳出当前循环,继续执行循环下面的语句。
Continue:适用于任何循环控制结构,其作用是使程序立即跳转到下一个循环的迭代。在for循环中,continue语句使程序立即跳转到update语句。
在while和do…while循环中,程序立即跳转到布尔表达式的判断语句。
19、Number类是一个什么东西?
当内置数据类型用作对象时,编译器会将内置类型装箱为包装类。类号属于java.lang包。的所有包装类(整型、长整型、字节型、双精度型、浮点型、短整型)都是抽象类编号的子类。
20、Java中Math类是怎么样的?
包含用于执行基本数学运算的属性和方法,如初始指数、对象、平方根和三角函数。Math的方法被定义为静态的。数学类可以在main函数中直接调用。
21、Math中的floor,round、ceil有什么区别?
Ceil:返回大于或等于给定指令参数的最小整数(例如:Math.ceil(23.2)==24,而不是舍入)
Floor:返回小于或等于给定指令参数的最大整数(例如:Math.ceil(23.7)==23,而不是舍入)
圆:是四舍五入的意思。算法是Math.round(x 0.5),即在原数上加0.5再向下舍入。因此,Math.round(11.4)等于11,Math.round(11.5)等于12,Math.round(-11.5)等于-11。
22、Character类是什么东西,该类有哪些方法?
Character:是Java语言为内置的基本数据类型char提供的包装类。
字符的主要方法有:isLetter()—不管是不是字母;string—返回字符串的长度,仅为1。IsUpperCase() -是否是大写字母;IsLowerCase()—是否是小写字母。
23、前面有反斜杠(\)的字符代表的转义字符有哪些?
的常见转义字符有:\t(在文本的这个位置插入一个tab键)
\d(在文本中插入后退键)
\n(在文本的此处插入一个换行符)
\r(在文本中插入enter)
24、Java的String类有什么注意事项?
在Java中,字符串属于一个对象,Java提供了一个字符串类来创建和操作字符串。不能更改字符串类。String对象一旦创建,其值就不能更改。如果需要修改字符串,应该使用StringBuffer或StringBuilder类。
25、length()方法,length属性和size()的方法有什么区别?
length()方法是针对字符串的,如果需要字符串的长度,就需要它的length()方法;
length()属性是针对Java中的数组的,要求数组的长度可以使用它的length属性;
java中的size()用于泛型集合。如果你想知道这个泛型有多少个元素,调用这个方法来查看!
26、连接字符串的方法有哪些?
有两种:
(1),字符串1.concat(字符串2)
(2)用“”操作连接字符串的比较常见,如“Hello”“Word”Word“!”;
27、Java中StringBuffer和StringBuilder类有什么区别?
StringBuilder类是在Java 5中提出的,它和StringBuffer最大的区别是StringBuilder的方法不是线程安全的(不能同步访问)。因为StringBuilder与StringBuffer相比有速度上的优势,所以大多数情况下使用StringBuilder。但是,当应用程序需要线性安全性时,必须使用StringBuffer类。
28、StringBuffer是如何实现对象修改的?
字符串缓冲主要有append()方法完成连接,insert()方法完成增加;reverse()方法完成反向;replace()方法完成替换。
如buf . append(" hi ");
buf.insert(0,“你好”);//在第一个内容之前添加
buf.insert(buf.length, Hello );//在末尾插入数据
String str=buf.reverse()。toString();//反转内容并将其转换为字符串
buf.replace(6,11,“是”);//替换word的内容
29、数组可以作为参数传递到方法里吗?
是的,30、如何获取当前时间,以及自定义时间?
打印当前时间:数据data=新日期();数据是当前时间!
设置日期时间格式,简单日期格式
simple date format sc=new simple date format(" yyyy-MM-DD HH:MM:ss ");
System.out.printf(sc.format(要转换的时间))
31、Java是如何进行休眠的?
Sleep()使当前线程进入停滞状态(阻塞当前进程),放弃使用cpu。目的是防止当前线程单独占用本线程获取的cpu资源,从而留出一定的时间给其他线程执行。你可以让程序休眠几毫秒。Tread.sleep(1000*3) //睡眠3秒32、如何设置获取日期格式的特定部分,比如年,月,日,日分秒?
就是使用Calender类。Calender类是一个抽象类,在实际使用中实现了对象的特定子类。创建对象的过程对程序员是透明的,只需要使用getInstance方法创建。
33、使用的话有什么类或者方法吗?
java.util.regex包主要包括以下三个类:
模式类:模式对象是正则表达式的编译表示,模式类没有公共的构造方法。要创建一个模式对象,必须首先调用它的公共静态编译方法,该方法返回一个模式对象。
Matcher类:Matcher对象是编译和匹配输入字符串的引擎。
patternsynctaxexception:patternsynctaxexception是一个非强制的异常类,表示正则表达式模式的语法错误。
34、构造方法与方法之间有什么联系?
构造的概念:当一个对象被创建时,系统会自动调用构造方法。没有自定义构造方法时,系统会调用默认构造方法。方法可以重载,不能重写。不同的构造方法具有相同的名称和不同的参数列表。参数表是它们识别的依据、标准和相似性。可能和人的名字一样但是和身份证不一样。
定义构造方法时,系统会根据传入参数的类型和数量自动匹配构造方法来初始化对象。
35、Scanner类是什么?如何创建Scanner对象
Java.util.Scanner是java5的新特性。我们可以得到用户的输入。
扫描器sc=new Scanner();
36、Scanner类的next()与nextLine()方法获取输入的字符串有什么区别?
下一个():
(1)、在结束输入前一定要读取有效字符;
(2)如果有效输入的字符之间有空格,将自动删除;
(3)只有输入有效字符,后面输入的空格才能用作分隔符或终止符;
(4)、next()不能得到带空格的字符串;
nextLine():
(1) Enter为结束字符,即输入Enter之前的所有字符;
(2)可以获得留白;
37、Java三种类型的异常是什么?检查时异常:最可检查的异常是那些由用户错误或问题引起的异常,这些异常是程序员无法预见的。例如,当您想要打开一个不存在的文件时,会发生异常,并且在编译期间不能简单地忽略这些异常。运行时异常:运行异常是程序员可以避免的异常。与检查时异常相反,运行时异常在编译时可以被忽略。错误:错误不是异常,而是程序员无法控制的问题。代码中的错误通常会被忽略。例如,当堆栈溢出时,会发生错误,并且在编译期间无法检查它们。
在Java中,所有异常类型都是内置java.lang.Throwable类的子类,也就是说,Throwable位于异常类层次结构的顶部。Throwable类下有两个异常分支,Exception和Error,如图。
38、异常和错误的区别?
的所有异常都继承Throwable类,这意味着所有异常都是一个对象。
一般来说,异常分为两部分:
(1) error错误:指程序不能处理的错误,表示应用程序运行时的重大错误。比如jvm运行时的OutOfMemoryError,Socket编程时占用的端口,程序都无法处理。
(2)异常:异常可分为运行时异常和编译异常。异常类有两个主要的子类:IOException类和RuntimeException类。
39、什么是捕捉异常?
使用try和catch关键字捕捉异常,并将try/catch代码块放在可能发生异常的地方。try/catch代码块中的代码成为保护代码。
40、throws和throw关键字的区别?
如果一个方法没有捕获检查时异常,则必须用throws关键字声明它。Throws关键字放在方法签名的末尾。您还可以使用throw来抛出一个异常,无论它是新实例化的还是刚刚被捕获的。
一个方法可以声明抛出多个异常,用逗号分隔。
41、在Java中如何自定义异常?
您可以编写自己的异常类:
(1)所有异常必须是Throwable类的子类;
(2)如果检查时要写异常,需要继承异常;
(3)如果需要编写RuntimeException,需要继承RuntimeException()异常。
42、什么是继承?继承的特点有哪些?
继承就是子类继承了父类的特性和行为,这样它的对象(实例)就有了父类的实例域和方法,或者子类继承了父类的方法,这样它的子类就有了与父类相同的行为。
特点:
(1)、子类具有父类、方法的非私有属性;
(2)、子类可以有自己的属性和方法,即子类可以扩展父类;
(3)、子类可以有自己的方式实现父类的方法;
(4) java继承只能是单一继承,但可以是多重继承。单一继承意味着一个子类只能继承一个父类。多重继承是指:A继承B,B继承C,所以根据关系,C类是B类的父类,B是A的父类,这是Java继承区别于C的一个特点。
43、继承的关键字是什么?
继承可以通过使用两个关键字来实现:扩展和实现。而且所有的类都继承自java.lang.Object当一个类没有继承的关键字时,默认会继承Object类(这个类在java.lang包中,所以不需要导入)。super关键字:可以用super关键字访问父类的成员,用来引用当前对象继承的父类。
this关键字:对自己的引用。final关键字:声明类可以将类定义为不可继承,即最终类;或者用于修改不能被子类覆盖的方法。
44、父类的构造器有什么特点?
子类不能继承父类的构造函数(constructor)和构造函数(带参数),但如果父类的构造函数有参数,子类的构造函数必须通过supper关键字显式调用父类是构造函数的适当参数列表:
如果父类有一个无参数的构造函数,就没有必要在子类的构造函数中用supper调用父类。如果没有使用super关键字,系统会自动调用父类的无参数构造函数。
45、什么是重写(override),什么是重载(overLoad),他们两个的区别?重写:是一个子类,重写了父类允许访问的方法的实现过程。返回值和参数不能变,也就是外壳不能变,核心变。重写的好处是子类可以根据需要具体到自己的行为。也就是说,子类可以根据需要实现父类的方法。重写方法不能抛出检查时异常或声明范围比重写方法更广的异常。重载:重载在一个方法名相同但参数不同的类中,返回类型可以相同也可以不同。每个重载方法(或构造函数)必须有一个唯一的参数类型列表。最常见的是构造函数的重载。区别:方法的重写和重载是java多态性的不同表现。重写是父类和子类之间多态性的表现,重载可以理解为多态性的具体表现。
(1)、方法重载定义在一个类中有多个方法同名,且参数不同或相同个数、不同类型、不同顺序,则成为方法重载。
(2)方法重写是子类方法的名称与父方法的名称相同,参数的数量和类型相同,返回值相同的方法,称为重写。
(3)方法重载是一个类的多态表达,重写两个方法是子类和父类的多态表达。
46、什么是抽象类,如何定义抽象类与方法?抽象类:除了抽象类不能实例化对象,类的其他功能还是存在的。成员变量、成员方法、构造方法的访问方法与普通类不同。由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用:
父类包含子类集合的公共方法,但是这些方法不能使用,因为父类本身是抽象的。在Java中,抽象类代表一种继承关系。一个类只能继承一个抽象类,但是一个类可以实现多个接口。定义抽象类:在Java语言中使用抽象类定义抽象类。定义抽象方法:如果你想设计这样一个类,它包含一个特殊的成员方法,这个方法的具体实现是由其子类决定的,那么你可以在父类中声明这个方法。Abstract关键字还用于声明抽象方法,抽象方法只包含一个方法名,不包含方法体(抽象方法是未定义的,方法名后面直接跟一个分号,而不是花括号)。如果一个类有抽象方法那么一定是抽象类
47、声明抽象方法会有什么结果?
(1)如果一个类包含抽象方法,那么它一定是抽象的。
(2)任何子类都必须覆盖父类的抽象方法或者声明自己为抽象类。
(推荐课程:java课程)
48、封装是什么,有什么优点?Java是怎么进行封装的?封装:是指对抽象函数接口的实现细节进行部分封装和隐藏的方法。封装可以被认为是一个保护屏障,防止这个类的代码和数据被外部类定义的代码随机访问。优点:
(1)良好的封装可以减少耦合;
(2)可以自由修改类的内部结构;
(3)可以更精确地控制成员变量;
(4)隐藏信息,实现细节;进行封装:
(1)修改属性的可见性,限制对属性的访问(一般限于私有);
(2)为每个值属性提供对外部接口的公共方法访问。也就是说,它用于访问私有属性。(通常,这些方法被称为getter和setter方法,例如开发中的实体类)
49、接口与类的异同?
相同:
(1)一个接口可以有多个方法;
(2)接口文件保存在文件末尾。java。
(3)接口的字节码文件保存在。班级。
不同:
(1)、接口不能实例化对象(与抽象类相同)
(2)接口没有构造方法;
(3)接口中的所有方法必须是抽象方法;
(4)接口不能包含成员变量;
(5)接口不能被类继承(实现);
(6)接口支持多重继承;
50、抽象类和接口的区别?
(1)抽象类中的方法可以有方法体,即可以实现方法的具体功能,而接口中的方法不能。
(2)抽象类中的成员变量可以是各种类型,而接口中的成员变量只能是public static final类型;
(3)接口不能包含静态代码块和静态方法(用static修饰的方法),而抽象类可以有静态代码块和静态方法。
(4)一个类只能继承一个抽象类,而一个类可以实现多个接口。
接口是隐士抽象。当你声明一个接口时,你不必使用abstract关键字。接口中的每一个方法也都是隐式抽象的,不用在声明的时候加上abstract。接口中的方法在接口中具有实现接口的类,以实现接口中的方法。
作为一个Java毕业生,Java基础是肯定会被问到的一个至关重要的问题。如果你掌握了所有这些基础知识,我们通过面试的机会很小。我们一起来复习一下Java的基础知识吧!
1、Java到底是什么东西?
Java是一种面向对象的编程语言,由SUN(斯坦福大学网络公司)于1995年推出,2010年被ORACLE收购。
2、Java这么热门它有什么特点呢?
Java是一种跨平台语言(在一个地方编译,在任何地方执行)。
比如:Java在Windows平台写hello.class文件——编译成hello.class文件;在不同的操作系统中安装相应的Java虚拟机(所有系统平台都必须有JVM才能运行Java编译文件),就可以直接运行了。
3、Java的三种技术架构
Java的基本技术架构有三种:JavaSE、JavaEE和JavaME。
Se:是JavaEE和JavaME的基础,很平。
Java:适合开发者的平台,主要针对WEB应用系统的开发。
JavaME:开发小型电子消费品;比如:APP在手机上;机器上的语言(电梯、扫地机器人)
4、在编写Java程序时的注意点
(1) Java是区分大小写的,对应的hello和Hello是不同的。
(2) Java对于所有的类,类的首字母都要大写。如果类名由多个单词组成,每个单词的第一个字母应该大写。例如MyFirstJava
(3)所有Java方法名的首字母都要小写。如果有多个单词,下面单词的首字母要大写。例如findByName
(4)源文件必须与类名一致。
5、Java有那几个基本数据类型
Java有八种基本数据类型:byte、short、int、long、float、double、char、boolean(六种数字类型:四种整数(byte、short、int、long)和两种浮点类型(float、double))byte:数据类型为8位、有符号、二进制。用在大型数组中节省空间,字节变量占用的空间只有int类型的四分之一。对应的打包类:Byte,取值为(27- 27-1)short:数据类型为二进制补码表示的16位整数。短数据类型也可以像字节一样节省空间。短整型变量是整型变量的一半。对应的包装类:Short。Value (215- 215-1)int:数据类型是用二进制补码表示的32位有符号整数。一般整型变量默认为int类型。值(231- 231-1)long:数据类型是64位有符号整数,用二进制补码表示。这种数据类型主要用于需要大整数的系统中。值(263- 263-1)float:数据类型是单精度32位浮点数。存储大浮点数时,Float可以节省内存空间。默认值为0.0f。浮点数不能用于表示精确值,如货币。double:数据类型是双精度64位浮点数。浮点数的默认类型是位双精度类型。double类型也不能表示精确值,如货币。默认值为0.0d。char:类型为单个16位Unicode字符。Char数据类型可以存储任何字符。但只能存储一个字符boolean:数据类型表示一位信息,只有两个值:true和false。该类型仅作为标志,记录真\假情况,默认值为false。
6、访问权限修饰符分别是什么?
访问权限修饰符有:public、protected、default(默认)、private。
Public:最大访问权限,用于外部接口。
Protected:用于保护从子类继承的东西。
默认:它是为访问这个包而设计的。
Private:访问权限仅限于类内部,外部类7、怎样才能运行一个程序?不能访问。
的所有Java程序都由公共静态viodmain (string [] args) {}方法启动。
8、Java中经常提到的对象是什么?
对象是类的实例,具有状态和行为。
例如,一只狗是一个对象,它的状态是:颜色、名字、品种;行为:摇尾巴、吠叫、进食等。
软件对象也有状态和行为。软件的对象是属性,行为通过方法来体现。
9、类是什么?
类是描述类对象的行为和状态的模板。一个类可以有多个方法。
10、类里面的方法,要如何去构造?
创建对象时,至少应该调用一个构造函数。构造方法的名称必须与类的名称相同,一个类可以有多个构造方法。
11、如何创造一个对象?
对象是从类创建的。在Java中,使用关键字new创建一个新对象。创建对象有三个步骤:
声明:声明一个对象,包括它的名字和类型。
实例化:使用关键字new创建一个对象。
初始化:使用new创建对象时,将调用构造函数来初始化对象。
12、源文件的声明有声明规则?
(1)源文件只能有一个公共类。
(2)可以有多个非公共类。
(3)源文件的名称必须与类的名称相同。
(4)如果源文件定义在一个包中,那么引导包应该在源文件的第一行。
(5)如果源文件包含导入语句,则在包语句和类之间定义。如果没有package语句,import语句应该在源文件的前面。
(6)、import语句和package语句对源文件中定义的所有类都有效。在同一个源文件中,不能为不同的类定义不同的包声明。
13、什么是变量?
变量是内存存储值的应用程序。也就是说,在创建变量的时候,需要在内存中申请空间。内存管理系统根据变量的类型分配空间,分配的空间只能用来存储这种类型的数据。
14、定义变量有什么作用?
通过定义不同的类型,可以用来存储不同类型的数字(如整数、小数、字符)。
15、各个类型之间能不能转换?
从低到高:
byte,short,char —— int —— long —— float —— double
可以自动转换。
(1)、不能将类型转换为布尔类型。
(2)不能把一个对象类型转换成不相关的类对象。
(3)当大容量类型转换为小容量类型时,必须强制类型转换(type)值类型。转换过程中可能会出现溢出或精度损失。
(4)自动类型转换必须满足转换前数据的位数小于转换后数据类型的位数。
(5)浮点到整数的转换是直接通过舍弃小数部分得到的,而不是四舍五入。
例如:(int)23.7==23,(int)-23.7==-23
16、java运算符有哪些?
(1)、算术运算符:类似于数学中的运算符,主要包括-* \%-(A是运算前在原基础上加1,A是先运算后减1)
(2)逻辑运算符:主要是!
(3)赋值运算符:主要起赋值的作用。常用的有==-=
(4)条件运算符:又称三元运算符。这个运算符有三个操作数,需要判断布尔表达式的值。这个操作符的主要目的是决定哪个值应该赋给一个变量。
例如:int a=(20==40)?30 : 50;
17、java主要的三种循环结构是?
Java中主要有三种循环结构:while循环、do……while循环和for循环。
、while是最基本的循环,它的结构是:
While(布尔表达式){
//循环内容
}
只要布尔表达式为真,循环就会继续。
(2)、do…while循环和while循环互相认识。不同之处在于do…while循环至少会执行一次。
做{
//循环内容
}while(布尔表达式)
(3)循环执行的次数在执行前确定。
For(初始化;布尔表达式;更新){
//代码语句
}
18、循环结构有什么关键字吗?
主要是:破而后续;
Break:主要用于循环语句或switch语句中跳出整个语句块;跳出当前循环,继续执行循环下面的语句。
Continue:适用于任何循环控制结构,其作用是使程序立即跳转到下一个循环的迭代。在for循环中,continue语句使程序立即跳转到update语句。
在while和do…while循环中,程序立即跳转到布尔表达式的判断语句。
19、Number类是一个什么东西?
当内置数据类型用作对象时,编译器会将内置类型装箱为包装类。类号属于java.lang包。的所有包装类(整型、长整型、字节型、双精度型、浮点型、短整型)都是抽象类编号的子类。
20、Java中Math类是怎么样的?
包含用于执行基本数学运算的属性和方法,如初始指数、对象、平方根和三角函数。Math的方法被定义为静态的。数学类可以在main函数中直接调用。
21、Math中的floor,round、ceil有什么区别?
Ceil:返回大于或等于给定指令参数的最小整数(例如:Math.ceil(23.2)==24,而不是舍入)
Floor:返回小于或等于给定指令参数的最大整数(例如:Math.ceil(23.7)==23,而不是舍入)
圆:是四舍五入的意思。算法是Math.round(x 0.5),即在原数上加0.5再向下舍入。因此,Math.round(11.4)等于11,Math.round(11.5)等于12,Math.round(-11.5)等于-11。
22、Character类是什么东西,该类有哪些方法?
Character:是Java语言为内置的基本数据类型char提供的包装类。
字符的主要方法有:isLetter()—不管是不是字母;string—返回字符串的长度,仅为1。IsUpperCase() -是否是大写字母;IsLowerCase()—是否是小写字母。
23、前面有反斜杠(\)的字符代表的转义字符有哪些?
的常见转义字符有:\t(在文本的这个位置插入一个tab键)
\d(在文本中插入后退键)
\n(在文本的此处插入一个换行符)
\r(在文本中插入enter)
24、Java的String类有什么注意事项?
在Java中,字符串属于一个对象,Java提供了一个字符串类来创建和操作字符串。不能更改字符串类。String对象一旦创建,其值就不能更改。如果需要修改字符串,应该使用StringBuffer或StringBuilder类。
25、length()方法,length属性和size()的方法有什么区别?
length()方法是针对字符串的,如果需要字符串的长度,就需要它的length()方法;
length()属性是针对Java中的数组的,要求数组的长度可以使用它的length属性;
java中的size()用于泛型集合。如果你想知道这个泛型有多少个元素,调用这个方法来查看!
26、连接字符串的方法有哪些?
有两种:
(1),字符串1.concat(字符串2)
(2)用“”操作连接字符串的比较常见,如“Hello”“Word”Word“!”;
27、Java中StringBuffer和StringBuilder类有什么区别?
StringBuilder类是在Java 5中提出的,它和StringBuffer最大的区别是StringBuilder的方法不是线程安全的(不能同步访问)。因为StringBuilder与StringBuffer相比有速度上的优势,所以大多数情况下使用StringBuilder。但是,当应用程序需要线性安全性时,必须使用StringBuffer类。
28、StringBuffer是如何实现对象修改的?
字符串缓冲主要有append()方法完成连接,insert()方法完成增加;reverse()方法完成反向;replace()方法完成替换。
如buf . append(" hi ");
buf.insert(0,“你好”);//在第一个内容之前添加
buf.insert(buf.length, Hello );//在末尾插入数据
String str=buf.reverse()。toString();//反转内容并将其转换为字符串
buf.replace(6,11,“是”);//替换word的内容
29、数组可以作为参数传递到方法里吗?
是的,30、如何获取当前时间,以及自定义时间?
打印当前时间:数据data=新日期();数据是当前时间!
设置日期时间格式,简单日期格式
simple date format sc=new simple date format(" yyyy-MM-DD HH:MM:ss ");
System.out.printf(sc.format(要转换的时间))
31、Java是如何进行休眠的?
Sleep()使当前线程进入停滞状态(阻塞当前进程),放弃使用cpu。目的是防止当前线程单独占用本线程获取的cpu资源,从而留出一定的时间给其他线程执行。你可以让程序休眠几毫秒。Tread.sleep(1000*3) //睡眠3秒32、如何设置获取日期格式的特定部分,比如年,月,日,日分秒?
就是使用Calender类。Calender类是一个抽象类,在实际使用中实现了对象的特定子类。创建对象的过程对程序员是透明的,只需要使用getInstance方法创建。
33、使用的话有什么类或者方法吗?
java.util.regex包主要包括以下三个类:
模式类:模式对象是正则表达式的编译表示,模式类没有公共的构造方法。要创建一个模式对象,必须首先调用它的公共静态编译方法,该方法返回一个模式对象。
Matcher类:Matcher对象是编译和匹配输入字符串的引擎。
patternsynctaxexception:patternsynctaxexception是一个非强制的异常类,表示正则表达式模式的语法错误。
34、构造方法与方法之间有什么联系?
构造的概念:当一个对象被创建时,系统会自动调用构造方法。没有自定义构造方法时,系统会调用默认构造方法。方法可以重载,不能重写。不同的构造方法具有相同的名称和不同的参数列表。参数表是它们识别的依据、标准和相似性。可能和人的名字一样但是和身份证不一样。
定义构造方法时,系统会根据传入参数的类型和数量自动匹配构造方法来初始化对象。
35、Scanner类是什么?如何创建Scanner对象
Java.util.Scanner是java5的新特性。我们可以得到用户的输入。
扫描器sc=new Scanner();
36、Scanner类的next()与nextLine()方法获取输入的字符串有什么区别?
下一个():
(1)、在结束输入前一定要读取有效字符;
(2)如果有效输入的字符之间有空格,将自动删除;
(3)只有输入有效字符,后面输入的空格才能用作分隔符或终止符;
(4)、next()不能得到带空格的字符串;
nextLine():
(1) Enter为结束字符,即输入Enter之前的所有字符;
(2)可以获得留白;
37、Java三种类型的异常是什么?检查时异常:最可检查的异常是那些由用户错误或问题引起的异常,这些异常是程序员无法预见的。例如,当您想要打开一个不存在的文件时,会发生异常,并且在编译期间不能简单地忽略这些异常。运行时异常:运行异常是程序员可以避免的异常。与检查时异常相反,运行时异常在编译时可以被忽略。错误:错误不是异常,而是程序员无法控制的问题。代码中的错误通常会被忽略。例如,当堆栈溢出时,会发生错误,并且在编译期间无法检查它们。
在Java中,所有异常类型都是内置java.lang.Throwable类的子类,也就是说,Throwable位于异常类层次结构的顶部。Throwable类下有两个异常分支,Exception和Error,如图。
38、异常和错误的区别?
的所有异常都继承Throwable类,这意味着所有异常都是一个对象。
一般来说,异常分为两部分:
(1) error错误:指程序不能处理的错误,表示应用程序运行时的重大错误。比如jvm运行时的OutOfMemoryError,Socket编程时占用的端口,程序都无法处理。
(2)异常:异常可分为运行时异常和编译异常。异常类有两个主要的子类:IOException类和RuntimeException类。
39、什么是捕捉异常?
使用try和catch关键字捕捉异常,并将try/catch代码块放在可能发生异常的地方。try/catch代码块中的代码成为保护代码。
40、throws和throw关键字的区别?
如果一个方法没有捕获检查时异常,则必须用throws关键字声明它。Throws关键字放在方法签名的末尾。您还可以使用throw来抛出一个异常,无论它是新实例化的还是刚刚被捕获的。
一个方法可以声明抛出多个异常,用逗号分隔。
41、在Java中如何自定义异常?
您可以编写自己的异常类:
(1)所有异常必须是Throwable类的子类;
(2)如果检查时要写异常,需要继承异常;
(3)如果需要编写运行时异常,需要继承运行。
timeException()异常
42、什么是继承?继承的特点有哪些?
继承是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
特点:
(1)、子类拥有父类非private的属性,方法;
(2)、子类可以拥有自己的属性和方法,即子类可以对父类进行扩展;
(3)、子类可以拥有自己的方式实现父类的方法;
(4)、Java继承只能是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是:A继承B,B继承C,所以按照关系就行C类是B类的父类,B是A的父类,这就是java继承区别与c++的一个特征。
43、继承的关键字是什么?
继承可以使用extends和Implements这两个关键字来实现继承。而且所有的类都继承与java.lang.Object,当一个类没有继承的关键字,则默认继承Object(这个类在java.lang包中所以不需要导包)类。super关键字:可以super关键字来实现对父类成员的访问,用来引用当前对象继承的父类。
this关键字:指向自己的引用。final关键字:声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写
44、父类的构造器有什么特点?
子类不能继承父类的构造器(构造方法和构造函数(带有参数)),但是父类的构造器带有参数的,则必须在子类的构造器中显式的通过supper关键字调用父类是构造器并适当的参数列表:
如果父类有无参构造器,则在子类的构造器中用supper调用父类不是必须的,如果没有使用super关键字,则系统会自动调用父类的无参构造器。
45、什么是重写(override),什么是重载(overLoad),他们两个的区别?重写:是子类对父类的允许访问的方法的实现过程进行重写编写,返回值和参数不能改变,即外壳不能改变,核心改变。重写的好处在于子类可以根据需要,定于特定于自己的行为。也就是说子类能够根据需要实现父类的方法。重写方法不能抛出检查时异常或者比重写方法声明更加宽泛的异常。重载:重载是在一个类里面,方法名相同,而参数不同,返回类型可以相同也可以不相同。每一个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。最常见的就是构造器的重载。区别:方法的重写与重载是java多态的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解为多态的具体表现形式。
(1)、方法重载是一个类中定义了多个方法名相同,而且参数不同或数量相同类型不同和次序不同,则成为方法的重载。
(2)、方法重写是在子类存在方法与父类方法的名字相同,而且参数的个数与类型一样,返回值也一样的方法,称为重写
(3)、方法重载是一个类的多态性表现,二方法的重写是子类与父类的一种多态表现。
46、什么是抽象类,如何定义抽象类与方法?抽象类:抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量,成员方法和构造方法的访问方式和普通类不一样。由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用:
父类包含了子类集合的常见方法,但是由于父类本身是抽象的,所以不能使用这些方法。在Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口。定义抽象类:在Java语言中使用abstract class来定义抽象类。定义抽象方法:如果想设计这样的类,该类包含一个特殊的成员方法,该方法的具体实现有它的子类确定,那么你可以在父类中声明该方法。Abstract关键字同样用来声明抽象方法,抽象方法只包含一个方法名,没有方法体(抽象方法没有定义,方法名后面直接跟一个分号,而不是花括号)。如果一个类有抽象方法那么一定是抽象类
47、声明抽象方法会有什么结果?
(1)、如果一个类包含抽象方法,那么该类必须是抽象类
(2)、任何一个子类必须重写父类的抽象方法,或声明自身为抽象类。
48、封装是什么,有什么优点?Java是怎么进行封装的?封装:是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。封装可以认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。优点:
(1)、良好的封装能够减少耦合;
(2)、类内部的结构可以自由修改;
(3)、可以对成员变量进行更精准的控制;
(4)、隐藏信息,实现细节;进行封装:
(1)、修改属性的可见性来限制对属性的访问(一般限制为private);
(2)、对每一个值属性提供对外的接口的公共方法访问。也就是说,用于对私有属性的访问。(通常情况下这些方法被称为getter和setter方法,例如开发中的实体类)
49、接口与类的异同?
相同:
(1)、一个接口可以可以有多个方法;
(2)、接口文件保存在.java结尾的文件中
(3)、接口的字节码文件保存在.class结尾的文件中
不同:
(1)、接口不能实例化对象(与抽象类一样)
(2)、接口没有构造方法;
(3)、接口中所有的方法必须是抽象方法;
(4)、接口中不能包含成员变量;
(5)、接口不能被类继承(被类实现 );
(6)、接口支持多继承;
50、抽象类和接口的区别?
(1)、抽象类中的方法可以有方法体,就是能实现方法具体功能,但是接口中的方法不行。
(2)、抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;
(3)、接口中不能包含静态代码块以及静态方法(用static修饰的方法),而抽象类可以有静态代码块和静态方法
(4)、一个类只能继承一个抽象类,而一个类可以实现多个接口。
接口是隐士抽象的,当声明一个接口时,不必使用abstract关键字。接口中每一个方法也是隐性抽象的,声明时不必加abstract。接口中的方法在接口中有实现接口的类来实现接口中的方法。
相关推荐:java入门
以上就是java实习生面试题的详细内容,更多请关注我们其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。