Java面试必备:final,finally,finalize解析与笔试题集锦
"Java面试和笔试题集合,涵盖了final、finally、finalize的使用区别,匿名内部类的继承和实现,静态嵌套类与内部类的差异,逻辑运算符&和&&的区别,HashMap与Hashtable的区别,Collection与Collections的区别,assert的使用场景,垃圾回收(GC)的概念及其与finalize的关系,以及Math.round()方法的使用示例。" 1. **final, finally, finalize的区别**: - `final` 是一个修饰符,用于声明不可变的类、变量或方法。当一个类被声明为final,它不能有子类。变量声明为final后,其值无法改变。 - `finally` 在异常处理中扮演关键角色,无论是否发生异常,finally块中的代码总会被执行,确保清理操作得以完成。 - `finalize` 是一个在Object类中定义的方法,用于在对象被垃圾收集器清除前执行特定清理工作。但不应依赖此方法进行资源释放,因为垃圾收集时机不确定。 2. **匿名内部类**: - 匿名内部类可以直接继承一个类或实现一个或多个接口,但它们没有名称,通常用在需要简洁实现且仅使用一次的场合。 3. **StaticNestedClass与Inner Class**: - 内部类(Inner Class)是嵌套在另一个类内部的类,它可以访问外部类的所有成员,包括私有成员。而静态嵌套类(Static Nested Class)像普通静态成员一样,不持有对外部类的引用,除非显式引用。 4. **& 和 && 的区别**: - `&` 是按位与运算符,而在布尔表达式中,它也用于逻辑与,无论两边表达式如何,都会计算两边。 - `&&` 是短路与运算符,如果左侧表达式为假,右侧表达式不会被计算,这可以避免不必要的计算和潜在的异常。 5. **HashMap与Hashtable的区别**: - HashMap是非同步的,而Hashtable是线程安全的。 - HashMap允许null键和值,而Hashtable不允许。 - HashMap使用了迭代器(Iterator),而Hashtable使用了Enumeration。 6. **Collection与Collections的区别**: - Collection 是所有集合框架接口的根接口,代表一组元素集合。 - Collections 是一个工具类,提供了一系列静态方法,用于对各种集合进行操作,如排序、搜索、填充等。 7. **assert的使用**: - assert 用于在开发阶段进行断言,检查程序的某些假设是否正确。在生产环境中默认关闭,可以通过 `-ea` 参数开启。 8. **GC(垃圾回收)**: - 垃圾回收是Java自动管理内存的过程,负责回收不再使用的对象,以避免内存泄漏。`System.gc()` 可以手动触发垃圾回收,但不推荐,因为其性能影响和回收时机的不确定性。 - 在垃圾回收前,Java会尝试调用对象的 `finalize()` 方法。 9. **Strings=new String("xyz"); 创建了多少个String Object?** - 创建了两个String对象,一个在常量池,一个在堆中,因为字符串字面量 "xyz" 存在于常量池,而 `new String("xyz")` 会在堆上创建一个新的对象。 10. **Math.round(11.5) 和 Math.round(-11.5)的结果**: - `Math.round(11.5)` 返回 12,因为round方法会四舍五入到最接近的整数。 - `Math.round(-11.5)` 返回 -11,同样遵循四舍五入规则,但负数会朝向更小的整数方向四舍五入。
剩余63页未读,继续阅读
- 粉丝: 1
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C语言快速排序算法的实现与应用
- KityFormula 编辑器压缩包功能解析
- 离线搭建Kubernetes 1.17.0集群教程与资源包分享
- Java毕业设计教学平台完整教程与源码
- 综合数据集汇总:浏览记录与市场研究分析
- STM32智能家居控制系统:创新设计与无线通讯
- 深入浅出C++20标准:四大新特性解析
- Real-ESRGAN: 开源项目提升图像超分辨率技术
- 植物大战僵尸杂交版v2.0.88:新元素新挑战
- 掌握数据分析核心模型,预测未来不是梦
- Android平台蓝牙HC-06/08模块数据交互技巧
- Python源码分享:计算100至200之间的所有素数
- 免费视频修复利器:Digital Video Repair
- Chrome浏览器新版本Adblock Plus插件发布
- GifSplitter:Linux下GIF转BMP的核心工具
- Vue.js开发教程:全面学习资源指南