Java基础知识全览:面试必备知识点总结

需积分: 0 1 下载量 74 浏览量 更新于2024-07-28 1 收藏 314KB DOC 举报
"Java基础知识,包括面试笔试题,涵盖了面向对象特性、数据类型、异常处理、集合框架、并发编程等多个核心概念。" 在Java基础知识的学习中,了解和掌握以下知识点至关重要: 1. 面向对象的特征: - 抽象:允许创建一个代表一类对象的模板,具体实例可以通过继承这个模板来实现。 - 继承:一个类可以从另一个类继承属性和方法,以便复用代码和实现多态。 - 封装:将数据和操作数据的方法捆绑在一起,保护内部数据不被外部随意访问。 - 多态性:不同对象对同一消息做出不同的响应,使得代码更具通用性。 2. 数据类型: - `String` 不是最基本的数据类型,它是一个对象,而基本数据类型如 `int`、`char` 等是直接存储值的。 3. `int` 和 `Integer` 的区别: - `int` 是基本数据类型,直接存储数值;`Integer` 是 `int` 的包装类,可以存储 null 值,提供更多方法。 4. `String` 和 `StringBuffer` 的区别: - `String` 对象一旦创建就不能修改;`StringBuffer` 提供了可变的字符串,适用于频繁修改字符串的场景。 5. 运行时异常与一般异常: - 运行时异常不强制捕获,通常与程序错误有关;一般异常是必须捕获或声明抛出的,用于处理可能出现的逻辑错误。 6. Servlet 生命周期: - 包括加载和初始化、服务、销毁三个阶段。Servlet 与 CGI 的主要区别在于,Servlet 保持长连接,性能更高。 7. `ArrayList`, `Vector`, `LinkedList` 的存储性能和特性: - `ArrayList` 和 `Vector` 都基于数组实现,适合随机访问,但 `Vector` 是线程安全的。 - `LinkedList` 基于链表,插入和删除速度快,但访问速度慢。 8. EJB(Enterprise JavaBeans): - 基于 J2EE,提供组件模型用于构建分布式企业级应用。SessionBean 处理业务逻辑,EntityBean 表示持久化数据,StatefulBean 保持会话状态,StatelessBean 不保存状态。 9. `Collection` 和 `Collections`: - `Collection` 是所有集合接口的根接口,表示一组独立的对象;`Collections` 是工具类,提供了集合操作的方法。 10. `&` 和 `&&` 的区别: - `&` 是按位与运算符,`&&` 是逻辑与运算符,后者具有短路效果。 11. `HashMap` 和 `Hashtable`: - `HashMap` 是非同步的,允许 `null` 键和值;`Hashtable` 是同步的,不允许 `null` 键值。 12. `final`, `finally`, `finalize`: - `final` 修饰变量不可改变,修饰类不能被继承,修饰方法不能被重写。 - `finally` 用于保证代码块一定会执行,常用于资源清理。 - `finalize` 是对象被垃圾收集器回收前调用的方法。 13. `sleep()` 和 `wait()`: - `sleep()` 让当前线程休眠,不会释放锁;`wait()` 让线程等待,会释放锁,需要配合 `notify()` 或 `notifyAll()` 使用。 14. `Overload` 和 `Override`: - `Overload` 是重载,同一个类中方法名相同但参数列表不同;`Override` 是重写,子类方法覆盖父类方法。 - 重载方法不能改变返回类型,而重写方法必须保持返回类型一致。 15. `error` 和 `exception`: - `error` 通常是系统级别的问题,如内存溢出,需要立即解决;`exception` 是应用程序层的异常,可以捕获处理。 16. 同步和异步: - 同步意味着多个线程顺序执行,确保数据一致性;异步允许多个任务并行,提高效率。根据数据共享和交互需求选择。 17. `abstract class` 和 `interface`: - 抽象类可以包含字段和实现部分,最多只能单继承;接口只包含方法签名,可以多实现。 18. 堆和栈: - 堆存储对象实例,动态分配内存,垃圾回收管理;栈存储基本类型和对象引用,内存自动回收。 19. `forward` 和 `redirect`: - `forward` 在服务器内部重定向,维持请求状态;`redirect` 客户端重新发起请求,不保留状态。 20. EJB 与 JavaBean: - EJB 是服务器端组件,处理企业级功能,如事务管理;JavaBean 是客户端组件,简化UI构建。 21. `StaticNestedClass` 和 `InnerClass`: - 静态嵌套类与外部类没有实例关联,可以独立存在;内部类需要外部类实例才能创建。 22. 动态 `INCLUDE` 与静态 `INCLUDE`: - 动态 `jsp:include` 在每次请求时执行包含的页面;静态 `<%@ include file="">` 在编译时合并。 23. `assert`: - 用于断言,测试代码中的假设,仅在开启断言时生效。 24. GC(Garbage Collection): - 自动回收不再使用的对象内存,防止内存泄漏。 25. shorts1=1;s1=s1+1; 和 shorts1=1;s1+=1; 的区别: - 前者在计算过程中可能会导致数据溢出,因为中间结果会提升为 `int` 类型;后者直接在 `short` 类型上进行操作。 26. Math.round(11.5) 和 Math.round(-11.5): - Math.round 返回最接近的整数,正数向右舍入,负数向左舍入,所以结果分别是 12 和 -11。 27. Strings=new String("xyz"); 创建了几个 `String` 对象: - 创建了两个,一个是字面量 "xyz",另一个是新对象。 28. 线程同步问题: - 设计线程同步机制,如使用 `synchronized` 关键字或 `Lock` 接口,确保线程安全地共享资源。 这些只是Java基础知识的一部分,深入学习还需要理解类加载机制、异常处理策略、IO流、网络编程、多线程、设计模式等更多内容。通过不断练习和项目经验积累,才能真正掌握Java这门强大的编程语言。