Java笔试必备知识点:从final到Override的深度解析
需积分: 3 113 浏览量
更新于2024-09-23
收藏 24KB DOCX 举报
"Java程序员应聘笔试相关知识点"
Java程序员在应聘过程中可能会遇到各种笔试题目,这些题目涵盖了语言基础、类与对象、集合框架、多线程、内存管理等多个方面。以下是对部分题目所涉及知识点的详细解释:
1. **final, finally, finalize的区别**:
- `final` 用于声明变量不可变,类不能被继承,或者方法不能被重写。
- `finally` 用于异常处理,无论是否发生异常,finally块中的代码总会被执行。
- `finalize` 是Object类的一个方法,用于对象被垃圾回收前进行清理工作。
2. **匿名内部类**:
- 匿名内部类可以继承其他类,也可以实现一个或多个接口,但只能在一个地方定义。
3. **StaticNestedClass和InnerClass**:
- StaticNestedClass(静态嵌套类)不持有对外部类的引用,可以直接通过类名访问,而无需外部类实例。
- InnerClass(内部类)持有对外部类的引用,必须在外部类实例上下文中创建。
4. **&和&&的区别**:
- `&` 运算符用于逻辑与操作,同时也可用于按位与运算。
- `&&` 是短路逻辑与,如果第一个操作数为假,第二个操作数不会被执行。
5. **HashMap和Hashtable**:
- HashMap是非同步的,允许null键和null值,遍历顺序不固定。
- Hashtable是同步的,不允许null键和null值,遍历顺序也不固定。
6. **Collection和Collections的区别**:
- Collection是所有单列集合的父接口,代表一组对象。
- Collections是针对集合操作的工具类,提供了一系列静态方法,用于对集合进行排序、搜索、修改等操作。
7. **assert的使用**:
- `assert` 用于断言,用于在开发阶段检查程序状态,生产环境中默认关闭。
8. **GC(Garbage Collector)**:
- GC是Java自动内存管理的一部分,负责回收不再使用的对象占用的内存,避免内存泄漏。
9. **Strings=newString("xyz")创建的String对象数量**:
- 创建了一个String对象和一个常量池中的"xyz"字符串。
10. **Math.round()的结果**:
- Math.round(11.5) 等于 12,Math.round(-11.5) 等于 -11。
11. **short变量的加法问题**:
- `short s1 = 1; s1 = s1 + 1;` 有编译错误,因为结果是int类型。
- `short s1 = 1; s1 += 1;` 正确,编译器会自动处理类型转换。
12. **sleep()和wait()的区别**:
- sleep() 让当前线程休眠指定时间,不释放对象锁。
- wait() 让当前线程等待,释放对象锁,等待其他线程调用notify()或notifyAll()唤醒。
13. **Java没有goto语句**:
- Java中没有goto语句,设计者认为它可能导致代码难以理解和维护。
14. **数组和String的length()方法**:
- 数组没有length()方法,但有length属性。
- String有length()方法,返回字符串的字符数。
15. **Overload和Override的区别**:
- Overload(重载)是在同一个类中,方法名相同但参数列表不同的方法。
- Override(重写)是子类重新定义父类中已存在的方法。
16. **Set中的元素区分**:
- Set中的元素不重复,使用equals()方法判断元素是否重复,而不是==。
17. **最常见的RuntimeException**:
- `NullPointerException` 是最常见的运行时异常,表示尝试访问空对象时抛出。
18. **Error和Exception的区别**:
- Error表示系统级错误,如虚拟机错误,一般程序员无法处理。
- Exception是应用程序可以捕获并处理的异常。
19. **List, Set, Map与Collection的关系**:
- List、Set、Map都继承自根接口Collection。
20. **abstract class和interface的区别**:
- 抽象类可以包含非抽象方法,可以有构造函数,可以有成员变量。
- 接口只能包含抽象方法和常量,不能有构造函数,不能有实例变量。
21. **abstract method的特性**:
- abstract method不能是static、native或synchronized。
22. **接口与接口继承,抽象类与接口实现**:
- 接口可以继承接口。
- 抽象类可以实现接口,也可以继承普通类。
23. **启动线程**:
- 使用`start()`方法启动线程,执行run()方法。
24. **Constructor是否可被override**:
- 构造器不能被重写,但可以被覆盖(隐藏)。
25. **是否可以继承String类**:
- 不可以,String类是final的,不能被继承。
26. **线程同步**:
- 当一个线程进入对象的synchronized方法后,其他线程不能进入此对象的其他synchronized方法,除非该线程退出了同步方法。
2009-10-07 上传
2012-11-15 上传
2011-02-12 上传
142 浏览量
2010-04-29 上传
2010-11-29 上传
2010-03-28 上传
2010-12-06 上传
2009-04-19 上传
sjwdyh
- 粉丝: 0
- 资源: 7
最新资源
- 二维码编码器:二维码编码器,基于 Lior Shapira 的工作-matlab开发
- technicaldocumentation
- stm32-h750-proj
- CurrencyConverter:在React Native中创建的货币转换器
- notmuch-notify:新邮件到达的通知不多
- hifi-spatial-audio-js
- Klinik-GK-082366666660-Jual-Obat-Aborsi-Di-Surabaya:APOTEK GK FARMASI 24 JAM奥巴特·阿博西·阿斯里-欧巴特·特拉特·布兰·阿斯里-贾巴尔·奥巴特MENYEDIAKAN OBAT ABORSI PAKET TUNTAS KONSULTASI 082366666660纳玛·普鲁德克(Nama Produk)
- VietPad-开源
- nacos-server-2.0.3.zip
- aws_django_python
- 加拉加斯:JPAHibernate
- esbooyah:使用TypeScript编写的基于ESBuild的Booyah游戏引擎
- mpu9250-rpi-testing
- HazardousFDM:我的GitHub个人资料的配置文件
- 时频自动增益控制 (AGC):自动增益控制 (AGC) 尝试为音频信号保持恒定的能量水平。-matlab开发
- 白菜cms双端影视APP源码_全开源版_无授权无后门