Java面试必备:知识点总结与笔试解析

需积分: 0 2 下载量 92 浏览量 更新于2024-08-01 收藏 277KB DOC 举报
"Java面试和笔试的关键知识点概览" 在Java面试和笔试中,了解核心概念和常见陷阱至关重要。以下是一些重点知识点的详细解析: 1. **访问修饰符的区别**: - `public`:任何地方都能访问,无论是否在同一包内或不同包的子类。 - `protected`:在同一个包内或不同包的子类可以访问。 - `friendly(默认)`:仅在同一个包内可访问。 - `private`:只在当前类内部可访问。 2. **ArrayList与Vector的区别**: - **同步性**:Vector是线程安全的,所有操作都自动进行同步,而ArrayList不是线程安全的,需要手动同步。 - **容量增长策略**:当需要扩展时,Vector默认扩展为原来的两倍,ArrayList则扩展为原来容量的一半加1。 3. **HashMap与Hashtable的区别**: - **历史背景**:Hashtable是早期的API,基于Dictionary类;HashMap是Java 1.2引入的,实现了Map接口。 - **同步性**:Hashtable是线程安全的,HashMap不是,如果需要线程安全,可以使用Collections.synchronizedMap()方法。 - **空值支持**:HashMap允许null作为key或value,而Hashtable不允许。 4. **char类型存储中文**: - Java中的char类型使用Unicode编码,每个char占据16位,因此可以存储包括中文在内的多种语言字符。 5. **多线程实现**: - 继承Thread类:创建新的类,直接继承Thread,并重写run()方法。 - 实现Runnable接口:创建新的类实现Runnable接口,实现run()方法,然后将该对象作为参数传递给Thread的构造函数。 6. **同步实现**: - `synchronized` 关键字:可以用于方法或者代码块,保证同一时刻只有一个线程可以执行特定代码。 - wait()与notify():用于线程间的通信,它们必须在同步块或同步方法中使用,以避免死锁。 7. **继承时类的执行顺序**: - 当创建子类对象时,会先调用父类的无参构造器,然后再调用子类的构造器。所以,如果题目中描述的代码执行,会首先打印"FatherClassCreate",然后打印"ChildClassCreate"。 这些知识点是Java面试和笔试中常见的主题,理解并掌握它们对于通过面试和提高编程能力至关重要。在准备面试时,深入理解这些概念,并结合实际编程经验,将有助于你在面试中脱颖而出。