Java面试必备:权限修饰符、集合差异与多线程
5星 · 超过95%的资源 需积分: 3 155 浏览量
更新于2024-09-20
收藏 36KB DOC 举报
"Java程序员面试笔试题集合,包含作用域、集合类对比、多线程实现及同步机制、继承执行顺序、内部类等核心知识点。"
在Java编程中,掌握这些知识点对于成为一名合格的Java程序员至关重要。让我们逐一深入探讨:
1. **作用域**:在Java中,访问修饰符决定了类的成员(如变量和方法)的可见性。四种访问权限分别是:
- `public`:全局可见,任何地方都能访问。
- `private`:仅限于本类内访问,即使是子类也无法访问。
- `protected`:对本类、同包的类和子类可见。
- 默认(friendly):仅限于同包内的类访问。
2. **ArrayList和Vector的区别**,以及**HashMap和Hashtable的区别**:
- **ArrayList vs Vector**:两者都是动态数组实现的列表。Vector是线程安全的,适合多线程环境,但效率较低;ArrayList非线程安全,但在单线程环境下性能较好。增长策略上,Vector默认增长一倍,ArrayList增长一半。
- **HashMap vs Hashtable**:HashMap是非同步的,而Hashtable是同步的。HashMap允许null键值对,而Hashtable不允许。HashMap是Java 1.2引入的Map接口实现,而Hashtable更早,基于Dictionary类。
3. **char型变量与中文字符**:Java中的char类型占两个字节(16位),因此可以存储一个中文汉字。UTF-16编码中,大部分中文字符占用两个字节。
4. **多线程实现**:Java提供两种创建线程的方式:
- 继承Thread类:重写run()方法,然后创建Thread对象并调用start()启动。
- 实现Runnable接口:创建实现Runnable的类,然后将其实例传入Thread构造器,启动线程。
5. **同步实现**:Java中实现线程同步的主要手段:
- `synchronized` 关键字:用于方法或代码块,确保同一时间只有一个线程执行特定代码。
- `wait()` 和 `notify()` / `notifyAll()` 方法:用于线程间的通信,通常在synchronized代码块中使用。
6. **继承时类的执行顺序**:在继承结构中,初始化顺序通常为:先初始化父类的静态成员,然后初始化子类的静态成员,接着是父类的实例成员,最后是子类的实例成员。选择题的答案取决于具体的问题情境。
7. **内部类**:Java支持四种类型的内部类:
- 成员内部类:定义在类的外部,类的内部。
- 局部内部类:定义在方法或代码块内部。
- 匿名内部类:没有名字的内部类,通常用于简洁地实现接口或抽象类。
- 静态内部类:可以有自己的静态成员,无需依赖外部类实例就能创建对象。
了解并熟练掌握这些Java核心概念对于Java程序员的面试和日常工作至关重要。它们涵盖了基础语法、集合框架、多线程以及类设计等多个方面,是提升编程能力和解决问题的关键。
点击了解资源详情
点击了解资源详情
125 浏览量
2014-04-28 上传
2012-07-25 上传
184 浏览量
109 浏览量
2023-07-12 上传
a308296425
- 粉丝: 0
- 资源: 3