Java基础面试题全解析:涵盖作用域、匿名类到assertion

需积分: 0 0 下载量 28 浏览量 更新于2024-09-17 收藏 50KB DOC 举报
Java基础方面面试题汇总是一份全面整理的面试资料,旨在帮助求职者回顾和巩固Java编程的基础知识。以下是一些关键知识点的详细解析: 1. **作用域规则**: Java中的四种访问修饰符(public、protected、private 和 default 或 friendly)决定了类成员的可见性和可访问范围: - `public`:在所有类中可见,无论包名,可被任何类实例访问。 - `protected`:在同一包内可见,及子类之间,但不同包内的类无法访问。 - `private`:仅在声明它的类内部可见,对外部不可见。 - `default`(不写时默认):在同一个包内可见,不能被子类访问,除非子类在同一个包内。 2. **匿名内部类**: 匿名内部类不能直接继承其他类,但可以实现接口。这意味着它可以作为接口的实现者,但不具备独立的名字,主要用于实现特定的功能或者在运行时动态创建类。 3. **Static Nested Class和Inner Class**: 区别在于Static Nested Class(静态内部类): - 不需要外部类实例即可创建对象。 - 静态内部类的对象不能访问外部类的非静态成员。 - Inner Class(普通内部类)则需要外部类实例来创建,可以访问外部类的所有成员。 4. **位运算符(&)与逻辑运算符(||)**: - `&` 是位运算符,用于按位与运算,比如检查两个二进制数的对应位是否都为1。 - `&&` 是逻辑运算符,用于逻辑与操作,只有当两个条件都为真时,结果才为真。 5. **Collection和Collections**: - `Collection` 是Java集合框架的顶级接口,包含了多种集合类型,如List和Set。 - `Collections` 是一个工具类,提供了对集合的实用方法,如排序(sort)、线程安全操作(同步)等,不创建新的集合对象,而是对现有集合进行操作。 6. **使用assert**: 断言(assertion)是Java中的一种调试工具,用于确保程序的正确性。它在开发阶段启用,当某个条件为假时,程序会抛出AssertionError异常,便于快速定位问题。在生产环境中,通常会关闭assertions以提高性能。 7. **String对象创建**: 创建 `Strings = new String("xyz");` 时,实际上发生了两次内存分配: - 一次是创建一个字符数组,存储字符串 "xyz" 的实际字符。 - 另一次是创建一个 `String` 对象,引用这个字符数组。因此,有两个对象:一个字符对象数组,一个引用对象。 这些知识点是Java基础面试中常被考察的部分,理解并熟练掌握它们对于求职者来说至关重要。通过系统的复习和实战练习,可以提升应试能力,加深对Java语言核心概念的理解。