Java面试精华:作用域、匿名类与assert技巧

需积分: 0 0 下载量 185 浏览量 更新于2024-07-19 收藏 624KB PDF 举报
在Java面试中,面试官可能会询问关于Java语言的关键概念和细节,以下是一些关键知识点的详细解释: 1. **作用域与访问修饰符**: - **public**: 具有最高可见性和可访问性,可以在任何包或类中使用。√√√√ - **protected**: 可以被同一个包内的类以及子类访问。√√√× - **friendly(默认)/private**: 在当前类内可见,不提供对外部类的直接访问。√××× - **不写时默认为friendly**: 指在Java中,如果没有显式声明访问修饰符,默认的成员变量和方法是包内可见。 2. **匿名内部类**: - 匿名内部类没有命名,因此不能继承其他类,但可以实现接口。这意味着它们主要用于实现接口的功能,而不是继承行为。 3. **Static Nested Class vs Inner Class**: - Inner Class (非静态):与外部类关联,并依赖于外部类的实例。非静态内部类不能直接访问静态成员,也不能作为静态对象创建。 - Static Nested Class(静态内部类):独立于外部类实例,可以在没有外部类实例的情况下创建对象,且不能直接访问非静态外部类成员。 4. **位运算符(&) vs 逻辑运算符(||)**: - & 是位运算符,执行按位与操作,适用于数字位级的操作。例如,如果两个数的二进制表示中有相同位置为1,则结果该位置为1。 - && 是逻辑运算符,用于布尔表达式,只有当两个操作数都为真时结果才为真。 5. **Collection与Collections**: - Collection 是Java集合框架的顶级接口,代表了元素无序的集合,如Set和List。List提供了有序元素的存储。 - Collections 是Java集合框架中的一个工具类,提供了对各种集合类型(如List、Set等)的静态方法,用于遍历、排序、同步和转换等操作。 6. **assertion(断言)的使用**: - 断言是调试工具,用于确保程序在运行时满足特定条件。当条件为假时,程序通常会停止并显示错误信息,用于早期发现潜在问题。 7. **String 和 String Objects**: - `Strings = new String("xyz")` 创建了两个对象:一个字符串字面量对象("xyz"),以及这个字面量对应的引用对象。 8. **Math.round() 方法**: - `Math.round(11.5)` 返回最接近的整数12,因为11.5四舍五入到12。 - `Math.round(-11.5)` 返回-11,因为-11.5向下取整到-12。 掌握这些知识点对于准备Java面试至关重要,它们涵盖了Java语言的基础概念、编程习惯和常用库的使用技巧。在实际面试中,理解并能灵活运用这些知识能够展示出你的技术实力和问题解决能力。