java面试宝典整理版PDF
### Java面试宝典知识点梳理 #### 一、访问修饰符的作用范围 - **Public**: 公开的,可以在任何地方被访问。 - **Protected**: 受保护的,只能在同一包内或者子类中访问。 - **Friendly (Default)**: 默认的,即不显式指定修饰符,仅在同一包内可见。 - **Private**: 私有的,只在声明它的类中可见。 | 访问级别 | 当前类 | 同一包 | 子孙类 | 其他包 | | --- | --- | --- | --- | --- | | Public | √ | √ | √ | √ | | Protected | √ | √ | √ | × | | Friendly | √ | √ | × | × | | Private | √ | × | × | × | | 不写 | √ | √ | × | × | #### 二、匿名内部类的特性和限制 - **特性**: - 匿名内部类是在定义时没有指定类名的内部类。 - 主要用于实现接口或继承抽象类。 - **限制**: - **无法继承其他类**,因为它本身就是作为某个类的内部类出现的。 - 可以实现接口。 - 常见于事件监听器等场景。 #### 三、静态内部类与非静态内部类的区别 - **静态内部类 (Static Nested Class)**: - 创建静态内部类的对象时,不需要外部类的对象。 - 不能直接访问外部类的非静态成员。 - **非静态内部类 (Inner Class)**: - 创建非静态内部类的对象时,需要外部类的对象。 - 可以直接访问外部类的所有成员,包括私有的。 #### 四、`&` 和 `&&` 的区别 - **`&`**: 按位与运算符,用于位运算。 - **`&&`**: 逻辑与运算符,用于逻辑判断。 - 在布尔表达式中,当左侧的操作数为假时,右侧的操作数将不会被计算。 #### 五、`Collection` 与 `Collections` 的区别 - **`Collection`**: - 是一个接口,位于 `java.util` 包中。 - 是所有单列集合的根接口。 - 主要有 `List` 和 `Set` 实现该接口。 - **`Collections`**: - 是一个工具类,也位于 `java.util` 包中。 - 提供了一系列静态方法来操作集合类,如排序、填充、查找等。 #### 六、`assert` 断言的使用 - **用途**: - 调试阶段确保程序的基本正确性。 - 断言用于确认程序状态是否符合预期。 - **执行条件**: - 默认情况下,编译器会移除断言语句,但在 `-ea` 或 `-enableassertions` 的情况下有效。 - **示例**: ```java assert x > 0 : "x 应该是正数"; ``` #### 七、`String` 对象的创建 - **示例**: ```java String s = new String("xyz"); ``` - **创建对象数量**: - 通过 `new String()` 创建了两个 `String` 对象。 - 一个字符串字面量 `"xyz"`。 - 一个新的 `String` 对象引用。 #### 八、`Math.round()` 方法的行为 - **行为**: - 对浮点数进行四舍五入处理。 - 参数加0.5后取整。 - **示例**: ```java Math.round(11.5); // 结果为 12 Math.round(-11.5); // 结果为 -11 ``` #### 九、`short` 类型的操作 - **错误示例**: ```java short s1 = 1; s1 = s1 + 1; // 错误,需要强制类型转换 s1 += 1; // 正确 ``` - **原因**: - `s1 + 1` 的结果默认为 `int` 类型,需要显式转换为 `short`。 - `+=` 运算符会自动进行类型转换。 #### 十、`goto` 关键字 - **Java中的状态**: - `goto` 是 Java 的保留关键字,但未被使用。 - Java 不支持 `goto` 语句。 #### 十一、`length` 属性与方法 - **数组**: - 使用 `length` 属性获取长度。 - **String**: - 使用 `length()` 方法获取长度。 #### 十二、重写与重载的区别 - **重写 (Overriding)**: - 发生在子类覆盖父类的方法。 - 参数列表必须相同。 - **重载 (Overloading)**: - 在同一个类中定义多个同名方法。 - 参数列表不同。 - **返回值类型**: - 重载允许返回不同的类型。 #### 十三、`Set` 中元素的唯一性 - **唯一性判断**: - 使用 `equals()` 方法来判断元素是否相同。 - `equals()` 方法通常用于比较对象的内容。 - `==` 用于比较对象引用是否指向同一个对象。 #### 十四、常见的 `RuntimeException` - **示例**: - `ArithmeticException`: 数学运算异常。 - `ArrayStoreException`: 数组存储异常。 - 更多常见的运行时异常还包括: - `NullPointerException`: 空指针异常。 - `IndexOutOfBoundsException`: 下标越界异常。 - `IllegalArgumentException`: 非法参数异常。 - `SecurityException`: 安全异常。
剩余107页未读,继续阅读
- hanlove1152014-03-11非常全面,很好的帮助了我,谢谢
- 粉丝: 1
- 资源: 52
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助