JAVA基础与集合框架面试重点
需积分: 9 121 浏览量
更新于2024-08-05
收藏 189KB MD 举报
"面试题.md,包含JAVA基础概念和集合框架相关问题的总结"
### JAVA基础
#### 1. final、finally、finalize的区别
- **final**:`final` 是一个修饰符,用于声明不可变的类、方法或变量。如果一个类被 `final` 修饰,那么该类不能被继承;如果一个方法被 `final` 修饰,它不能被子类重写;如果一个变量被 `final` 修饰,那么它的值一旦初始化后便不能改变。
- **finally**:通常与 `try-catch` 结构一起使用,无论是否发生异常,`finally` 块中的代码总会被执行,常用于确保资源的正确关闭等重要操作。
- **finalize**:这是 `Object` 类的一个方法,当垃圾回收器准备回收一个对象的内存时,如果该对象重写了 `finalize()` 方法,垃圾回收器会先调用这个方法,但不能依赖此方法执行特定的清理工作,因为调用时机不确定。
#### 2. 访问修饰符
- **private**:仅在当前类内部可见。
- **default**(无修饰符):在同一包内的类可见。
- **protected**:对同一包内的类和所有子类可见。
- **public**:对所有类都可见。
#### 3. JVM、JRE、JDK的关系
- **JVM (Java Virtual Machine)**:Java 虚拟机,负责执行字节码,是Java程序运行的基础。
- **JRE (Java Runtime Environment)**:Java 运行环境,包括JVM和Java核心库,用于运行已编译的Java程序。
- **JDK (Java Development Kit)**:Java 开发工具包,包含了JRE以及开发和调试Java程序所需的工具和库,如编译器`javac`和调试器`jdb`。
#### 4. Java和C++的区别
- 都是面向对象的语言,支持封装、继承和多态。
- Java 不提供直接的指针访问内存,而是通过对象引用来间接访问,更安全。
- Java 采用单继承(一个类只能继承一个父类),但支持接口的多实现;而C++ 支持多继承。
- Java 内存管理是自动的,通过垃圾回收机制进行内存回收;C++ 则需要程序员手动管理内存。
#### 5. 如何禁掉Java反射
Java中可以通过设置 `SecurityManager` 来限制反射的使用。例如:
```java
SecurityManager sm = new SecurityManager();
sm.checkMemberAccess(Test.class, Member.PUBLIC);
```
`checkMemberAccess` 方法可以检查对类成员的访问权限。参数 `Test.class` 表示类,`Member.PUBLIC` 代表允许访问公共成员。如果将 `Member.DECLARED` 传入,那么尝试通过反射访问私有或受保护的成员时,程序将在运行时抛出异常。
### 集合
#### 1. ArrayList、LinkedList、Vector的区别
- **ArrayList**:基于动态数组实现,提供了高效的随机访问,但在插入和删除元素时效率较低,因为可能需要移动大量元素。
- **LinkedList**:基于双向链表实现,插入和删除元素操作速度快,但随机访问效率低,因为它需要从头开始遍历。
- **Vector**:与 ArrayList 类似,也是基于数组实现,但它是线程安全的,即在多线程环境中可以安全地使用,但同步带来的开销使得其性能低于 ArrayList。
2024-11-04 上传
2024-11-04 上传
2024-11-04 上传
2024-11-04 上传
weixin_60233579
- 粉丝: 0
- 资源: 1
最新资源
- Aspose资源包:转PDF无水印学习工具
- Go语言控制台输入输出操作教程
- 红外遥控报警器原理及应用详解下载
- 控制卷筒纸侧面位置的先进装置技术解析
- 易语言加解密例程源码详解与实践
- SpringMVC客户管理系统:Hibernate与Bootstrap集成实践
- 深入理解JavaScript Set与WeakSet的使用
- 深入解析接收存储及发送装置的广播技术方法
- zyString模块1.0源码公开-易语言编程利器
- Android记分板UI设计:SimpleScoreboard的简洁与高效
- 量子网格列设置存储组件:开源解决方案
- 全面技术源码合集:CcVita Php Check v1.1
- 中军创易语言抢购软件:付款功能解析
- Python手动实现图像滤波教程
- MATLAB源代码实现基于DFT的量子传输分析
- 开源程序Hukoch.exe:简化食谱管理与导入功能