目录
1、JDK和JRE的区别是什么
JDK是Java开发工具包,JRE是Java运行时环境,二者的区别在于
JRE是Java程序运行所必须的,它包含jvm和一些Java的基础类库
JDK是Java程序开发所必须的,它包含JRE和一些开发工具
总结一下就是:JDK包含JRE,如果仅仅是运行Java程序,只要有JRE即可;如果是要开发Java程序,则必须要有JDK
2、&和&&的区别是什么
&和&&都是逻辑运算符,都可以实现取并的效果,即符号两边的表达式都为true,结果才是true
不一样的是&&有短路的功能,即当符号前面的表达式为false时,后面的表达式将不再执行,而&没有这个功能
另外,&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作
3、final finally finalize区别是什么
这是Java提供的三个关键字,虽然长的差不多,但是其实没什么联系,使用场景也完全不同
final可以修饰类、变量、方法,修饰类表示该类不能被继承、修饰方法表示该方法不能被重写、 修饰变量表示该变量是一个常量不能被重新赋值。
finally一般作用在try-catch代码块中,在处理异常的时候,无论程序是否出现异常,写在finally中的代码都会被执行,一般用来释放一些资源
finalize是Object类的一个方法,它会在一个对象被垃圾回收的时候自动被垃圾回收器来调用
4、下面几个字符串类的区别是什么
String、StringBuffer、 StringBuilder 、StringJoiner的区别
这几个都是关于字符串的类,他们的区别点有下面几个
-
可变性:String是不可变对象,其它的都是可变对象
-
线程安全:String和StringBuffer是线程安全的,StringBuilder和StringJoiner是线程不安全的
-
效率:StringBuilder和StringJoiner效率最高,StringBuffer居中,String效率最低
-
使用场景:少量字符串的操作使用String,大量字符串的频繁操作在多线程下使用StringBuffer,单线程下可以使用StringBuilder、StringJoiner