基础篇
1、JAVA语言有哪些特点
2、面向对象和面向过程的区别
3、八种基本数据类型的大小,以及他们的封装类
4、标识符的命名规则。
5、instanceof关键字的作用
6、Java自动装箱与拆箱
7、重载和重写的区别
8、equals与==的区别
9、Hashcode的作用
10、String、String StringBufer和StringBuilder的区别是什么
11、ArrayList和linkedList的区别
12、HashMap和HashTable的区别
13、Collection包结构,与Collections的区别
14、Java的四种引用,强弱软虚
15、泛型常用特点
16、Java创建对象有几种方式?
17、有没有可能两个不相等的对象有相同的hashcode
18、深拷贝和浅拷贝的区别是什么?
19、final有哪些用法?
20、static都有哪些用法?
21、3*0.1==0.3返回值是什么
22、a=a+b与a+=b有什么区别吗?
23、try catch finally,try里有return,finally还执行么?
24、Excption与Error包结构
25、OOM你遇到过哪些情况,SOF你遇到过哪些情况
26、简述线程、程序、进程的基本概念。以及他们之间关系是什么?
27、Java序列化中如果有些字段不想进行序列化,怎么办?
28、说说Java中IO流
29、Java IO与NIO的区别(补充)
30、java反射的作用于原理
31、说说List,Set,Map三者的区别?
32.、Object有哪些常用方法?大致说一下每个方法的含义
33、Java创建对象有几种方式?
34、获取一个类Class对象的方式有哪些?
35、ArrayList和LinkedList的区别有哪些?
36、用过ArrayList吗?说一下它有什么特点?
37、有数组了为什么还要搞个ArrayList呢?
38、说说什么是fail-fast?
39、说说Hashtable与HashMap的区别
40、HashMap中的key我们可以使用任何类作为key吗?
41、HashMap的长度为什么是2的N次方呢?
42、HashMap与ConcurrentHashMap的异同
43、红黑树有哪几个特征?
44、说说你平时是怎么处理Java异常的
45、说说深拷贝和浅拷贝?
JVM篇
1、知识点汇总
2、知识点详解:
3、说说类加载与卸载
4、简述一下JVM的内存模型
5、说说堆和栈的区别
6、什么时候会触发FullGC
7、什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?
8、Java内存结构
9、说说对象分配规则
10、描述一下JVM加载class文件的原理机制?
11、说说Java对象创建过程
12、知道类的生命周期吗?
13、简述Java的对象结构
14、如何判断对象可以被回收?
15、JVM的永久代中会发生垃圾回收么?
16、你知道哪些垃圾收集算法
17、调优命令有哪些?
18、常见调优工具有哪些
19、Minor GC与Full GC分别在什么时候发生?
20、你知道哪些JVM性能调优参数?(简单版回答)
21、对象一定分配在堆中吗?有没有了解逃逸分析技术?
22、虚拟机为什么使用元空间替换了永久代?
23、什么是Stop The World ?什么是OopMap?什么是安全点?
24、说一下JVM的主要组成部分及其作用?
25、什么是指针碰撞?
26,什么是空闲列表?
27,什么是TLAB?
28、对象头具体都包含哪些内容?
29、你知道哪些JVM调优参数?
30、说一下JVM有哪些垃圾回收器?
31、如何选择垃圾收集器?
32、什么是类加载器?
33、什么是Tomcat类加载机制?
多线程&并发篇
1、说说Java中实现多线程有几种方法
2、如何停止一个正在运行的线程
3、notify()和notifyAll()有什么区别?
4、sleep()和wait()有什么区别?
5、volatile是什么?可以保证有序性吗?
6、Thread类中的start()和run()方法有什么区别?
7、为什么wait, notify和notifyAll这些方法不在thread类里面?
8、为什么wait和notify方法要在同步块中调用?
9、Java中interrupted和isInterruptedd方法的区别?
10、Java中synchronized和ReentrantLock有什么不同?
11、有三个线程T1,T2,T3,如何保证顺序执行?
12、SynchronizedMap和ConcurrentHashMap有什么区别?
13、什么是线程安全
14、Thread类中的yield方法有什么作用?
15、Java线程池中submit()和execute()方法有什么区别?
16、说一说自己对于synchronized关键字的了解
17、说说自己是怎么使用synchronized关键字?
18、什么是线程安全?Vector是一个线程安全类吗?
19、volatile关键字的作用?
20、常用的线程池有哪些?
21、简述一下你对线程池的理解
22、Java程序是如何执行的
23、锁的优化机制了解吗?
24、说说进程和线程的区别?
25,产生死锁的四个必要条件?
26、如何避免死锁?
27,线程池核心线程数怎么设置呢?
28,Java线程池中队列常用类型有哪些?
29,线程安全需要保证几个基本特征?
30,说一下线程之间是如何通信的?
31、CAS的原理呢?
32、CAS有什么缺点吗?
33、引用类型有哪些?有什么区别?
34、说说ThreadLocal原理?
35、线程池原理知道吗?以及核心参数
36、线程池的拒绝策略有哪些?
37、说说你对JMM内存模型的理解?为什么需要JMM?
38、多线程有什么用?
39、说说CyclicBarrier和CountDownLatch的区别?
40、什么是AQS?
41、了解Semaphore吗?
42、什么是Callable和Future?
43、什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队列来实现生产者-消费者模型?
44、什么是多线程中的上下文切换?
45、什么是Daemon线程?它有什么意义?
46、乐观锁和悲观锁的理解及如何实现,有哪些实现方式?
Spring篇
1、什么是spring?
2、你们项目中为什么使用Spring框架?
3、Autowired和Resource关键字的区别?
4、依赖注入的方式有几种,各是什么?
5、讲一下什么是Spring
6、说说你对Spring MVC的理解
7、SpringMVC常用的注解有哪些?
8、谈谈你对Spring的AOP理解
9、Spring AOP和AspectJ AOP有什么区别?
在Spring AOP中,关注点和横切关注的区别是什么?
什么是通知呢?有哪些类型呢?
10、说说你对Spring的IOC是怎么理解的?
11、解释一下spring bean的生命周期
12、解释Spring支持的几种bean的作用域?
13、Spring基于xml注入bean的几种方式?
14、Spring框架中都用到了哪些设计模式?
15、说说Spring中ApplicationContext和BeanFactory的区别
16、Spring框架中的单例Bean是线程安全的么?
17、Spring是怎么解决循环依赖的?
18、说说事务的隔离级别
19、说说事务的传播级别
20、Spring事务实现方式
21、Spring框架的事务管理有哪些优点
22、事务三要素是什么?
23、事务注解的本质是什么?
1、什么是MyBatis
2、说说MyBatis的优点和缺点
3、#{}和${}的区别是什么?
4、当实体类中的属性名和表中的字段名不一样,怎么办?
5、Mybatis是如何进行分页的?分页插件的原理是什么?
6、Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?
7、如何执行批量插入?
8、Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签?
9、MyBatis实现一对一有几种方式?具体怎么操作的?
10、Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?
11、说说Mybatis的缓存机制:
12、JDBC编程有哪些步骤?
13、MyBatis中见过什么设计模式?
14、MyBatis中比如UserMapper.java是接口,为什么没有实现类还能调用?
SpringBoot篇
1、为什么要用SpringBoot
2、Spring Boot的核心注解是哪个?它主要由哪几个注解组成的?
3、运行Spring Boot有哪几种方式?
4、如何理解Spring Boot中的Starters?
5、如何在Spring Boot启动的时候运行一些特定的代码?
6、Spring Boot需要独立的容器运行吗?
7、Spring Boot中的监视器是什么?
8、如何使用Spring Boot实现异常处理?
9、你如何理解Spring Boot中的Starters?
10、springboot常用的starter有哪些
11、SpringBoot实现热部署有哪几种方式?
12、如何理解Spring Boot配置加载顺序?
13、Spring Boot的核心配置文件有哪几个?它们的区别是什么?
14、如何集成Spring Boot和ActiveMQ?
1、数据库的三范式是什么
2、MySQL数据库引擎有哪些
3、说说InnoDB与MyISAM的区别
4、数据库的事务
5、索引是什么
6、SQL优化手段有哪些
7、简单说一说drop、delete与truncate的区别
8、什么是视图
9、什么是内联接、左外联接、右外联接?
10、并发事务带来哪些问题?
11,事务隔离级别有哪些?MySQL的默认隔离级别是?
12,大表如何优化?
13、分库分表之后,id主键如何处理?
14、说说在MySQL中一条查询SQL是如何执行的?
15、索引有什么优缺点?
16、MySQL中varchar与char的区别?varchar(30)中的30代表的涵义?
17、int(11)中的11代表什么涵义?
18、为什么SELECT COUNT(*) FROM table在InnoDB比MyISAM慢?
19.说说InnoDB与MyISAM有什么区别?
20、MySQL索引类型有哪些?
21、什么时候不要使用索引?
22、说说什么是MVCC?
23、MVCC可以为数据库解决什么问题?
24、说说MVCC的实现原理
25、MySQL事务隔离级别?
26、请说说MySQL数据库的锁?
27、说说什么是锁升级?
28、说说悲观锁和乐观锁
29、怎样尽量避免死锁的出现?
30、使用MySQL的索引应该注意些什么?
31、CHAR和VARCHAR的区别?
32、主键和候选键有什么区别?
33、主键与索引有什么区别?
34、MySQL如何做到高可用方案?
SpringCloud篇
1、什么是SpringCloud
2、什么是微服务
3、SpringCloud有什么优势
4、什么是服务熔断?什么是服务降级?
5、Eureka和zookeeper都可以提供服务注册与发现的功能,请说说两个的区别?
6、SpringBoot和SpringCloud的区别?
7、负载平衡的意义什么?
8、什么是Hystrix?它如何实现容错?
9、什么是Hystrix断路器?我们需要它吗?
10、说说RPC的实现原理
11,eureka自我保护机制是什么?
12,什么是Ribbon?
13,什么是feigin?它的优点是什么?
14,Ribbon和Feign的区别?
Dubbo篇
1、说说一次Dubbo服务请求流程?
2、说说Dubbo工作原理
3、Dubbo支持哪些协议?
4、注册中心挂了,consumer还能不能调用provider?
5、怎么实现动态感知服务下线的呢?
6、Dubbo负载均衡策略?
7、Dubbo容错策略
8、Dubbo动态代理策略有哪些?
9、说说Dubbo与Spring Cloud的区别?
10、Zookeeper和Dubbo的关系?
1、简述一下什么是Nginx,它有什么优势和功能?
2、Nginx是如何处理一个HTTP请求的呢?
3、列举一些Nginx的特性
4、请列举Nginx和Apache之间的不同点
5、在Nginx中,如何使用未定义的服务器名称来阻止处理请求?
6、请解释Nginx服务器上的Master和Worker进程分别是什么?
7、请解释代理中的正向代理和反向代理
8、解释Nginx用途
MQ篇
1、为什么要使用MQ
2、MQ有什么优缺点
3、Kafka、ActiveMQ、RabbitMQ、RocketMQ都有什么区别?
4、如何保证高可用的?
5、如何保证消息的可靠传输?如果消息丢了怎么办
6、如何保证消息的顺序性
7、如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?
8、让你来设计一个消息队列,你会怎么设计
数据结构与算法篇
1、绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示?切换目录用什么命令?
2、怎么查看当前进程?怎么执行退出?怎么查看当前路径?
3、查看文件有哪些命令
4、列举几个常用的Linux命令
5、你平时是怎么查看日志的?
Zookeeper篇
1,说说Zookeeper是什么?
2,ZooKeeper有哪些应用场景?
3、说说Zookeeper的工作原理?
4,请描述一下Zookeeper的通知机制是什么?
5,Zookeeper对节点的watch监听通知是永久的吗?
6,Zookeeper集群中有哪些角色?
7,Zookeeper集群中Server有哪些工作状态?
8,Zookeeper集群中是怎样选举leader的?
9,Zookeeper是如何保证事务的顺序一致性的呢?
10,ZooKeeper集群中个服务器之间是怎样通信的?
11,ZooKeeper分布式锁怎么实现的?
12、了解Zookeeper的系统架构吗?
13、Zookeeper为什么要这么设计?
14、你知道Zookeeper中有哪些角色?
15、你熟悉Zookeeper节点ZNode和相关属性吗?
16、请简述Zookeeper的选主流程
17、为什么Zookeeper集群的数目,一般为奇数个?
18、知道Zookeeper监听器的原理吗?
19、说说Zookeeper中的ACL权限控制机制
20、Zookeeper有哪几种几种部署模式?
21、Zookeeper集群支持动态添加机器吗?
22、描述一下ZAB协议
23、ZAB和Paxos算法的联系与区别?
24、ZooKeeper宕机如何处理?
25、描述一下ZooKeeper的session管理的思想?
26、ZooKeeper负载均衡和Nginx负载均衡有什么区别?
27、说说ZooKeeper的序列化
28,在Zookeeper中Zxid是什么,有什么作用?
29、讲解一下ZooKeeper的持久化机制
30、Zookeeper选举中投票信息的五元组是什么?
31、说说Zookeeper中的脑裂?
32、Zookeeper脑裂是什么原因导致的?
33、Zookeeper是如何解决脑裂问题的?
34、说说Zookeeper的CAP问题上做的取舍?
35、watch监听为什么是一次性的?
1,为什么要用缓存
2,使用Redis有哪些好处?
3,什么是Redis?
4,为什么使用Redis而不是用Memcache呢?
5,为什么Redis单线程模型效率也能那么高?
6,说说Redis的线程模型
7,为什么Redis需要把所有数据放到内存中?
8,Redis的同步机制了解是什么?
9,pipeline有什么好处,为什么要用pipeline?
10,说一下Redis有什么优点和缺点
11,Redis缓存刷新策略有哪些?
12,Redis持久化方式有哪些?以及有什么区别?
13,持久化有两种,那应该怎么选择呢?
14,怎么使用Redis实现消息队列?
15,说说你对Redis事务的理解
16,Redis为什么设计成单线程的?
17,什么是bigkey?会存在什么影响?
18,熟悉哪些Redis集群模式?
19,是否使用过Redis Cluster集群,集群的原理是什么?
20,Redis Cluster集群方案什么情况下会导致整个集群不可用?
21,Redis集群架构模式有哪几种?
22,说说Redis哈希槽的概念?
23,Redis常见性能问题和解决方案有哪些?
24,假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如果将它们全部找出来?
25,如果有大量的key需要设置同一时间过期,一般需要注意什么?
26,什么情况下可能会导致Redis阻塞?
27,缓存和数据库谁先更新呢?
28,怎么提高缓存命中率?
29,Redis如何解决key冲突?
30,Redis报内存不足怎么处理?
31、说说Redis持久化机制
32、缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题
33、热点数据和冷数据是什么
34、Memcache与Redis的区别都有哪些?
35、单线程的redis为什么这么快
36、redis的数据类型,以及每种数据类型的使用场景
37、redis的过期策略以及内存淘汰机制
38、Redis为什么是单线程的
39、Redis常见性能问题和解决方案?
40、为什么Redis的操作是原子性的,怎么保证原子性的?
41、了解Redis的事务吗?
42、Redis的数据类型及使用场景
分布式篇
1、分布式幂等性如何设计?
2,简单一次完整的HTTP请求所经历的步骤?
3、说说你对分布式事务的了解
4、你知道哪些分布式事务解决方案?
5,什么是二阶段提交?
6、什么是三阶段提交?
7、什么是补偿事务?
8、消息队列是怎么实现的?
9、那你说说Sagas事务模型
10,分布式ID生成有几种方案?
11,幂等解决方法有哪些?
12,常见负载均衡算法有哪些?
13、你知道哪些限流算法?
14、说说什么是计数器(固定窗口)算法
15、说说什么是滑动窗口算法
16、说说什么是漏桶算法
17、说说什么是令牌桶算法
18、数据库如何处理海量数据?
19、如何将长链接转换成短链接,并发送短信?
20、长链接和短链接如何互相转换?
21、长链接和短链接的对应关系如何存储?
22、如何提高系统的并发能力?
网络篇
1,HTTP响应码有哪些?分别代表什么含义?
2,Forward和Redirect的区别?
3,Get和Post请求有哪些区别?
4,说说TCP与UDP的区别,以及各自的优缺点
5,说一下HTTP和HTTPS的区别
6,说说HTTP、TCP、Socket的关系是什么?
7,说一下HTTP的长连接与短连接的区别
8,TCP为什么要三次握手,两次不行吗?为什么?
9,说一下TCP粘包是怎么产生的?怎么解决粘包问题的?
10,TCP如何保证可靠性
11,OSI的七层模型都有哪些?
12,浏览器中输入:“ www.woaijava.com”之后都发生了什么?请详细阐述
13,如何实现跨域?
14,TCP为什么要三次握手,两次不行吗?为什么?
15,说一下TCP粘包是怎么产生的?怎么解决粘包问题的?
16,HTTP1.0、HTTP1.1、HTTP2.0的关系和区别
17,说说HTTP协议与TCP/IP协议的关系
18,如何理解HTTP协议是无状态的?
19,什么是长连接和短连接?
20,长连接和短连接的优缺点?
21,说说长连接短连接的操作过程
22,说说TCP三次握手和四次挥手的全过程
23、OSI的七层模型都有哪些?
24、OSI这样分层有什么好处?
25、说说TCP/IP四层网络模型
26、说说域名解析详细过程?
27、IP地址分为几类,每类都代表什么,私网是哪些?
28、说说TCP如何保证可靠性的?
设计模式
1、说说什么是单例模式
2、说说你对代理模式的理解
3、说说工厂模式
4、抽象工厂模式
5、装饰器模式是什么
6、代理模式和装饰器模式有什么区别?
7、模板方法模式
8、知道享元模式吗?
9、享元模式和单例模式的区别?
10、说说策略模式在我们生活的场景?
11、知道责任链模式吗?
12、了解过适配器模式么?
13、知道观察者模式吗?
maven篇
1、什么是maven?
2、Maven能为我们解决什么问题?
3、说说maven有什么优缺点?
5、什么是Maven的坐标?
6、讲一下maven的生命周期
7、说说你熟悉哪些maven命令?
8、如何解决依赖传递引起的版本冲突?
9、说说maven的依赖原则
10、说说依赖的解析机制?
11、说说插件的解析机制
ElasticSearch篇
1、谈谈分词与倒排索引的原理
2、说说分段存储的思想
3、谈谈你对段合并的策略思想的认识
4、了解文本相似度TF-IDF吗
5、能说说ElasticSearch写索引的逻辑吗?
6、熟悉ElasticSearch集群中搜索数据的过程吗?
7、了解ElasticSearch深翻页的问题及解决吗?
8、熟悉ElasticSearch性能优化
9、ElasticSearch查询优化手段有哪些?
10、elasticsearch是如何实现master选举的?
11、elasticsearch索引数据多了怎么办,如何调优,部署?
12、说说你们公司es的集群架构,索引数据大小,分片有多少?
13、什么是ElasticSearch?
14、ElasticSearch中的集群、节点、索引、文档、类型是什么?
15、ElasticSearch中的分片是什么?
16,ElasticSearch中的副本是什么?
19,ElasticSearch中的分析器是什么?
20,什么是ElasticSearch中的编译器?
21,什么是ElasticSearch中的过滤器?
22,启用属性,索引和存储的用途是什么?
tomcat篇
1、Tomcat的缺省端口是多少,怎么修改?
2、tomcat有哪几种Connector运行模式(优化)?
3、Tomcat有几种部署方式?
4、tomcat容器是如何创建servlet类实例?用到了什么原理?
5、tomcat如何优化?
6、熟悉tomcat的哪些配置?
7、Tomcat是什么?
8,什么是Servlet呢?
9,什么是Servlet规范?
10、为什么我们将tomcat称为Web容器或者Servlet容器?
11,tomcat是如何处理Http请求流程的?
12、tomcat结构目录有哪些?
Git篇
1、Git和SVN有什么区别?
2、什么是Git?
3、在Git中提交的命令是什么?
4、什么是Git中的“裸存储库”?
5 Git是用什么语言编写的?
6、在Git中,你如何还原已经push并公开的提交?
7、git pull和git fetch有什么区别?
8、git中的“staging area”或“index”是什么?
9、什么是git stash?
10、什么是git stash drop?
11.、如何找到特定提交中已更改的文件列表?
12、git config的功能是什么?
13、提交对象包含什么?
14、如何在Git中创建存储库?
15、怎样将N次提交压缩成一次提交?
16、什么是Git bisect?如何使用它来确定(回归)错误的来源?
17、如果想要在提交之前运行代码性检查工具,并在测试失败时阻止提交,该怎样配置Git存储库?
18.、描述一下你所使用的分支策略?
19、如果分支是否已合并为master,你可以通过什么手段知道?
20、什么是SubGit?
21、列举工作中常用的几个git命令?
22、如果本次提交误操作,如何撤销?
23、你使用过git stash命令吗?你一般什么情况下会使用它?
24、如何查看分支提交的历史记录?查看某个文件的历史记录呢?
25、使用过git merge和git rebase吗?它们之间有什么区别?
26、使用过git cherry-pick,有什么作用?
软实力篇
1、为什么说简历很重要?
2、先从面试来说
3、再从面试说起
4、必知必会的几点
5、必须了解的两大法则
6、项目经历怎么写
7、专业技能怎么写
8、排版注意事项
9、其他一些小tips
10、你对我们公司有什么想问的吗?
11、很多人都倒在自我介绍上
13,如何与HR交谈,如何谈薪水
14、HR最喜欢问程序员的20个问题
15、面试中的礼仪与举止