Java基础方面: 1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × × 不写时默认为friendly 2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现 3、Static Nested Class 和 Inner Class的不同 答:Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注: 静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象 4、&和&&的区别 答:&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and) 5、Collection 和 Collections的区别 答:Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作 6、什么时候用assert ............. Java基础方面涵盖了许多重要的编程概念,对于理解和编写高质量的Java代码至关重要。以下是对这些知识点的详细解释: 1. **访问修饰符的区别** - `public`: 公有的,可以在任何地方访问。 - `private`: 私有的,只能在定义它的类内部访问。 - `protected`: 受保护的,可被同一包内的类和所有子类访问。 - `friendly`(无修饰符): 只能在同一包内访问。 - 默认的访问权限在Java中被称为包级私有,它允许在定义类的包内访问,但不允许跨包访问。 2. **匿名内部类** - 匿名内部类没有名称,通常用于简洁地实现接口或继承一个类的简短版本。 - 它不能继承其他类,但可以实现一个或多个接口。 3. **静态内部类和普通内部类** - 静态内部类(Nested Class)不持有对外部类的引用,可以直接创建实例,而无需外部类的实例。 - 普通内部类(Inner Class)有一个隐含的对外部类的引用,创建时必须有一个外部类的实例。 4. **逻辑运算符与位运算符的区别** - `&`: 位运算符,对每个位进行与操作,用于处理二进制数据。 - `&&`: 逻辑运算符,只有当左侧表达式为真时,才会评估右侧表达式,常用于条件判断。 5. **Collection与Collections的区别** - `Collection`是所有集合类的顶级接口,包括`Set`和`List`。 - `Collections`是工具类,提供了一系列静态方法,用于操作集合,如排序、查找、线程安全化等。 6. **断言(Assertion)的使用** - 断言用于在开发和测试阶段检查程序的正确性,通过`assert`关键字实现。 - 在生产环境中,通常关闭断言以提高性能。 7. **String对象的创建与内存管理** - 创建`String s = new String("xyz")`会产生两个对象:一个字符串常量池中的"xyz"和堆内存中的新对象。 - `Math.round()`方法返回最接近参数的整数值,正数向上取整,负数向下取整。 8. **类型转换与运算符优先级** - `short s1 = 1; s1 = s1 + 1;`这行代码会有编译错误,因为`int`类型的计算结果需要显式转换回`short`。 - `short s1 = 1; s1 += 1;`这行代码可以正确编译,因为编译器会自动处理类型转换。 9. **`goto`关键字** - Java中没有`goto`关键字,它在早期版本的某些编程语言中存在,但在Java中被弃用。 10. **成员方法的重载与覆盖** - **重载**(Overloading)是指在同一类中定义多个同名方法,但方法的参数列表不同(参数个数、类型或顺序不同)。 - **覆盖**(Overriding)是指子类重新定义父类中的方法,保持方法名、返回类型和参数列表相同。 - 重载方法可以改变返回类型,但覆盖方法的返回类型必须与父类方法相同。 以上就是Java面试题中关于基础方面的关键知识点,涵盖了访问控制、内部类、运算符、集合框架和面向对象特性等多个方面。理解并熟练掌握这些知识点对于Java开发者来说至关重要。
- 粉丝: 18
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助