Java面试精华:125道常见笔试题详解(3)

需积分: 7 3 下载量 71 浏览量 更新于2024-09-17 收藏 140KB DOC 举报
Java面试笔试题汇总涵盖了广泛的Java基础知识和高级概念,以下是部分重点知识点的详细解读: 1. 垃圾回收 (GC): - Java的垃圾回收机制是其独特之处,旨在解决内存管理问题,减轻开发者负担。它自动跟踪和回收不再使用的内存,避免内存泄露,确保有效利用内存资源。 - 两种常见的回收机制:分代复制垃圾回收(新生代和老年代的划分,高效处理年轻对象)和标记清除/标记压缩/标记-整理等算法(针对大对象和跨代引用的处理)。 - 垃圾回收是后台线程执行的,不可预知,程序员无法主动触发,这保证了并发环境下的内存管理。 2. 线程同步: - wait(), notify() 和 notifyAll() 是Java并发编程中的关键方法,用于线程间的协作: - wait():线程释放对象锁,进入等待状态,可能被中断。 - sleep():使当前线程暂停执行,与中断有关。 - notify():唤醒一个等待线程,但不保证特定线程,由JVM决定。 - notifyAll():唤醒所有等待该对象的线程,它们会竞争锁。 3. 集合类: - Java提供了丰富的集合框架,如List(如ArrayList和Vector,后者为同步版本)和Map(如HashMap, TreeMap等)。List支持有序元素的添加、删除和检索,Map则是键值对存储,允许通过键查找值。 4. JVM类加载机制: - 类的加载由Java虚拟机中的ClassLoader负责,它是动态加载类文件的关键组件。当类被请求时,ClassLoader会寻找并加载相应的.class文件,然后创建Class对象供应用程序使用。 5. char类型: - char是Java中的基本数据类型,用于存储Unicode字符,包括中文汉字。每个char占用16位(即2字节),足以存放一个Unicode字符,如UTF-16编码的中文字符。 6. 多线程与同步实现: - Java多线程主要有以下几种实现方式: - 继承Thread类:自定义类继承Thread类,重写run()方法。 - 实现Runnable接口:创建一个实现了Runnable接口的类,然后传递给Thread构造函数。 - 使用Executor框架:创建ThreadPoolExecutor等任务执行器。 - 同步控制主要通过synchronized关键字、Lock接口(如ReentrantLock)以及并发包提供的Semaphore、CountDownLatch、CyclicBarrier等类来实现线程间的协调和互斥。