JavaWeb面试必备知识点解析

4星 · 超过85%的资源 需积分: 10 3 下载量 133 浏览量 更新于2024-07-24 收藏 663KB PDF 举报
"这是一份Java Web面试题集,涵盖了重要的Web知识点,包括但不限于作用域、匿名内部类、静态内部类、位运算符与逻辑运算符的区别、集合类的接口和工具类、断言的使用以及Math类的相关方法。这份资料适合准备Java Web面试或者希望巩固相关知识的开发者查阅。" 在Java编程中,了解不同作用域的规则至关重要。public、private、protected以及默认(friendly)的作用域决定了类成员的可见性。public成员在任何地方都是可见的,而private成员只能在定义它们的类内部访问。protected成员在同一个类、同一包的类以及子类中可见,而friendly(默认)成员只在定义类的包内可见。 匿名内部类是无名的类,它可以实现接口,但不能直接继承其他类。这是因为Java的单继承特性,匿名内部类只能实现多态性,而不能扩展已有类的功能。 静态内部类(StaticNestedClass)与非静态内部类(InnerClass)的主要区别在于它们与外部类的关系。静态内部类不需要外部类的实例就能被创建,而且可以直接访问外部类的静态成员,而不像非静态内部类那样需要通过外部类的实例来访问。此外,静态内部类不能直接访问外部类的非静态成员。 在Java中,&和&&都是逻辑运算符,但它们在使用上有区别。&是位运算符,用于按位与运算,而&&是逻辑与运算符,只有当左侧表达式为真时才会评估右侧表达式。在布尔逻辑中,&&通常用于短路逻辑,避免不必要的计算。 Collection是Java集合框架的顶级接口,它包括Set、List和Queue等子接口。Collections则是提供了一系列静态方法的工具类,这些方法可以用于集合的搜索、排序、线程安全化等操作,增强了集合的实用性。 Assertion(断言)在Java中用于调试,它允许程序员插入代码来验证程序的假设。如果断言的条件为假,程序可以选择抛出异常或者终止运行,这对于测试和调试非常有帮助。 至于String对象的创建,`new String("xyz")`实际上会创建两个对象,一个是字符数组,另一个是String对象,后者引用前者。这是因为String类是不可变的,每次修改都会创建新的对象。 Math.round()方法用于将浮点数转换为最接近的整数。Math.round(11.5)返回12,因为11.5向上取整到最近的整数。而Math.round(-11.5)返回-11,因为-11.5向下取整到最近的整数。round方法遵循向零取整的原则,当参数加上0.5后,再取其下界。