面试必备:《Java 最常见 200+ 面试题全解析》(一)Java 基础部分

文章目录

    • 一、Java 基础部分
      • 1. JDK和JRE的区别
      • 2. == 和 equals 的区别是什么?
      • 3. 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?
      • 4. final 在 java 中有什么作用?
      • 5. java 中的 Math.round(-1.5) 等于多少?
      • 6. String 属于基础的数据类型吗?
      • 7. java 中操作字符串都有哪些类?它们之间有什么区别?
      • 8. String str="i"与 String str=new String(“i”)一样吗?
      • 9. 如何将字符串反转?
      • 10. String 类的常用方法都有那些?
      • 11. 抽象类必须要有抽象方法吗?
      • 12. 普通类和抽象类有哪些区别?
      • 13. 抽象类能使用 final 修饰吗?
      • 14. 接口和抽象类有什么区别?
      • 15. java 中 IO 流分为几种?
      • 16. BIO、NIO、AIO 有什么区别?
      • 17. Files的常用方法都有哪些?
    • 二、容器部分
    • 三、多线程部分
    • 四、反射部分
    • 五、对象拷贝部分

一、Java 基础部分

1. JDK和JRE的区别

链接地址

2. == 和 equals 的区别是什么?

链接地址

3. 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?

链接地址

4. final 在 java 中有什么作用?

链接地址

5. java 中的 Math.round(-1.5) 等于多少?

运行结果: -1

JDK 中的 java.lang.Math 类
round() :返回四舍五入,负 .5 小数返回较大整数,如 -1.5 返回 -1。
ceil() :返回小数所在两整数间的较大值,如 -1.5 返回 -1。
tail() :返回小数所在两整数间的较小值,如 -1.5 返回 -2。

6. String 属于基础的数据类型吗?

Java基本数据类型

不属于。
Java8种基础的数据类型:byte、short、char、int、long、float、double、boolean。

7. java 中操作字符串都有哪些类?它们之间有什么区别?

链接地址

8. String str="i"与 String str=new String(“i”)一样吗?

不一样。
因为内存的分配方式不一样。String str="i"的方式,Java 虚拟机会将其分配到常量池中;而 String str=new String(“i”)方式,则会被分到堆内存中。
堆内存用来存放由new创建的对象和数组。 在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。
常量池指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。

9. 如何将字符串反转?

链接地址

10. String 类的常用方法都有那些?

链接地址

11. 抽象类必须要有抽象方法吗?

不需要,
抽象类不一定有抽象方法;但是包含一个抽象方法的类一定是抽象类。(有抽象方法就是抽象类,是抽象类可以没有抽象方法)

12. 普通类和抽象类有哪些区别?

1.抽象类不能被实例化
2.抽象类可以有抽象方法,抽象方法只需声明,无需实现
3.含有抽象方法的类必须声明为抽象类
4.如果没有实现抽象基类中所有的抽象方法,则子类成为一个抽象子类;如果实现抽象类中所有抽象方法,他就是非抽象子类;
5.抽象方法不能被声明为静态static
6.抽象方法不能用private修饰
7.抽象方法不能用final修饰

13. 抽象类能使用 final 修饰吗?

不能,抽象类是被用于继承的,而用final修饰的类,无法被继承。

14. 接口和抽象类有什么区别?

1.抽象类要被子类继承,接口要被类实现。
2.接口只能做方法声明,抽象类中可以作方法声明,也可以做方法实现。
3.接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。
4.接口是设计的结果,抽象类是重构的结果。
5.抽象类和接口都是用来抽象具体对象的,但是接口的抽象级别最高。
6.抽象类可以有具体的方法和属性,接口只能有抽象方法和不可变常量。
7.抽象类主要用来抽象类别,接口主要用来抽象功能。
主要:
抽象类的作用:
降低接口实现类对接口实现过程的难度
将接口中不需要使用的抽象方法教给抽象类进行完成
这样接口实现类只需要对接口需要的方法进行重写

15. java 中 IO 流分为几种?

可以分4种。
字节输入流(InputStream)
字节输出流(OutputStream)
字符输入流(Reader)
字符输出流(Writer)

16. BIO、NIO、AIO 有什么区别?

Java共支持3种网络编程模型/IO模式:BIO、NIO、AIO。
Java BIO :同步并阻塞(传统阻塞型)服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销。
Java NIO :同步非阻塞,服务器实现模式为一个线程处理多个请求(连接),即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求就进行处理 。
Java AIO(NIO.2) :异步非阻塞,AIO 引入异步通道的概念,采用了 Reactor 模式,简化了程序编写,有效的请求才启动线程,它的特点是先由操作系统完成后才通知服务端程序启动线程去处理,一般适用于连接数较多且连接时间较长的应用。

17. Files的常用方法都有哪些?

Files. exists():检测文件路径是否存在。
Files. createFile():创建文件。
Files.createDirectory():创建文件夹。
Files. delete():删除一个文件或目录。
Files.copy():复制文件。
Files. move():移动文件。
Files. size():查看文件个数。
Files.read():读取文件。
Files. write():写入文件。

二、容器部分

链接地址

三、多线程部分

链接地址

四、反射部分

链接地址

五、对象拷贝部分

链接地址

你可能感兴趣的:(Java面试题)