前言
现如今,Java 面试的本质就是八股文,把八股文面试题背好,面试才有可能表现好。金九银十招聘黄金季已经来临!大家在考研和找工作中纠结的时候,不妨先看一下面试题,毕竟我们的最终目标就是为了找一份心仪的工作!好工作都是早下手为强的,所以同学们要早做准备!
1、JDK、JRE. JVM之间的区别
- **JDK:**Java标准开发包,它提供了编译、运Java程序所需的各种具和资源,包括Java编译器、Java运时环境,以及常的Java类库等
- **JRE:**Java运环境,于运Java的字节码件。JRE中包括了JVM以及JVM作所需要的类库,普通户只需要安装JRE来运Java程序,程序开发者必须安装JDK来编译、调试程序。
- **JVM:**Java虚拟机,是JRE的部分,它是整个java实现跨平台的最核的部分,负责运字节码件。
2、hashCode()与equals()之间的关系
在Java中,每个对象都可以调的hashCode()法得到的哈希值(hashCode),相当于对象的指纹信息,通常来说世界上没有完全相同的两个指纹,但是在Java中做不到这么绝对,但是我们仍然可以利hashCode来做些提前的判断,如:
- 如果两个对象的hashCode不相同,那么这两个对象肯定不同的两个对象
- 如果两个对象的hashCode相同,不代表这两个对象定是同个对象,也可能是两个对象
- 如果两个对象相等,那么他们的hashCode就定相同
3、String. StringBuffer. StringBuilder的区别
- String是不可变的,如果尝试去修改,会新成个字符串对象,StringBuffer和StringBuilder是可变的
- StringBuffer是线程安全的,StringBuilder是线程不安全的,所以在单线程环境下StringBuilder效率会更
4、泛型中extends和super的区别
- < extends T>表示包括T在内的任何T的类
- < super T>表示包括T在内的任何T的类
5、==和equals方法的区别
- **==:**如果是基本数据类型,较是值,如果是引类型,较的是引地址
- **equals:**具体