Java基础知识精要:作用域、匿名内部类与集合操作

需积分: 3 21 下载量 97 浏览量 更新于2024-11-30 收藏 61KB DOC 举报
Java基础方面涵盖了许多重要的编程概念,这里我们详细讨论一下标题和描述中提到的部分知识点: 1. **作用域**: Java中的访问修饰符public, private, protected和默认(无修饰符,也称为friendly)决定了类成员(如变量、方法)的可见性。public允许任何地方访问,private限制在本类内访问,protected允许本类、同包和子类访问,而friendly(默认)则只允许本类和同包内的类访问。 2. **匿名内部类**: 匿名内部类是一种没有名字的类,它可以实现接口或继承抽象类。但是,匿名内部类不能继承其他非抽象类,因为它们自身没有名字,无法被其他类引用。它们常用于一次性定义和立即使用的场景。 3. **静态内部类(Static Nested Class)与普通内部类(Inner Class)的区别**: 普通内部类有对外部类的隐式引用,因此需要外部类的对象才能创建内部类的对象。而静态内部类不依赖于外部类的实例,可以像普通类一样直接创建对象。此外,静态内部类不能直接访问外部类的非静态成员,而普通内部类可以。 4. **位运算符与逻辑运算符**: &是位运算符,用于按位进行与运算,适用于整型数据,而&&是逻辑运算符,用于逻辑与操作,它会短路执行,即如果第一个操作数为假,就不会执行第二个操作数。 5. **Collection与Collections的区别**: Collection是所有单列集合接口的父接口,包括Set和List等。Collections则是Java提供的一个工具类,它提供了许多静态方法,用于对集合进行操作,如排序、查找、线程安全化等。 6. **String对象的创建与复制**: 当创建一个字符串`Strings = new String("xyz")`时,会创建两个对象,一个是字符数组"xyz",另一个是引用Strings指向这个字符数组的新对象。这是因为String在Java中是不可变的,每次修改都会生成新的对象。 7. **Math.round()方法**: Math.round(x)方法将浮点数x四舍五入到最接近的整数。对于正数,如果x >= 0.5,则向上取整;对于负数,如果x <= -0.5,则向下取整。所以Math.round(11.5)等于12,Math.round(-11.5)等于-11。 8. **short变量的自增运算**: 在Java中,当short变量与int类型相加时,short会被提升为int类型,因此`s1 = s1 + 1;`会导致编译错误,因为结果是int类型,需要手动转换回short。而`s1 += 1;`是合法的,因为Java会自动处理这种类型的转换。 9. **Java中的goto关键字**: Java语言设计时不包含goto语句,这与其他一些语言(如C/C++)不同,目的是为了提高代码的可读性和可维护性。 这些基础题涉及到的Java知识点是学习Java编程的基础,理解并掌握它们对于编写高质量的Java代码至关重要。在实际开发中,这些基础知识的运用不仅会影响到代码的正确性,还会影响代码的效率和可维护性。