Java面试大总结(02)

纯个人理解解答Java面试试题,才学疏浅,有错误的地方希望大家多多改正。

导读:

1、Java中的异常分为哪几类?

2、error和exception的区别

3、请写出5个常见的RuntimeException异常

4、throw和throws的区别

5、final,finally,finalize的区别

6、Math.round(6.5)和Math.round(-6.5)的值是多少?

7、数组中有没有length()方法?String中有没有length()方法?

8、String、StringBuffer、StringBuilder的区别。

9、String是基本数据类型吗?

10、integer和int的输出值比较

11、String常用方法

12、数据类型之间的转换


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()方法返回相应字符串

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值