当前位置:  首页>> 技术小册>> Java面试指南

JDK 和 JRE 有什么区别?
JDK(Java Development Kit)是Java开发工具包,包含了编译器、Java运行环境和开发工具等。JRE(Java Runtime Environment)是Java运行环境,包含了Java虚拟机和Java核心类库。简单来说,如果需要运行Java程序,只需安装JRE就可以了;如果需要编写Java程序,需要安装JDK。

== 和 equals 的区别是什么?
“==”比较的是两个变量的值是否相等,”equals”比较的是两个对象是否相等。”==”比较的是引用的地址,也就是说两个变量是否指向同一个对象;”equals”方法比较的是对象的内容是否相等。

两个对象的hashCode()相同,则equals()也一定为true,对吗?
不对。hashCode()是用来确定对象在集合中的存储位置,equals()是用来判断对象是否相等。虽然两个对象的hashCode()相同,但它们的内容仍有可能不同,因此equals()方法返回false。

final 在 Java 中有什么作用?
final可以修饰类、方法、变量。final修饰类表示该类不能被继承;final修饰方法表示该方法不能被重写;final修饰变量表示该变量是常量,不可更改。

Math.round(-1.5) 等于多少?
在Java中,Math.round(-1.5)等于-1,因为round()方法返回最接近参数的整数,若有两个数离参数相等,会返回偶数的那个。

String 属于基础的数据类型吗?
不是。String是Java中的一个类,不属于基础的数据类型。基础数据类型包括byte、short、int、long、float、double、char、boolean。

Java 中操作字符串都有哪些类?它们之间有什么区别?
Java中操作字符串的类包括String、StringBuilder和StringBuffer。String类是不可变类,一旦创建就不能更改;StringBuilder和StringBuffer都是可变类,可以动态修改字符串内容。StringBuilder是线程不安全的,StringBuffer是线程安全的。