一、java基础面试题
1、JDK和JRE有什么区别?
JRE:Java Runtime Environment( java 运行时环境)。即java程序的运行时环境,包含了 java 虚拟机,java基础类库。
JDK:Java Development Kit( java 开发工具包)。即java语言编写的程序所需的开发工具包。
JDK 包含了 JRE,同时还包括 java 源码的编译器 javac、监控工具 jconsole、分析工具 jvisualvm等。
2、==、===和equals的区别是什么?
== 是关系运算符,equals() 是方法,结果都返回布尔值
Object 的 == 和 equals() 比较的都是地址,作用相同
== 作用:
基本类型,比较值是否相等
引用类型,比较内存地址值是否相等
不能比较没有父子关系的两个对象
=== 作用:
严格运算符,要求不仅值要相等,而且也要求类型相同
equals()方法的作用:
JDK 中的类一般已经重写了 equals(),比较的是内容
自定义类如果没有重写 equals(),将调用父类(默认 Object 类)的 equals() 方法,Object 的 equals() 比较使用了 this == obj
可以按照需求逻辑,重写对象的 equals() 方法(重写 equals 方法,一般须重写 hashCode 方法)
3、final在java中有什么作用?
final 语义是不可改变的。
(1)被final 修饰的类,不能够被继承。
(2)被final 修饰的成员变量必须要初始化,赋初值后不能再重新赋值(可以调用对象方法