Java面试必备:权限修饰符、集合差异与多线程

5星 · 超过95%的资源 需积分: 3 3 下载量 33 浏览量 更新于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程序员的面试和日常工作至关重要。它们涵盖了基础语法、集合框架、多线程以及类设计等多个方面,是提升编程能力和解决问题的关键。