Java面试17|Java基础

来源:互联网 发布:手机淘宝店名怎么改 编辑:程序博客网 时间:2024/06/06 08:48

1、final相关

(1)final在编译期的优化 只有在编译阶段能确定这个final引用赋值的内容,编译器才有可能进行编译时优化,而编译期能确定的内容只能来自于常量池中,如int,long,String等常量,不包含new String()等,也不包含方法返回值。将一个方法设成final后,编译器就可以把对那个方法的所有调用都置入“嵌入”调用里(内嵌机制),这样可以提高运行效率。

(2)final可以实现可见性 被final修饰的字段在构造器中一旦初始化完成,并且构造器没有把 “this”的引用传递出去,那么其他线程中就能看见final字段的值

(3)final可在类、方法或者变量上进行修饰,表示不可变性。为方法“上锁”,防止任何继承类改变它的本来含义和实现。设计程序时,若希望一个方法的行为在继承期间保持不变,而且不可被覆盖或改写,就可以采取这种做法。

 

 

2、关于字符串的问题

(1)String的+和StringBuilder有什么区别? 放在循环中有什么问题?

原创粉丝点击