1.Java的基本数据类型有哪些(了解)
整数型: byte、short、int、long
浮点型 : float、double
字符型 :char
布尔型 :boolean
2..JDK JRE JVM 的区别
JDK:是整个java的核心和开发工具包。包括:java运行环境JRE、java工具和java基础类库。
JEK:试运行JAVA程序所必须的环境集合。包括:java虚拟机和java程序的一些核心类库。
JVM:是整个java实现跨平台的最核心的部分,能够运行以java语言写作的软件程序。
3.重载和重写的区别
重载:发生在同一个类中,方法名相同,(参数列表、类型、个数、顺序不同)。 和返回值无关。
重写:子类重写父类的方法,方法名和参数列表相同,只有方法体不同。返回值范围和抛出异常的范围要少于父类,父类私有方法子类不可以重写。总之一句:子类要比父类强大一些。
4.Java中==和equals的区别
==的作用:
在基本数据类型里面比较对象的值
在引用数据类型里面比较对象的地址
equals的作用:
默认比较对象的地址,重写equals,比较对象的内容(属性)
一般Java自带的类都重写了equals
String重写了equals方法,比较字符串的内容
面试:请解释字符串比较中,“==”和“equals”的区别
==:比较对象的值
equals:比较对象的内容
5.String、StringBuffer、StringBuilder三者之间的区别(必会):
String:字符串,常量。使用 final 修饰字符数组来保存字符串
StringBuffer:拼接字符串,对象可变,对方法加了同步锁,线程安全高,效率低。
StringBuilder:拼接字符串,对象可变,没有对方法加同步锁,线程安全低,效率高。
小结:
(1)如果要操作少量的数据用 String。
(2)多线程操作字符串缓冲区下操作大量数据用 StringBuffer;
(3)单线程操作字符串缓冲区下操作大量数据用 StringBuilder。
6.接口和抽象类的区别是什么?(五个方面)
接口:接口使用 implements来实现, 没有构造器和方法体,只有抽象方法,类可以实现多个接口。默认使用public修饰
抽象类:抽象类使用extends来继承,有构造器、抽象方法,非抽象方法可以有方法体。抽象类只能继承一个,可以是任意访问的修饰符。