Java面试常见问题解析:作用域、集合与多线程
需积分: 3 138 浏览量
更新于2024-07-24
收藏 73KB DOC 举报
"Java面试题相关知识"
在Java面试中,常常会遇到一系列关于语言基础、集合框架、多线程等方面的问题。以下是一些常见问题的详细解释:
1. **作用域的区别**:
- `public`:任何地方都能访问。
- `private`:仅在当前类内部可访问。
- `protected`:在同一包内和子类中可访问。
- `friendly`(默认):在同一包内可访问,不包括子类。
2. **ArrayList和Vector的区别**:
- **同步性**:`Vector`是线程安全的,而`ArrayList`不是。这意味着在多线程环境下,`Vector`的所有操作都会自动进行同步,而`ArrayList`则需要手动同步。
- **数据增长**:当容量不足时,`Vector`默认增长为原来的2倍,而`ArrayList`增长约为原来的50%。
3. **HashMap和Hashtable的区别**:
- **历史背景**:`Hashtable`是早期的Java类,基于`Dictionary`,而`HashMap`是`Java 1.2`后引入的,实现了`Map`接口。
- **同步性**:`Hashtable`是同步的,`HashMap`不是。
- **值**:`HashMap`允许`null`键和值,而`Hashtable`不允许。
4. **char型变量存储中文**:
- Java使用Unicode编码,一个`char`占据16位,足以存储一个中文字符。
5. **多线程实现**:
- 继承`Thread`类:创建一个新的类,继承自`Thread`,并重写`run()`方法。
- 实现`Runnable`接口:创建一个新的类,实现`Runnable`接口,实现`run()`方法,然后将该类实例传递给`Thread`对象。
6. **同步实现**:
- `synchronized`关键字:用于修饰方法或代码块,确保同一时间只有一个线程能执行特定代码。
- `wait()`和`notify()`:这两个方法用于线程间的协作,通常在同步块中使用,`wait()`使当前线程等待,`notify()`唤醒等待的线程。
7. **构造器执行顺序**:
- 在继承关系中,首先调用父类的构造器,然后是子类的构造器。因此,如果有一个父类`FatherClass`和子类`ChildClass`,先打印"FatherClassCreate",然后打印"ChildClassCreate"。
除了这些,面试中还可能涉及异常处理、IO流、设计模式、JVM内存模型、垃圾收集机制、网络编程、数据库连接池等知识点。理解并掌握这些内容对于提升Java开发者的技术水平和面试成功至关重要。
143 浏览量
2021-09-14 上传
2012-05-19 上传
2009-11-02 上传
2023-02-13 上传
2023-02-13 上传
2022-09-20 上传
点击了解资源详情
小威威威威
- 粉丝: 0
- 资源: 4
最新资源
- SSM Java项目:StudentInfo 数据管理与可视化分析
- pyedgar:Python库简化EDGAR数据交互与文档下载
- Node.js环境下wfdb文件解码与实时数据处理
- phpcms v2.2企业级网站管理系统发布
- 美团饿了么优惠券推广工具-uniapp源码
- 基于红外传感器的会议室实时占用率测量系统
- DenseNet-201预训练模型:图像分类的深度学习工具箱
- Java实现和弦移调工具:Transposer-java
- phpMyFAQ 2.5.1 Beta多国语言版:技术项目源码共享平台
- Python自动化源码实现便捷自动下单功能
- Android天气预报应用:查看多城市详细天气信息
- PHPTML类:简化HTML页面创建的PHP开源工具
- Biovec在蛋白质分析中的应用:预测、结构和可视化
- EfficientNet-b0深度学习工具箱模型在MATLAB中的应用
- 2024年河北省技能大赛数字化设计开发样题解析
- 笔记本USB加湿器:便携式设计解决方案