Java 基础
-
Java 自动装箱、拆箱(编译器自动处理)
- 装箱: Jdk1.5 之后提供的功能、将包装类型自动转换为基本数据类型
- 拆箱: Jdk1.5 之后提供的功能、将基本数据类型自动转换为包装类型
-
Jdk 与 Jre 的 区别
- Jdk 是 Java 开发工具、包含了Jre 和 开发工具包
- JRE 是 Java 运行时环境
-
== 和 equals 的区别是什么?
- == 比较引用地址是否相同
- equals 比较值是否相同
-
两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?
- 不对、hashCode 相同值、不一定相同, 但是值相同、hashCode 一定相同
-
final 在 java 中有什么作用?
- 变量被final 修饰表示他是一个常量、只能被初始化赋值一次、被final修饰的类是无法被继承的
-
JAVA 中的 Math.round(-1.5) 等于多少?
-
String 属于基础的数据类型吗?
- 不属于、String 是被final 修饰的包装类型
-
java 中操作字符串都有哪些类?它们之间有什么区别?(String、StringBuilder、StringBuffer)
- 拓展性 : String 不支持 ( 每次重新赋值、都是重新创建一个对象、将对象引用切换)、StringBuilder、StringBuffer 支持
- 安全性: String、StringBuilder 非线程安全的、StringBuffer 是线程安全的通过方法上加synchronized 内置锁实现线程安全
-
String str="i"与 String str=new String("i")一样吗
- 不一样、第一种如果 i 被多次定义的话、会引用同一块内存地址(堆中的运行时常量池)
- new String() 是重新在堆中创建一个对象
-
如何将字符串反转?
- StringBuffer 和 StringBuilder 的 reverse
-
抽象类必须要有抽象方法吗?
- 不是
-
普通类和抽象类有哪些区别?
- 抽象类是被abstract修饰的、被继承必须重写抽象方法
-
抽象类能使用 final 修饰吗?
- 不能、被final修饰的类不能被继承
-
接口和抽象类有什么区别?
- 接口是一种特殊的抽象类、内部方法 除了Jdk1.8 之后的 default 修饰的方法外、都需要被实现
- 接口是 implement 实现、抽象类是 extend 继承
-
java 中 IO 流分为几种?
- 传输内容划分: 字符流、字节流
- 传输方式分为: 阻塞、非阻塞
-
BIO、NIO、AIO 有什么区别?
- BIO: 阻塞IO、同步阻塞、必须等待结果返回、不会释放线程
- NIO: 非阻塞IO、Java 中 通过一个Select 监听结果是否返回、不需要线程一直等待结果返回、只需要一个Select 轮训、
- AIO: 异步IO 、异步、当结果返回时、又系统自动触发通知
-
重写和重载的区别
- 重写: 子类对父类方法的一种拓展、方法名、参数、返回值必须相同
- 重载: 对本类方法的一种增强、只需要方法名相同、参数类型、个数、返回值类型都可以不同
-
什么是多态
- 面向对象语言的一种特性、一个方法被不同类做出响应