Java面试关键点:作用域、集合与多线程
需积分: 0 127 浏览量
更新于2024-10-11
收藏 41KB DOCX 举报
"Java面试题库,包含了Java面试中常见的问题和对应答案,涉及范围包括但不限于作用域、集合类的区别、字符编码、多线程以及类的构造执行顺序等核心知识点。"
在Java编程语言中,面试题通常涵盖了许多基础到高级的概念。以下是基于给定内容的一些关键知识点的详细解释:
1. **作用域访问修饰符**:在Java中,有四种基本的作用域访问修饰符:`public`, `private`, `protected` 和默认(友好)访问权限。它们决定了类成员(如变量、方法)的可见性范围:
- `public`:任何地方都能访问。
- `protected`:同一包内的类、子类和不同包下的子类可以访问。
- `friendly`(默认):仅限于同一包内的类访问。
- `private`:仅限于定义它的类内部访问。
2. **ArrayList和Vector的区别**:
- **同步性**:`Vector` 是线程安全的,即所有操作都是同步的,适合多线程环境;而 `ArrayList` 不是线程安全的,适合单线程或已经做了同步处理的多线程环境。
- **增长策略**:当需要增加容量时,`Vector` 默认增长为其当前容量的两倍,而 `ArrayList` 增长为当前容量的一半。这可能影响到性能,尤其是频繁插入元素时。
3. **HashMap和Hashtable的区别**:
- **历史背景**:`Hashtable` 是较早的类,基于 `Dictionary`,而 `HashMap` 是在Java 1.2引入的,实现了 `Map` 接口。
- **同步性**:同样,`Hashtable` 是线程安全的,`HashMap` 不是。
- **值**:`HashMap` 允许使用 `null` 作为键或值,而 `Hashtable` 不允许。
4. **char型变量存储中文**:在Java中,`char` 类型使用Unicode编码,每个 `char` 占16位,因此可以存储包括中文在内的大多数Unicode字符。
5. **多线程实现**:
- **创建方式**:创建多线程有两种主要方式:一是通过继承 `Thread` 类,二是实现 `Runnable` 接口并将其传递给 `Thread` 的构造函数。
- **同步机制**:Java提供了多种同步手段,如 `synchronized` 关键字(用于方法或代码块),以及对象的 `wait()`, `notify()` 和 `notifyAll()` 方法(用于线程间通信)。
6. **类的执行顺序**:
- 在继承关系中,父类的构造器会在子类构造器之前执行。给出的例子中,首先会输出 "FatherClassCreate",然后输出 "ChildClassCreate",这是因为子类的构造器首先调用父类的无参构造器,接着执行自己的构造逻辑。
这些面试题反映了Java程序员应该掌握的基本技能和理解,包括面向对象设计、集合框架、线程管理和内存管理等核心概念。熟悉这些知识点对于通过Java面试和在实际开发中解决问题至关重要。
143 浏览量
2021-09-14 上传
2011-07-01 上传
2011-03-07 上传
2023-12-05 上传
2013-08-13 上传
yhj1986
- 粉丝: 2
- 资源: 19
最新资源
- 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加湿器:便携式设计解决方案