java面试宝典错误很多_Java面试中常常出错的几道小题,试一下你能回答的全对不?...

大家好,又到了今天的知识分享时刻,最近一阶段小编会把整理出来的Java易错的面试题陆续的分享出来,后续我们再分享一些有难度的,有兴趣的朋友可以关注一下哦,好了,话不多说,请看题:

091d882830c9df3c5e6bc2e8296bc9f6.png

1、Math.round(11.5)等于多少? Math.round(-11.5)等于多少?

Math 类中提供了三个与取整有关的方法:ceil、floor、round 。

ceil 的英文意义是天花板,该方法就表示向上取整;

Math.ceil(11.3) 的结果为12,Math.ceil(-11.3)的结果是-11;

floor 的英文意义是地板,该方法就表示向下取整;

Math.ceil(11.6) 的结果为11,Math.ceil(-11.6) 的结果是-12;

round 方法:它表示“四舍五入”,算法为 Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整。Math.round(11.5) 的结果为12,Math.round(-11.5) 的结果为-11。

756aed00f7497e27ce1633f725d6021b.png

2、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?

使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的,另外final修饰的方法不能被重写,修饰的类不可被继承,修饰的成员变量不可改变。

比如:final StringBuffer a=new StringBuffer("abc");

执行如下语句将报编译错误;

a=new StringBuffer("123");

但是,执行如下语句则可以通过编译;

a.append("def");

2ca0f2fe4eb2e57f9298f4c1a4c5456e.png

3、super.getClass( )方法调用结果?

下面程序的输出结果是多少?

public class Test extends Date {

public static void main(String[ ] args) {

new Test().test( );

}

public void test( ) {

System.out.println(super.getClass().getName());

}

}

很奇怪,结果是 Test,在 test 方法中,直接调用 getClass().getName( ) 方法,返回的是 Test 类名,原因在于:由于 getClass( ) 在 Object 类中定义成 了final,子类不能覆盖该方法,所以,在 test 方法中调用getClass().getName( ) 方法,其实就是在调用从父类继承的getClass()方法,等效于调用super.getClass().getName( )方法,所以,super.getClass( ).getName( ) 方法返回的也应该是 Test。如果想得到父类的名称,应该用如下代码:getClass( ).getSuperClass( ).getName( );

53816fa0f84a7790d78a8b2b82e4f110.png

4、String, StringBuffer, StringBuilder的区别?

String 类是 final 修饰的,该类所表示的字符串对象不可变,一旦发生改变即创建新对象, 当我们通过字面量,常量来初始化一个字符串时,JVM首先会从字符串的常量池 (一个JVM内部维护的内存区域,用来保存已经创建过的字符串对象) 中查询用来保存该字符串的对象是否存在,若存在则直接引用,若不存在则创建该字符串对象并存入常量池,然后引用它。

StringBuffer 和 StringBuilder 是可变字符串对象,对字符串的修改操作不会创建新对象,都是在原有对象基础上进行修改,内部有很多操作字符串的方法,比如append()等。另外StringBuffer是线程安全的,同步处理的,性能稍慢;StringBuilder是非线程安全的,并发处理的,性能稍快。

感觉小编分享的有用的话,记得关注哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值