java面试准备之基础概念与常识(1)
Java 语言有哪些特点?

JDK JRE JVM分别是什么?
jdk是java开发工具包,包含jre
jre是运行基于Java语言编写的程序所不可缺少的运行环境,没有jre那么java程序就无法运行
Java 虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM 有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给出相同的结果。
字节码和不同系统的 JVM 实现是 Java 语言“一次编译,随处可以运行”的关键所在。

什么是字节码?采用字节码的好处是什么?

为什么说 Java 语言“编译与解释并存”?

字符型常量和字符串常量的区别?

Java 泛型了解么?什么是类型擦除?介绍一下常用的通配符?

<? extends T>: 类型上界,这里的?可以是T类型或者T的子类类型。
<? super T>: 类型下界,这里的?可以是T类型或者T的超类类型,但不代表我们可以往里面添加任意超类类型的元素。



==和 equals 的区别
对于基本数据类型来说,比较的是值。对于引用数据类型来说,比较的是对象的内存地址。
equals() 方法存在两种使用情况:
类没有覆盖 equals()方法 :通过equals()比较该类的两个对象时,等价于通过“==”比较这两个对象,使用的默认是 Object类equals()方法。
类覆盖了 equals()方法 :一般我们都覆盖 equals()方法来比较两个对象中的属性是否相等;若它们的属性相等,则返回 true(即,认为这两个对象相等)。
hashCode()与 equals()

为什么要有hashCode()

为什么重写 equals 时必须重写 hashCode 方法?

简单来说 要保证一个原则:两个对象如果equals相同那么必须做到它们的hashCode也相同
如果只重写equals方法 那么调用的就是java默认的hashcode方法,并不能保证两个对象equals相同时hashcode相同

浙公网安备 33010602011771号