Java面试必备知识:作用域、匿名内部类与集合

5星 · 超过95%的资源 需积分: 1 15 下载量 87 浏览量 更新于2024-07-28 收藏 301KB DOC 举报
"Java面试宝典2012版,作者杨磊等,清华大学出版社,2010年09月出版,包含200个Java技术面试真题,涵盖Java语法、面向对象、集合框架、多线程、异常处理、IO流、网络编程等多个方面。" 在这本《Java面试宝典2012版》中,作者通过精心挑选的面试题目,旨在帮助Java开发者准备面试,提升对Java核心技术的理解。以下是对部分知识点的详细解析: 1. **访问修饰符的区别**:Java中的访问修饰符有`public`, `private`, `protected`以及默认的友好(`friendly`)访问级别。`public`允许所有类访问,`private`限制在同一类内访问,`protected`允许同一类、同一包及子类访问,而`friendly`只允许同一包内的类访问。未指定访问修饰符时,默认为友好。 2. **匿名内部类**:匿名内部类是没有名字的类,它可以实现接口但不能继承其他类。在需要一次性实现某个接口或者父类的部分功能时非常有用。 3. **静态内部类与非静态内部类**:静态内部类不需要对外部类的引用即可实例化,而普通内部类(非静态)需要与外部类对象关联。静态内部类不能直接访问外部类的非静态成员,但可以通过对外部类对象的引用访问。 4. **位运算符与逻辑运算符**:`&`是位运算符,用于按位与操作,`&&`是逻辑与运算符,用于布尔逻辑判断。`&&`具有短路特性,当左侧表达式为`false`时,右侧表达式不会被执行。 5. **Collection与Collections的区别**:`Collection`是所有单列集合的父接口,包括`Set`和`List`。`Collections`是工具类,提供了对集合进行操作的静态方法,如排序、查找、线程安全化等。 6. **assertion的使用**:`assert`关键字用于断言,用于在开发和测试阶段检查程序状态,确保程序的正确性。在生产环境中,通常会关闭assertion,以避免影响性能。 7. **String对象的创建**:`Strings = new String("xyz");`这行代码会创建两个`String`对象,一个是常量池中的"xyz",另一个是堆内存中的`Strings`对象,它引用了"xyz"的新副本。 此外,书中可能还会涵盖Java的垃圾回收机制、反射、序列化、异常处理、多线程同步、设计模式、JVM内存模型等深度话题,这些都是Java面试中常见的考察点,对于求职者来说,理解和掌握这些知识点是至关重要的。