前言:
总结最全面的面试题来了,你要学习的要看的面试题这里都有,分专栏整理,查漏补缺,这么全面的面试宝典不多了,赶紧学起来,大厂在等你,话不多说看题!
内容涵盖:
- JavaOOP面试题 Java集合/泛型面试题
- Java异常面试题 Java中的IO与NIO面试题
- Java反射面试题 Java序列化面试题
- Java注解面试题 多线程&并发面试题
- JVM面试题 Mysql面试题
- Redis面试题 Memcached面试题
- MongoDB面试题 String面试题
- Spring Boot面试题 Spring Cloud面试题
- RabbitMQ面试题 Dubbo 面试题
- MyBatis 面试题 ZooKeeper 面试题
- 数据结构面试题 算法面试题
- Elasticsearch 面试题 Kafka 面试题
- 微服务 面试题 Linux面试题
JavaOOP面试题
1.什么是B/S架构?什么是C/S架构
2.Java都有那些开发平台?
3.什么是JDK?什么是JRE?
- JDK:java development kit:java开发工具包,是开发人员所需要安装的环境
- JRE:java runtime environment:java运行环境,java程序运行所需要安装的环境
4.Java语言有哪些特点
5.面向对象和面向过程的区别
6.什么是OOP?
- 面向对象编程
Java集合/泛型面试题
1、ArrayList和linkedList的区别
2、 HashMap和HashTable的区别
3、Collection包结构,与Collections的区别
Collection是集合类的上级接口,子接口有 Set、List、LinkedList、ArrayList、Vector、Stack、Set;Collections是集合类的一个帮助类, 它包含有各种有关集合操作的静态多态方法,用于实现对各种集合的搜索、排序、线程安全化等操作。此类不能实例化,就像一个工具类,服务于Java的Collection框架。
4、泛型常用特点 (待补充)
5、说说List,Set,Map三者的区别
6、Array与ArrayList有什么不一样?
7、Map有什么特点
8、集合类存放于 Java.util 包中, 主要有几 种接口
9、什么是list接口
Java集合/泛型面试题共24道
Java异常面试题
1、Java中异常分为哪两种?
- 编译时异常
- 运行时异常
2、异常的处理机制有几种?
3、如何自定义一个异常
4、try catch fifififinally,try里有return,fifinally还执行么?
5、 Excption与Error包结构
6、Thow与thorws区别
7、Error与Exception区别?
Error和Exception都是java错误处理机制的一部分,都继承了Throwable类。
Exception表示的异常,异常可以通过程序来捕捉,或者优化程序来避免。
Error表示的是系统错误,不能通过程序来进行错误处理。
8.error和exception有什么区别
Java中的IO与NIO面试题
1、Java 中 IO 流?
2、 Java IO与 NIO的区别
3、常用io类有那些
4、字节流与字符流的区别
- 以字节为单位输入输出数据,字节流按照8位传输
- 以字符为单位输入输出数据,字符流按照16位传输
5、阻塞 IO 模型
6、非阻塞 IO 模型
7、多路复用 IO 模型
8、信号驱动 IO 模型
9、异步 IO 模型
10、JAVA NIO
11、NIO 的缓冲区
12、NIO 的非阻塞
13、Channel
14、Buffffer
15、Selector
Java序列化面试题
1、什么是java序列化,如何实现java序列化?
2、保存(持久化)对象及其状态到内存或者磁盘
3、序列化对象以字节数组保持-静态成员不保存
4、序列化用户远程对象传输
5、Serializable 实现序列化
6、writeObject 和 readObject 自定义序列化策略
7、序列化 ID
8、序列化并不保存静态变量
9、Transient 关键字阻止该变量被序列化到文件中
10、序列化(深 clone 一中实现)
在 Java 语言里深复制一个对象,常常可以先使对象实现 Serializable 接口,然后把对象(实际上只是对象的一个拷贝)写到一个流里,再从流里读出来,便可以重建对象。
Java注解面试题
1、4种标准元注解是哪四种?
2、注解是什么?
Annotation(注解)是 Java 提供的一种对元程序中元素关联信息和元数据(metadata)的途径和方法。 Annatation(注解)是一个接口,程序可以通过反射来获取指定程序中元素的 Annotation对象,然后通过该 Annotation 对象来获取注解中的元数据信息。
多线程&并发面试题
1、Java中实现多线程有几种方法
2、继承 Thread 类
3、实现 Runnable 接口。
4、ExecutorService、 Callable、 Future 有返回值线程
5、基于线程池的方式
6、4 种线程池
7、如何停止一个正在运行的线程
8、notify()和notifyAll()有什么区别?
9、sleep()和wait() 有什么区别?
10、volatile 是什么?可以保证有序性吗?
JVM面试题
1、java中会存在内存泄漏吗,请简单描述。
2、64 位 JVM 中,int 的长度是多数?
3、Serial 与 Parallel GC 之间的不同之处?
4、32 位和 64 位的 JVM,int 类型变量的长度是多数?
5、Java 中 WeakReference 与 SoftReference 的区别?
6、JVM 选项 -XX:+UseCompressedOops 有什么作用?为什么要使用
当你将你的应用从 32 位的 JVM 迁移到 64 位的 JVM 时,由于对象的指针从32 位增加到了 64 位,因此堆内存会突然增加,差不多要翻倍。
这也会对 CPU缓存(容量比内存小很多)的数据产生不利的影响。因为,迁移到 64 位的 JVM主要动机在于可以指定最大堆大小,通过压缩
OOP 可以节省一定的内存。通过-XX:+UseCompressedOops 选项,JVM 会使用 32 位的 OOP,而不是 64 位的 OOP。
7、怎样通过 Java 程序来判断 JVM 是 32 位 还是 64位?
JVM面试题87道
读者福利
由于题量较多,篇幅的限制,文章中的面试题分享没有全部附上详细的解析