1. JDK 和 JRE 有什么区别?
此处一个开发环境用,一个只能运行环境用
2. == 和 equals 的区别是什么?
比较值和比较引用。
3. 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?
不对,equals就是比较哈希值。
4. final 在 java 中有什么作用?
final修饰类时不可被继承;修饰方法时不可被重写;修饰变量时变常量,不可被修改。
7. java 中操作字符串都有哪些类?它们之间有什么区别?
操作字符串的类有:String、StringBuffer、StringBuilder。
StringBuffer 和 StringBuilder 最大的区别在于,StringBuffer 是线程安全的,而 StringBuilder 是非线程安全的,但 StringBuilder 的性能却高于 StringBuffer,所以在单线程环境下推荐使用 StringBuilder,多线程环境下推荐使用 StringBuffer。
8. String str="i"与 String str=new String("i")一样吗?
不一样,第二个分配了两个string常量内存。
9. 如何将字符串反转?
使用 StringBuilder 或者 stringBuffer 的 reverse() 方法。
10. 抽象类必须要有抽象方法吗?
不需要,抽象类不一定非要有抽象方法。
11. 抽象类能使用 final 修饰吗?
参考final的释义。
12. 接口和抽象类有什么区别?
由以下几个方面来回答:
1⃣️实现:抽象类的子类使用 extends 来继承;接口必须使用 implements 来实现接口。
2⃣️构造函数:抽象类可以有构造函数;接口不能有。
3⃣️main 方法:抽象类可以有 main 方法,并且我们能运行它;接口不能有 main 方法。
4⃣️实现数量:类可以实现很多个接口;但是只能继承一个抽象类。
5⃣️访问修饰符:接口中的方法默认使用 public 修饰;抽象类中的方法可以是任意访问修饰符。
13. java 中 IO 流分为几种?
总的分为input流和output流。
14. BIO、NIO、AIO 有什么区别?
- BIO:Block IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低。
- NIO:New IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。
- AIO:Asynchronous IO 是 NIO 的升级,也叫 NIO2,实现了异步非堵塞 IO ,异步 IO 的操作基于事件和回调机制。