Java面试重点:作用域、匿名内部类与集合操作解析

需积分: 9 2 下载量 76 浏览量 更新于2024-07-27 收藏 203KB DOC 举报
"java面试葵花宝典整理版" Java面试中涉及的知识点广泛且深入,涵盖了许多核心概念和技术。以下是对提供的部分内容的详细解释: 1. **作用域**: 在Java中,访问修饰符包括`public`, `private`, `protected`以及默认的包访问权限(friendly)。`public`允许任何地方的代码访问,`private`限制访问仅限于同一类内,`protected`允许同一包及子类访问,而默认的包访问权限则只允许同包内的类访问。 2. **匿名内部类**: 匿名内部类没有名称,可以直接实现接口或继承抽象类。但请注意,它们不能继承非抽象类。匿名内部类常用于快速创建一次性使用的类,尤其是在事件处理和回调中。 3. **静态内部类与普通内部类**: 静态内部类(StaticNestedClass)与普通内部类(InnerClass)的主要区别在于,静态内部类不需要外部类的实例就可以创建对象,而普通内部类需要。此外,静态内部类不能直接访问外部类的非静态成员,但可以访问静态成员。 4. **位运算符与逻辑运算符**: `&`是位运算符,用于按位与运算,而`&&`是逻辑运算符,用于逻辑与操作。`&`始终会计算两边的操作数,而`&&`在左操作数为`false`时,不会计算右操作数,这是短路逻辑。 5. **Collection与Collections**: `Collection`是所有集合接口的父接口,包括`Set`和`List`等。`Collections`是一个工具类,提供了许多静态方法,用于操作集合,如排序、查找、填充和线程安全化等。 6. **断言(Assertion)**: `assert`是Java中的一个调试工具,用于在代码中插入检查点,确保特定条件为真。在开发和测试阶段启用,生产环境中通常关闭以优化性能。 7. **String对象的创建**: 当使用`new String("xyz")`时,实际上创建了两个对象:一个是字符串常量池中的`"xyz"`,另一个是堆内存中新创建的`String`对象,它引用了池中的`"xyz"`。 8. **Math.round()**: `Math.round(11.5)`会返回最接近11.5的整数,根据浮点数向整数转换的规则,11.5会被四舍五入为12。 除了这些,Java面试还可能涉及其他主题,如异常处理、多线程、IO流、设计模式、垃圾回收机制、JVM内存模型、反射、泛型、枚举、equals()与hashCode()的关系、数据库连接池、Spring框架、微服务架构等。理解并掌握这些知识点对于Java开发者来说至关重要,特别是在面试中能够展现出扎实的基础和实际应用能力。