2020年的上半年的时间已经过去,不知道大家有没有为下半年的金九银十的跳槽做好准备,不管你到底准备好了没,小编通过各大网站平台,和一些面进BATJ这些大厂的朋友的交流,总结出了一份2020上半年的面试总结,共计1259道,最为全网首发,现在免费公开!希望对大家下半年的跳槽有所帮助!
总目录大纲
多线程&并发面试题
1. Java中实现多线程有几种方法
2、继承Thread类
3、实现Runnable接口。
4、ExecutorService. Callable. Future有返回值线程
5、基于线程池的方式
6. 4种线程池
7、如何停止一个正在运行的线程
8、 notify0和notifyAll0有什么区别?
9. sleep0和wait0有什么区别?
10、volatile 是什么?可以保证有序性吗?
11、Thread 类中的start0和run0方法有什么区别?
12. 为什么wait, notify和nfifAllI这些方法不在thread类里面?
13、 为什么wait和ntify方法要在同步块中调用?
14、Java中interrupted 和isInterruptedd方法的区别?
15. Java中synchronized 和ReentrantLock有什么不同?
16、 有三个线程T1,T2,T3,如何保证顺序执行?
17. SynchronizedMap和ConcurrentHashMap有什么区别?
18、什么是线程安全?
19. Thread类中的yield方法有什么作用?
20、Java线程池中submit0 和execute0方法有什么区别?
21、说一-说自己对于synchronized关键字的了解
22、说说自己是怎么使用synchronized 关键字,在项目中用到了吗synchronized关键字最主要的三种使用方式
23、什么是线程安全? Vector是一个线程安全类吗?
24、volatile关键字的作用?
25、简述一下你对线程池的理解
26. 线程生命周期(状态)
27、新建状态(NEW)
28、就绪状态(RUNNABLE)
29、运行状态(RUNNING)
30、阻塞状态(BLOCKED)
31、线程死亡(DEAD)
32、 终止线程4种方式
33、start与 run区别
34、JAVA后台线程
35、什么是乐观锁
36、什么是悲观锁
37、什么是自旋锁
38、Synchronized 同步锁
39、ReentrantLock
40、Condition 类和Object 类锁方法区别区别
41、tryLock 和lock 和lockInterruptibly的区别
42、Semaphore 信号量
43、Semaphore 与ReentrantLock区别
44、可重入锁(递归锁)
45、公平锁与非公平锁
46、ReadWriteLock 读写锁
47、共享锁和独占锁
48. 重量级锁(Mutex Lock)
49、轻量级锁
50、 偏向锁
51、分段锁
52、锁优化
53、 线程基本方法
54、 线程等待(wait)
55. 线程睡眠(sleep)
56、 线程让步(yield)
57. 线程中断(interrupt)
58、Join等待其他线程终止
59. 为什么要用join0方法?
60. 线程唤醒(notify)
61、线程其他方法
62、进程
63、 上下文
64、寄存器
65、程序计数器
66、 PCB-“切换桢"
JVM面试题
1. java中会存在内存泄漏吗,请简单描述。
2、64位JVM中,int的长度是多数?
3、Serial 与Parallel GC之间的不同之处?
4、32位和64位的JVM,int 类型变量的长度是多数?
5、Java 中WeakReference与SoftReference的区别?
6. JVM选项-XX:+UseCompressedOops有什么作用?为什么要使用
7、怎样通过Java程序来判断JVM是32位还是64位?
8. 32位JVM和64位JVM的最大堆内存分别是多少?
9. JRE、 JDK. JVM及JIT之间有什么不同?
10.解释Java堆空间及GC?
11. JVM内存区域
12、程序计数器(线程私有)
13.虚拟机栈(线程私有)
14、本地方法区(线程私有)
15、你能保证GC执行吗?
16、怎么获取Java程序使用的内存?堆使用的百分比?
17、Java中堆和栈有什么区别?
18、 描述一下JVM加载class文件的原理机制
19、GC是什么?为什么要有GC?
20、堆(Heap-线程共享) -运行时数据区
21.方法区/永久代(线程共享)
22、JVM运行时内存
23、新生代
24、老年代
25、永久代
26、JAVA8 与元数据
27.引用计数法
28、可达性分析
29.标记清除算法( Mark- Sweep)
30.复制算法(copying)
31、标记整理算法(Mark-Compact)
32、分代收集算法
33、新生代与复制算法
34、老年代与标记复制算法
35、JAVA 强引用
36、 JAVA软引用
37、JAVA弱引用
38、 JAVA虚引用
39.分代收集算法
40、在新生代-复制算法
41、在老年代-标记整理算法
42、分区收集算法
43、GC垃圾收集器
44. Serial垃圾收集器(单线程、 复制算法)
45、ParNew 垃圾收集器(Serial+ 多线程)
46. Parallel Scavenge收集器(多线程复制算法、高效)
57、Serial Old收集器(单线程标记整理算法)
58、Parallel Old收集器(多线程标记整理算法)
59. CMS收集器(多线程标记清除算法)
60、G1收集器
61、JVM类加载机制
62、类加载器
63、双亲委派
64、OSGI (动态模型系统)
65、动态改变构造
66、模块化编程与热插拔
67、JVM内存模型
68、栈
69.本地方法栈
70、程序计数器
71、堆
72、 方法区
73、分代回收
74、堆和栈的区别
75.什么时候会触发FulIGC
76、什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?
77、对象分配规则
78、描述一下JVM加载class文件的原理机制?
79. Java对象创建过程
80、简述Java的对象结构
81、如何判断对象可以被回收
82、JVM的永久代中会发生垃圾回收么
83、垃圾收集算法
84.调优命令有哪些?
85、调优工具
86、Minor GC与Full GC分别在什么时候发生?
87、你知道哪些JVM性能调优
MySQL面试题
31、CHAR和VARCHAR的区别?
32、主键和候选键有什么区别?
33、myisamchk 是用来做什么的?
34、MyISAM Static 和MyISAM Dynamic有什么区别?
35、如果一个表有一列定义为TIMESTAMP,将发生什么?
36、你怎么看到为表格定义的所有索引? '
37、LIKE 声明中的%和是什么意思?
38、列对比运算符是什么?
39、BLOB 和TEXT有什么区别?
40. MySQL fetch array 和MySQL _fetch. object 的区别是什么?
41、MyISAM 表格将在哪里存储,并且还提供其存储格式?
42、MySQL 如何优化DISTINCT?
43、如何显示前50行?
44、可以使用多少列创建索引?
45、NOW ()和CURRENT DATE ()有什么区别?
46.什么是非标准字符串类型?
47.什么是通用SQL函数?
48、MySQL 支持事务吗?
49、MySQL 里记录货币用什么字段类型好
50、MySQL 有关权限的表都有哪几个?
51、列的字符串类型可以是什么?
52、MySQL 数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?
53、锁的优化策略
54、索引的底层实现原理和优化
55、什么情况下设置了索引但无法使用
56. 实践中如何优化MySQL
57、优化数据库的方法
58、简单描述MySQL中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响(从读写两方面)
59、数据库中的事务是什么?
60、SQL 注入漏洞产生的原因?如何防止?
61.为表中得字段选择合适得数据类型
62、存储时期
63.对于关系型数据库而言,索引是相当重要的概念,请回答有关索引的几个问题
64、解释MySQL外连接、内连接与自连接的区别
65、Myql 中的事务回滚机制概述
66. SQL语言包括哪几部分?每部分都有哪些操作关键
67、完整性约束包括哪些?
68. 什么是锁?
69、什么叫视图?游标是什么?
70、什么是存储过程?用什么来调用?
71、如何通俗地理解三三个范式?
72、什么是基本表?什么是视图?
73、试述视图的优点?
74、NULL 是什么意思
75、 主键、外键和索引的区别?
76. 你可以用什么来确保表格里的字段只接受特定范围里的值?
77. 说说对SQL语句优化有哪些方法? (选择几条)
78、什么是乐观锁
79.什么是悲观锁
80、 什么是时间戳
81、什么是行级锁
82、什么是表级锁
83、什么是页级锁
Redis面试题
1.什么是Redis?
2、Redis 与其他key-value存储有什么不同?
3、Redis 的数据类型?
4、使用Redis有哪些好处?
5、Redis 相比Memcached有哪些优势?
6、Memcache 与Redis的区别都有哪些?
7、Redis 是单进程单线程的?
8、一个字符串类型的智能存储最大容量是多少?
9、Redis持久化机制
10、 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题
11、热点数据和冷数据是什么
12、单线程的redis为什么这么快
13、redis的数据类型,以及每种数据类型的使用场景
14、redis的过期策略以及内存淘汰机制
15、Redis 常见性能问题和解决方案?
16.为什Redis的操作是原子性的,怎么保证原子性的?
17、Redis事务
18. Redis的持久化机制是什么?各自的优缺点?
19. Redis 常见性能问题和解决方案:
20、redis 过期键的删除策略?
21. Redis 的回收策略(淘汰策略) ?
22.为什么edis需要把所有数据放到内存中?
23、Redis 的同步机制了解么?
24. Ppeline 有什么好处,为什么要用pieline?
25.是否使用过Redis集群,集群的原理是什么?
26. Redis 集群方案什么情况下会导致整个集群不可用?
27. Redis 支持的lava客户端都有哪些?官方推荐用哪个?
28. Jedis 与Redisson对比有什么优缺点?
29. Redis如何设置密码及验证密码?
30.说说Redis哈希槽的概念?
SpringBoot面试题
34、什么是AOP?
35. 什么是Apache Kafka?
36、我们如何监视所有Spring Boot微服务?
37. Spring Boot的配置文件有哪几种格式?它们有什么区别?
38、开启Spring Boot特性有哪几种方式?
39、 Spring Boot的目录结构是怎样的?
40、 运行Spring Boot有哪几种方式?
41. Spring Boot自动配置原理是什么?
42. 如何在Spring Boot启动的时候运行一些特定的代码?
43、 Spring Boot有哪几种读取配置的方式?
44. Spring Boot支持哪些日志框架?推荐和默认的日志框架是哪个?
45、 Spring Boot如何定义多套不同环境配置?
46. Spring Boot可以兼容老Spring项目吗,如何做?
47. 保护Spring Boot应用有哪些方法?
48、 Spring Boot 2.X有什么新特性?与1.X有什么区别?
49、如何重新加载Spring Boot上的更改,而无需重新启动服务器?
50、springboot集 成mybatis的过程
51、Spring Boot. Spring MVC和Spring有什么区别?
52、什么是Spring Boot Stater ?
53、Spring Boot还提供了其它的哪些Starter Project Options?
54、Spring 是如何快速创建产品就绪应用程序的?
55、创建一个Spring Boot Project的最简单的方法是什么?
56、Spring Iitializr 是创建Spring Boot Projects的唯一方法吗?
57、如何使用SpringBoot自动重装我的应用程序?
58、什么 是嵌入式服务器?我们为什么要使用嵌入式服务器呢?
59、如何在Spring Boot中添加通用的JS代码?
60、什么是Spring Date?
61、什么是Spring Data REST?
62、path="users", collectionResourceRel="users"如何与Spring Data Rest一起使用?
63、当Spring Boot应用程序作为Java应用程序运行时,后台会发生什么?
64、我们能否在spring-boot-starter-web中用jetty代替tomcat?
65、如何使用Spring Boot生成一个WAR文件?
66、如何使用Spring Boot部署到不同的服务器?
67、RequestMapping 和GetMapping的不同之处在哪里?
68、为什么我们不建议在实际的应用程序中使用Spring Data Rest?
69.在Spring Initializer中,如何改变-个项目的包名字?
70、可以配置application.propertierde的完整的属性列表在哪里可以找到?
71、JPA 和Hibernate有哪些区别?
72、使用Spring Boot启动连接到内存数据库H2的JPA应用程序需要哪些依赖项?
73、如何不通过任何配置来选择Hibernate作为JPA的默认实现?
74、指定的数据库连接信息在哪里?它是如何知道自动连接至H2的?
75、我们如何连接一个像MSSQL或者orcale 一样的外部数据库?
76、Spring Boot配置的默认H2数据库的名字是上面?为什么默认的
数据库名字是testdb?
77.如果H2不在类路径里面,会出现上面情况?
78、你能否举一个以ReadOnly为事务管理的例子?
79.发布Spring Boot用户应用程序自定义配置的最好方法是什么?
80、配置文件的需求是什么?
81、如何使用配置文件通过Spring Boot配置特定环境的配置?
82、我们如何使用Maven设置Spring Boot应用程序?
83、如何禁用特定的自动配置?
84、Spring boot支持哪些外部配置?
85、如何对Spring Boot应用进行测试?
86. Spring Boot Actuator有什么用?
87、SpringBoot 中静态首页默认位置可以放在哪里?
89、SpringBoot 中静态资源直接映射的优先级是怎样的?
90、继承WebMvcConfigurerAdapter抽象类,常用的重写方法列举几个?
91. @SpringBootApplication 引入了哪3个重要的注解?
92、@SpringBootApplication 注解中的属性相当于哪几个注解?
微服务面试题
写在最后
相信每份努力都不会被辜负,每次付出都会有回报的,可能会晚一点,但是别急,一定不会缺席,希望大家都可以成功面试到自己心仪的公司,成功拿到offer,祝大家前程似锦~