一、第一天
1.JDK与JRE的区别
- (1)JDK
即Java Devellopment Kit(java开发工具),包含三个部分:
①.java开发工具(javac.exe/java/javah等)
②.java基础类库(rt.jar)
③.java运行环境(jre)
其中jre包含jvm和lib类库,即JDK包含开发工具和运行环境,可以独立执行。
注意:jdk中有bin、lib目录,jre中也有bin、lib,它们是不同的。jre的bin中包含jvm.dll即java虚拟机,而其lib为解释.class文件所需要的类库。
- (2)JRE
即Java Running Environment(Java运行环境)。包含JVM标准实现及Java核心类库。
注意:解释.class文件不光需要JVM还要lib类库,而且jre中有运行.class的java.exe。 - (3)jdk与jre的区别:
首先,我们要知道jre与jdk的一个显著的区别在于jdk包含javac,它可以将后缀名为.java的源文件编译为后缀名为.class的可以运行于Java虚拟机的字节码。而JVM则将字节码解释成机器指令,所以由于有了jvm,java语言的平台移植性就很好。
其次、jdk是开发环境,jre时运行环境。
jre=jvm+lib
jdk=jre+javac+rt.jar
补充:JVM:Java Virtual Machine(java虚拟机),它是一种用于计算设备的规范,是一个虚构出来的计算机。其主要目的是将java的字节码文件(.class)解释成机器可以识别的指令。
2.==和equals的区别是什么?
答:==是判断地址是否相等,equals是判断值是否相等。
3.两个对象的hashCode()相同,则equals()一定为true,对吗?
答:不对,我们在判断哈希集合中的数据是否相等时,首先判断hashcode是否相同,其次对应的值是否相同。两个都一样才为true。这是因为,不同的值计算出的hashcode编码值可能一样。
4.final在java中有什么作用?
答:final定义最终变量,即被final声明的变量即为常量。且要初始化。