Java基础面试题
1、JDK和JRE 、JVM干什么的有的什么区别 (9.19)
1、JDK:Java的开发工具包
jdk里面包含了 jre和开发工具集(Javac编译工具和打包工具)
2、JRE:Java的运行环境
jre里面包含了jvm虚拟机和Java se的核心类库
jre里面有个bin目录== bin目录就是JVM(虚拟机)==
3、JVM:Java的虚拟机
jvm只认识.class的文件,jvm是Java能够跨平台的核心机制
2、== 和equals的区别(9.22)
== :
对于基本类型,比较的就是值
对于引用类型,比较的是地址
equals :
1、equals 不能用于基本数据的比较
2、如果没有重写equals,equals就相当于==
3、如果重写了equals方法,equals比较的是对象的内容
/**
* @author ZhouHao
* @version 1.0
* 成为想成为的人
*/
//==和equals 的区别 2023/9/22
public class Main {
public static void main(String[] args) {
/*
== : 基本数据类型的话:判断值是否相等,
引用数据类型的话,判断地址是否相等
equals: 只能比较引用类型,
*/
// 一、 == 判断基本数据类型
int z=10;
double h=10.0;
System.out.println(z==h); //true
// 二、 == 判断引用数据类型
A a = new A();
A a1=a;
A a2=a1;
System.out.println(a==a1); //true
System.out.println(a==a2); //true
System.out.println(a1==a2); //true
B b = new B();
B b2= new B();
A b1 =b;
//因为自己定义的类没有重equals,引用的是Object ,Object的equals比较是的对象是否相等。就是相当于==
System.out.println(b1.equals(b2)); //false
System.out.println(b==a); //false
// 三、equals判断引用类型
System.out.println(a.equals(b)); //
String zh1 = new String("周浩");
String zh2 = new String("周浩");
System.out.println(zh1==zh2); //两个对象 false
System.out.println(zh1.equals(zh2)); //比较内容 true
}
}
class A{
}
class B extends A{
}
final 在Java中的作用
一、用来修一个引用的话
1、基本类型:则该引用为常量,则该值是无法修改的
2、引用类型:如果引用的是对象、数组