纯个人理解解答Java面试试题,才学疏浅,有错误的地方希望大家多多改正。
导读:
6、Math.round(6.5)和Math.round(-6.5)的值是多少?
7、数组中有没有length()方法?String中有没有length()方法?
8、String、StringBuffer、StringBuilder的区别。
1、Java中的异常分为哪几类?
按照异常处理时机分为两大类:编译时异常和运行时异常。
编译时异常:(CheckedException)java必须处理的异常,编译时就会发生错误的异常。需要try ... catch语句处理异常或者throws声明抛出,交给它的父类处理该异常。一般有IOException
运行时异常:(RuntimeException)不要求java必须处理的异常,但是这类异常如果发生,编译虽然通过,一旦运行程序就会终止。需要人为排除原因,debug的来源。常有:数组下标越界,空指针异常,算法错误,加载不到需要的类......
2、error和exception的区别
error和exception都继承Throwable类,区别如下:
error:依靠java程序无法解决的严重错误,一般指与虚拟机相关的错误,比如内存不足,系统崩溃......
exception:由java 程序抛出和处理的非严重错误,它分为运行时异常和受检查的异常。遇到这类异常应当尽快处理,使程序恢复运行。
3、请写出5个常见的RuntimeException异常
NullPointerException:空指针异常,原因:调用了未初始化的对象或者不存在的对象
IndexOutOfBoundException:数组下标越界,原因:操作数组时超出数组最大长度
ClassNotFounException:指定的类找不到,原因:类的名称或者路径错误
ClassCastException:数据类型转换错误
IllegalArgumentException:方法传递参数错误
NumberFormatException:字符串转换成数字异常
InstantiationException:实例化异常
ArithmeticException:算数错误异常
4、throw和throws的区别
throw表示抛出某种异常,throws表示声明会抛出某种异常
throw用在方法体内,throws用在方法声明后边
throw一旦执行,必定是抛出了某种异常,throws表示出现异常只是一种可能性,并不一定会发生这种异常。
5、final,finally,finalize的区别
final:声明类 、属性、方法,final修饰的类不可继承,final修饰的方法不可被重写,final修饰的属性不可变
finally:异常处理结构语句的一部分,表示总是执行
finalize:Object类的一个方法,垃圾回收机制调用被回收对象的此方法,提供垃圾收集时的其他资源回收,也可以可以让对象“死亡”,值得注意的是,当我们主动去调用此方法时,不回让对象死亡,这是一个被动的方法。
6、Math.round(6.5)和Math.round(-6.5)的值是多少?
Math.round(6.5)的返回值是7
Math.round(-6.5)的返回值是-6
四舍五入的原理是+0.5然后取整
7、数组中有没有length()方法?String中有没有length()方法?
数组中没有length()方法,而是有length属性
String中有length()方法
8、String、StringBuffer、StringBuilder的区别。
String:引用的字符串不可更改,final修饰的
StringBuffer、StringBuilder 字符串对象可直接修改
String:操作对少量字符串的操作
StringBuffer:多线程下,对字符缓冲池中的数据进行大量操作,,线程安全
StringBuilder:单线程下,对字符缓冲池中的数据进行大量操作,,线程不安全
9、String是基本数据类型吗?
String是引用数据类型,不是基本数据类型
10、integer和int的输出值比较
案例1:
Integer f1=100,f2=100,f3=150,f4=150;
int f5=150;
System.out.println(f1==f2);
System.out.println(f3==f4);
System.out.println(f3==f5);
答案:true false true
案例2:
Integer f1=new Integer(3);
Integer f2=3;
int f3=3;
System.out.println(f1==f2);
System.out.println(f1==f3);
System.out.println(f2==f3);
答案:false true true
注:Integer之间的数值-128~127之间才能相等。
11、String常用方法
int length():返回字符串的长度
boolean equals(object obj):将该字符串与指定对象相比较,返回true或者false;
String[] split(String str,int limit):根据某个字符分割字符串
String trim():去除字符串中的空格
String substring(int beginIndex,int lastIndex):提取beginIndex到lastIndex的字符串
int indexOf(String str):获取str在字符串中第一次出现的位置
char charAT(int index):获取字符串指定位置的字符
String toLowerCase():将字符串转换成小写
String toUpperCase():将字符串转换成大写
12、数据类型之间的转换
(1)字符串如何转基本数据类型
调用基本数据类型对应的包装类中的方法parseXXX(String) 或者ValueOf(String)即可返回相应的基本数据类型
(2)基本数据类型如何转字符串
a、将基本数据类型与空字符串(" ")和连接(+)即可获取其对应的字符串
b、调用String类中的valueOf()方法返回相应字符串