java基础面试题
一、基础篇
1.1.Java语言有哪些特点
1.2.面向对象和面向过程的区别
1.3.八种基本数据类型的大小,以及他们的封装类
1.4.标识符的命名规则。
1.5.instanceof 关键字的作用
1.6.Java自动装箱与拆箱
1.7.重载和重写的区别
1.8.equals与==的区别
1.9.Hashcode的作用
1.10.String、String StringBuffer 和 StringBuilder 的区别是什么?
1.11.ArrayList和linkedList的区别
1.12.HashMap和HashTable的区别
1.13.Collection包结构,与Collections的区别
1.14. Java的四种引用,强弱软虚
1.15.泛型常用特点
1.16.Java创建对象有几种方式?
1.17.有没有可能两个不相等的对象有相同的hashcode
1.18.深拷贝和浅拷贝的区别是什么?
1.19.final有哪些用法?
1.20.static都有哪些用法?
1.21 3*0.1==0.3返回值是什么
1.22 a=a+b与a+=b有什么区别吗?
1.23.try catch finally,try里有return,finally还执行么?
1.24 Excption与Error包结构
1.25.OOM你遇到过哪些情况,SOF你遇到过哪些情况
1.26.简述线程、程序、进程的基本概念。以及他们之间关系是什么?
1.27.线程有哪些基本状态?这些状态是如何定义的?
1.28.Java 中 IO 流
1.29.java反射的作用于原理
1.30.说说List,Set,Map三者的区别?
二、JVM篇
2.1.知识点汇总
2.2.知识点详解:
2.3.类加载与卸载
2.4.简述一下JVM的内存模型
2.5.堆和栈的区别
2.6.什么时候会触发FullGC
2.7.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?
2.8.Java内存结构
2.9.对象分配规则
2.10.Java对象创建过程
2.11.类的生命周期
2.12.简述Java的对象结构
2.13.如何判断对象可以被回收?
2.14.JVM的永久代中会发生垃圾回收么?
2.15.垃圾收集算法
2.16.调优命令有哪些?
2.17.调优工具
2.18.Minor GC与Full GC分别在什么时候发生?
2.19.你知道哪些JVM性能调优
2.20.简述Java垃圾回收机制?
2.21.什么是类加载器,类加载器有哪些?
2.22.你有没有遇到过OutOfMemory问题?你是怎么来处理这个问题的?处理 过程中有哪些收获? 常见的原因:
2.23.JDK 1.8之后Perm Space有哪些变动? MetaSpace⼤⼩默认是⽆限的么? 还是你们会通过什么⽅式来指定⼤⼩?
三、多线程&并发篇
3.1.Java中实现多线程有几种方法
3.2.如何停止一个正在运行的线程
3.3.notify()和notifyAll()有什么区别?
3.4.sleep()和wait() 有什么区别?
3.5.volatile 是什么?可以保证有序性吗?
3.6.Thread 类中的start() 和 run() 方法有什么区别?
3.7.为什么wait, notify 和 notifyAll这些方法不在thread类里面?
3.8.为什么wait和notify方法要在同步块中调用?
3.9.Java中interrupted 和 isInterruptedd方法的区别?
3.10.Java中synchronized 和 ReentrantLock 有什么不同?
3.11.有三个线程T1,T2,T3,如何保证顺序执行?
3.12.SynchronizedMap和ConcurrentHashMap有什么区别?
3.13.什么是线程安全
3.14.Thread类中的yield方法有什么作用?
3.15.Java线程池中submit() 和 execute()方法有什么区别?
3.16.说一说自己对于 synchronized 关键字的了解
3.17.说说自己是怎么使用 synchronized 关键字,在项目中用到了 吗
3.18.什么是线程安全?Vector是一个线程安全类吗?
3.19.volatile关键字的作用?
3.20.常用的线程池有哪些?
3.21.简述一下你对线程池的理解
3.22.说说自己是怎么使用 synchronized 关键字,在项目中用到了吗
3.23.讲一下 synchronized 关键字的底层原理
3.24.为什么要用线程池?
3.25.实现Runnable接口和Callable接口的区别
3.26.执行execute()方法和submit()方法的区别是什么呢?
3.27.如何创建线程池
四、Spring篇
4.1.Spring的IOC和AOP机制?
4.2.Spring中Autowired和Resource关键字的区别?
4.3.依赖注入的方式有几种,各是什么?
4.4.讲一下什么是Spring
4.5.Spring MVC流程
4.6.SpringMVC怎么样设定重定向和转发的?
4.7.SpringMVC常用的注解有哪些?
4.8.Spring的AOP理解:
4.9.Spring的IOC理解
4.10.解释一下spring bean的生命周期
4.11.解释Spring支持的几种bean的作用域。
4.12. Spring基于xml注入bean的几种方式:
4.13.Spring框架中都用到了哪些设计模式?
五、MyBatis篇
5.1.什么是MyBatis
5.2.MyBatis的优点和缺点
5.3.#{}和${}的区别是什么?
5.4.当实体类中的属性名和表中的字段名不一样 ,怎么办 ?
5.5.Mybatis是如何进行分页的?分页插件的原理是什么?
5.6.Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?
5.7.如何执行批量插入?
5.8.MyBatis实现一对一有几种方式?具体怎么操作的?
5.9.Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?
5.10.Mybatis的一级、二级缓存:
六、SpringBoot篇
6.1.什么是SpringBoot?为什么要用SpringBoot
6.2.Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
6.3.运行Spring Boot有哪几种方式?
6.4.如何理解 Spring Boot 中的 Starters?
6.5.如何在Spring Boot启动的时候运行一些特定的代码?
6.6.Spring Boot 需要独立的容器运行吗?
6.7. Spring Boot中的监视器是什么?
6.8. 如何使用Spring Boot实现异常处理?
6.9.你如何理解 Spring Boot 中的 Starters?
6.10. springboot常用的starter有哪些
6.11.SpringBoot 实现热部署有哪几种方式?
6.12.如何理解 Spring Boot 配置加载顺序?
6.13.Spring Boot 的核心配置文件有哪几个?它们的区别是什么?
6.14.如何集成 Spring Boot 和 ActiveMQ?
6.15.如何重新加载Spring Boot上的更改,而无需重新启动服务器?
6.16.Spring Boot、Spring MVC 和 Spring 有什么区别?
6.17.能否举一个例子来解释更多 Staters 的内容?
6.18.pring Boot 还提供了其它的哪些 Starter Project Options?
七、MySQL篇
7.1.数据库的三范式是什么
7.2.数据库引擎有哪些
7.3.InnoDB与MyISAM的区别
7.4.数据库的事务
7.5.索引问题
7.6.SQL优化
7.7.简单说一说drop、delete与truncate的区别
7.8.什么是视图
7.9.什么是内联接、左外联接、右外联接?
7.10.并发事务带来哪些问题?
7.11.事务隔离级别有哪些?MySQL的默认隔离级别是?
7.12.大表如何优化?
7.13.分库分表之后,id 主键如何处理?
7.14.mysql有关权限的表都有哪几个
7.15.mysql有哪些数据类型
7.16.创建索引的三种方式,删除索引
八、Redis篇
8.1.Redis持久化机制
8.2.缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题
8.3.热点数据和冷数据是什么
8.4.Memcache与Redis的区别都有哪些?
8.5.单线程的redis为什么这么快
8.6.redis的数据类型,以及每种数据类型的使用场景
8.7.redis的过期策略以及内存淘汰机制
8.8.Redis 为什么是单线程的
8.9.Redis 常见性能问题和解决方案?
8.10.为什么Redis的操作是原子性的,怎么保证原子性的?
8.11.Redis事务
九、SpringCloud篇
9.1.什么是SpringCloud
9.2.什么是微服务
9.3.SpringCloud有什么优势
9.4.什么是服务熔断?什么是服务降级?
9.5.ureka和zookeeper都可以提供服务注册与发现的功能,请说 说两个的区别?
9.6.SpringBoot和SpringCloud的区别?
9.7.负载平衡的意义什么?
9.8.什么是Hystrix?它如何实现容错?
9.9.什么是Hystrix断路器?我们需要它吗?
9.10.说说 RPC 的实现原理
十、Nginx篇
10.1.简述一下什么是Nginx,它有什么优势和功能?
10.2.Nginx是如何处理一个HTTP请求的呢?
10.3.列举一些Nginx的特性
10.4.请列举Nginx和Apache 之间的不同点
10.5.在Nginx中,如何使用未定义的服务器名称来阻止处理请求?
10.6.请解释Nginx服务器上的Master和Worker进程分别是什么?
10.7.请解释代理中的正向代理和反向代理
10.8.解释Nginx用途
十一、zookeeper篇
11.1.ZooKeeper 是什么?
11.2.ZooKeeper 提供了什么?
11.3.Zookeeper 文件系统
11.4.ZAB 协议?
11.5.四种类型的数据节点 Znode
11.6. Zookeeper Watcher 机制 – 数据变更通知
11.7.客户端注册 Watcher 实现
11.8.服务端处理 Watcher 实现
11.9.客户端回调 Watcher
11.10.ACL 权限控制机制
11.11.Chroot 特性
11.12.会话管理
11.13.服务器角色
11.14.Zookeeper 下 Server 工作状态
11.15.zookeeper 是如何保证事务的顺序一致性的?
11.16.分布式集群中为什么会有 Master?
11.17.zk 节点宕机如何处理?
11.18.zookeeper 负载均衡和 nginx 负载均衡区别
11.19.Zookeeper 有哪几种几种部署模式?
11.20.集群最少要几台机器,集群规则是怎样的?
11.21.集群支持动态添加机器吗?
11.22.Zookeeper 对节点的 watch 监听通知是永久的吗?为什么不是永久的?
11.23.Zookeeper 的 java 客户端都有哪些?
11.24.chubby 是什么,和 zookeeper 比你怎么看?
11.25.说几个 zookeeper 常用的命令。
11.26.Zookeeper 的典型应用场景
十二、kafka篇
12.1.如何获取 topic 主题的列表
12.3.consumer 是推还是拉?
12.4.讲一下主从同步
12.5.为什么需要消息系统,mysql 不能满足需求吗?
12.6.Zookeeper 对于 Kafka 的作用是什么?
12.7.Kafka 判断一个节点是否还活着有那两个条件?
12.8.Kafka 与传统 MQ 消息系统之间有三个关键区别
12.9.讲一讲 kafka 的 ack 的三种机制
12.10.消费者如何不自动提交偏移量,由应用提交?
12.11.如何控制消费的位置
12.12.kafka 分布式(不是单机)的情况下,如何保证消息的顺序消费?
12.13.kafka 的高可用机制是什么?
12.14.kafka 如何减少数据丢失
12.15.kafka 如何不消费重复数据?比如扣款,我们不能重复的扣。
十三、MQ篇
13.1.为什么使用MQ
13.2.MQ优缺点
13.3.Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别?
13.4.如何保证高可用的?
13.5.如何保证消息的顺序性
13.6.如何解决消息队列的延时以及过期失效问题?消息队列满了以后
13.7.设计MQ的思路
十四、Elasticsearch篇
14.1.elasticsearch 了解多少,说说你们公司 es 的集群架构,索引数据大小,分片有多少,以及一些调优手段 。
14.2.elasticsearch 的倒排索引是什么
14.3.elasticsearch 索引数据多了怎么办,如何调优,部署
14.4.elasticsearch 是如何实现 master 选举的
14.5.详细描述一下 Elasticsearch 索引文档的过程
14.6.详细描述一下 Elasticsearch 搜索的过程?
14.7.Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法
14.8.Elasticsearch 是如何实现 Master 选举的?
14.9.Elasticsearch 中的节点(比如共 20 个),其中的 10 个选了一个 master,另外 10 个选了另一个 master,怎么办?
14.10.客户端在和集群连接时,如何选择特定的节点执行请求的?
14.11.详细描述一下 Elasticsearch 索引文档的过程。
14.13.Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?
14.14.Elasticsearch 对于大数据量(上亿量级)的聚合如何实现?
14.15.在并发情况下,Elasticsearch 如果保证读写一致?
14.16.如何监控 Elasticsearch 集群状态?
14.17.介绍一下你们的个性化搜索方案?
十五、Linux篇
15.1.绝对路径用什么符号表示?当前目录、上层目录用什么表示?主
15.3.怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户 id?查看指定帮助用什么命令?
15.4.Ls 命令执行什么功能? 可以带哪些参数,有什么区别?
15.5.建立软链接(快捷方式),以及硬链接的命令。
15.6.目录创建用什么命令?创建文件用什么命令?复制文件用什么命令?
15.7.查看文件内容有哪些命令可以使用?
15.8.端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令?
15.9.复制文件用哪个命令?如果需要连同文件夹一块复制呢?如果需
15.10.删除文件用哪个命令?如果需要连目录及目录下文件一块删除呢?删除空文件夹用什么命令?
15.11.Linux 中进程有哪几种状态?在 ps 显示出来的信息中,分别用什么符号表示的?
15.12.利用 ps 怎么显示所有的进程? 怎么利用 ps 查看指定进程的信息?
15.13.哪个命令专门用来查看后台任务?
15.14.搜索文件用什么命令? 格式是怎么样的?
15.15.查看当前谁在使用该主机用什么命令? 查找自己所在的终端信息用什么命令?
15.16.使用什么命令查看用过的命令列表?
15.17.使用什么命令查看网络是否连通?
15.18.使用什么命令查看 ip 地址及接口信息?
15.19.查看各类环境变量用什么命令?
15.20.通过什么命令指定命令提示符?
15.21.通过什么命令查找执行命令?
15.22.列举几个常用的Linux命令
15.23.你平时是怎么查看日志的?
最主要的是给自己增加知识的储备,有备无患。最后给大家分享Spring系列的学习笔记和面试题,包含spring面试题、spring cloud面试题、spring boot面试题、spring教程笔记、spring boot教程笔记、最新阿里巴巴开发手册(63页PDF总结)、2022年Java面试手册。一共整理了1184页PDF文档。私信博主(666)领取,祝大家更上一层楼!!!
学习更多JAVA知识与技巧,关注与私信博主(666)