Java面试必备:基础、容器与多线程知识点解析

需积分: 9 0 下载量 41 浏览量 更新于2024-07-15 收藏 1.48MB PDF 举报
"Java面试题和答案.pdf包含了2021年最新的Java面试知识点和解答,涵盖Java基础、容器和多线程等核心领域。" Java面试题与答案的详细解析: 1. JDK和JRE有什么区别? JDK(Java Development Kit)是Java开发工具包,包含JRE(Java Runtime Environment)以及编译器、调试器和其他工具,用于开发、运行和管理Java应用程序。JRE则是Java程序运行所需的基础环境,只包含运行Java程序所需的库和虚拟机。 2. ==和equals的区别是什么? ==用于比较基本数据类型的值是否相等,而对于对象,它比较的是两个引用是否指向同一个内存地址。equals()方法是Object类中的一个方法,用于比较对象的内容是否相等,子类可以重写这个方法以提供特定的比较逻辑。 3. 两个对象的hashCode()相同,则equals()也一定为true,对吗? 不一定。hashCode()相同意味着两个对象在哈希表中可能位于同一位置,但它们的内容可能不同。只有当equals()返回true时,才表示两个对象是相等的。 4. final在Java中有什么作用? final关键字用于声明常量、防止变量被重新赋值、确保方法不可覆盖以及限制匿名内部类的实例化。 5. java中的Math.round(-1.5)等于多少? Math.round(-1.5)会四舍五入为-1。 6. String属于基础的数据类型吗? 不是,String是对象,属于引用数据类型,不是基础类型如int、char等。 7. Java中操作字符串都有哪些类?它们之间有什么区别? 主要有String、StringBuilder和StringBuffer。String是不可变的,而StringBuilder和StringBuffer是可变的,适用于字符串拼接等操作,后者在线程安全的情况下更优。 8. String str="i"与String str=new String("i")一样吗? 不一样。前者创建了一个String池中的字符串,后者创建了新的String对象。 9. 如何将字符串反转? 可以使用StringBuilder或StringBuffer的reverse()方法。 10. String类的常用方法都有哪些? 常见的方法包括length()、charAt()、substring()、indexOf()、trim()、concat()、compareTo()等。 11. 抽象类必须要有抽象方法吗? 不一定,抽象类可以不包含抽象方法,但至少有一个抽象方法的类必须声明为抽象类。 12. 普通类和抽象类有哪些区别? 抽象类不能实例化,只能被继承;普通类可以直接实例化,也可以被继承。 13. 抽象类能使用final修饰吗? 不可以,因为final类不能被继承,而抽象类需要被继承。 14. 接口和抽象类有什么区别? 接口只能包含抽象方法和常量,不能有非静态成员变量和构造方法;抽象类可以有成员变量、构造方法和非抽象方法。接口间的多继承是允许的,但Java类只能单继承一个抽象类。 15. Java中IO流分为几种? 分为字节流和字符流,每种又分为输入流和输出流,总共四种:InputStream/OutputStream(字节流)、Reader/Writer(字符流)。 16. BIO、NIO、AIO有什么区别? BIO(Blocking IO)是同步阻塞的,适用于小规模并发;NIO(Non-blocking IO)是非阻塞的,适用于大规模并发;AIO(Asynchronous IO)是异步非阻塞的,进一步降低了I/O操作对应用的影响。 17. Files的常用方法都有哪些? 包括createFile()、delete()、exists()、readLink()、copy()、move()等,用于文件和目录的操作。 以上只是部分Java面试题和知识点的解析,完整的资料还涵盖了更多关于容器、多线程等方面的问题,对于准备Java面试或提升技能都非常有帮助。