欢迎过来接受打击! 不要留言!!安静的享受

这是面试完以后的

面经

良心推荐!!!你一定要看看!!你一定要看看!!你一定要看看!!!如果可以 一定要收藏!!!
别等工作面试的时候被问到了!!才过来后悔!!!!

JAVA基础:

  1. Hashmap -> 原理, 1.7和1.8的区别, 链表成环具体, 扩容机制
  2. ConcurentHashmap -> 原理, JDK中哪些体现了CAS思想
  3. NIO
  4. 线程池的拒绝策略
  5. submit和execute的区别
  6. Future的作用
  7. 可重入锁的原理
  8. java中的可重入读写锁(ReentrantReadWriteLock)
  9. jvm调优相关
  10. jdk1.8的新特性
  11. .1 == 0.3? -> 误差值选择的理论根据, java中是否提供了其他处理小数运算的方法
  12. java内存结构分为哪些部分?分别有什么作用?
  13. JVM栈可能存在的问题?本地方法栈的底层是如何实现的?举例说明
  14. Java调用数据库知道么
  15. redis用途 -> 分布式锁了解吗
  16. 你自己写代码的时候怎么处理异常,继承自Exception还是RuntimeException,为啥你不去继承Runtime的?

数据库:

  1. 事务隔离级别有哪些 -> 可重复读和幻读的区别

  2. 数据库锁了解哪些 -> 意向锁, Next-Key Locks

  3. 网络7层模型 -> TCP在哪一层, TCP原理, 实现过demo吗

  4. HTTPS原理 -> CA机制, 对称加密和非对称加密的区别, 效率区别?

  5. ThreadLocal用途 -> ThreadLocal原理

  6. 四种引用 -> 软引用 -> 可以用在哪里

  7. 抽象类和interface的区别

  8. JVM相关工具 -> 如何定位JAVA死锁

  9. RR能解决什么?mysql的RR如何解决幻读?

  10. 具体描述MVCC,mysql多版本数据的版本号的生成策略和过程是什么样的?

  11. Kafka的精准一次性中的版本号策略?

  12. 数据库查询性能优化

  13. 你了解的锁

  14. 在数据库层面怎么保证对某个库存数据的加减安全

  15. 数据库层面的乐观锁、悲观锁

题集合:

  1. 伊甸园区装不下新对象会怎么样?
  2. minorGC和fullGC分别在什么情况下会产生?
  3. 分布式事务知道哪些?具体描述一下原理
  4. RR能解决什么?mysql的RR如何解决幻读?
  5. 具体描述MVCC,mysql多版本数据的版本号的生成策略和过程是什么样的?
  6. Kafka的精准一次性中的版本号策略?
  7. next-key原理是什么?
  8. 如何保证mysql在写的过程中,不影响高并发读?
  9. 你能想到一种写不影响高并发读的实现方式吗?
  10. CopyOnWriteArrayList的原理?
  11. 你能想到一个分布式版本号的生成方案吗?
  12. 分布式id生成策略有哪些?UUID、mysql生成、redis生成、雪花算法、
  13. leaf如何改进mysql生成策略(leaf-segment)和雪花算法(leaf-snowflake)
  14. Kafka和rabbit的区别?为什么选型Kafka?
  15. CAS的底层实现? 能更改线程的栈大小吗?如何更改?具体用的什么指令?
  16. 堆的空间如何设置?jconcole了解吗?知道哪些作用?
  17. jmap用来干什么? 递归的优缺点? 手写非递归后序遍历
  18. CMS和G1的原理?CMS和G1的区别?G1在哪些方面优于CMS?
  19. 讲述垃圾回收算法 新生代和老年代的具体描述
  20. 缓存一致性如何保证的?先删缓存和先更新数据库在高并发下各存在什么问题?如何解决?
  21. 描述缓存穿透,缓存穿透是如何解决的?
  22. 布隆过滤器的实现原理和优缺点?
  23. 某个id的数据访问频率极高怎么办?如何解决的缓存击穿问题?
  24. 降级是如何做的? 详述熔断机制
  25. cookie和session的理解
  26. cookie可以放什么,session生命周期
  27. MySQL查询优化怎么做的?
  28. spring的IOC理解,实现?
  29. 反射自己用过吗?
  30. static关键字,static final呢?
  31. 自己还做过哪些java的比较有挑战的项目?
  32. 分布式锁如何实现?
  33. 如何防止超卖并且减轻数据库的压力
  34. 算法题:两个有序数组,归并得到一个有序对的数组,满足两者的绝对值小于等于10.
  35. 什么是spring?
  36. 为什么要用spring?spring如何实现ioc,有哪些注解?如何实现注解?
  37. 什么是mybatis什么是orm?
  38. 什么是索引?有哪些索引?为啥用索引?
  39. 你项目一共几张表?最大多大?有哪些信息?上线没?
  40. requestmapping注解干嘛的?还有吗?
  41. responsebody注解干嘛的?写个题,合并两个链表,有序吗?不管有没有序,算了就算有序吧。。
  42. va并发包里有哪些工具类,
  43. 详细介绍下 ConcurrentHashMap、HashMap 红黑树
  44. Synchronized和ReentrantLock对比 Synchronized底层实现原理、锁升级过程 可重入锁
  45. Mysql常用引擎对比 mysql索引,explain,索引覆盖 Mysql优化 Innodb数据结构 聚簇索引和非聚簇索引,对比
  46. 主从分布延迟怎么办 Redis数据类型有哪些,
  47. 介绍下 Redis底层数据结构和内存模型 bitmap介绍下 Redis容灾怎么做
  48. 一致性hash UDP和TCP的区别 UDP和TCP报文头 TCP三次握手、四次挥手、客户端和服务器状态、容灾怎么做
  49. Http报文头,与HTTPS对比,HTTPS加密过程 K8S架构,
  50. docker应用场景 如何判断链表有环,步数怎么设置
  51. Linux内存模型 10G数据排序,2G内存 常用数据结构,应用场景
  52. 二叉树遍历方式:前序遍历、中序遍历、后序遍历 二叉树遍历写法:递归、栈、还有什么?
  53. 哈夫曼编码 优先队列底层实现?-堆
  54. 二叉排序树、二叉平衡树 怎么从一个数组中找出出现次数大于一半的那个数字? 判断链表中有环?
  55. 进程与线程的区别
  56. 进程调度算法
  57. 进程并发和并行?
  58. 死锁必要条件 死锁怎么解决 内存怎么分配?

1.数据库查询性能优化
2.你了解的锁
3.在数据库层面怎么保证对某个库存数据的加减安全
4.数据库层面的乐观锁、悲观锁
5.平时遇到的复杂的java代码
6.在项目中检查 性能 方面

1.杨辉三角(递归和非递归实现) 2.判断两个单链表是否有交叉,如果有找出交叉节点 3.用栈实现队列,用队列实现栈 4.判断链表是否有环(快慢指针)

你所了解的数据库搜索引擎?InnoDB,MyISAM
InnoDB,MyISAM索引的实现,有什么区别?MyISAM是非聚集索引;InoDB聚集索引
B+树索引
说说你知道的集合 Collection,Map
说说你知道的同步方式 Sychronized,ReetrantLock
JDBC
连接池的作用
SpringBoot
Spring
项目中遇到的难点,怎么解决的


2.==和equals的区别
3.类加载的过程,详细过程?初始化都做了啥
4.一个生成随机数的函数fun1()可以生成0,1,2;要求完成一个函数fun2()能够等概率生成0,1,2,3,4 ;怎么做?
5. 一个链表奇数位升序,偶数位降序,如何对其进行整体排序


2.项目开发过程中遇到的难点,数据标注平台开发 中的逻辑,怎么发现有问题的,标注批次计数?
3.最近怎么学的 并发,博客,怎么保证博客写的是对的,没有看书吗
4.并发包下学了什么
sychronized底层原理? monitor对象头里面是什么?
锁升级?
reetrantlock底层原理?AQS的等待队列 线程安全吗?
5.volatile,CAS
6.为什么要需要 并发安全处理
7.java集合
8. 事务的特性,解释
9.事务隔离级别
10.存储引擎?Inodb,myisam区别? inodb索引,myisam索引?
11.为什么主键要自增,叶子节点key为什么有序?
12.最左前缀匹配原则?
13.算法题,打印出一个字符串中所有的回文子串


一.了解JVM or 中间件? JVM?平时怎么学习?如何帮助自己记忆?看看我博客?
二.JVM内存结构
程序计数器工作原理?作用?不会
JVM调优经历dump之类的操作?无
垃圾收集器CMS工作原理? Concurrent体现在哪?用户停顿?垃圾收集为什么要开启多个线程?
三.数据库
知道哪些锁?事务隔离级别? 可串行化怎么实现的?
索引结构?为什么使用B+索引?
查询性能优化?Explain里都能获取什么信息
四.JAVA
concurrentHashMap并发原理?扩容机制?
线程池?知道哪些具体的线程池?如果自己实现一个线程池都要考虑哪些参数?拒绝策略有哪些?
sychronized 锁升级?
编程:CAS原理?用CAS实现 两个线程给同一个变量赋值?
AQS等待队列为什么设计成双向链表?
fusk/join?
Arraylist和Linkedlist区别、


线程同步的方式
集合 ?concurrentHashMap()同步机制?老版本
Spring和Spring boot关系 application.yml appilicationContext.xml
Spring AOP
动态代理实现原理
Spring 事务隔离级别,传播行为
ThreadLocal
Spring bean是不是线程安全的?
NIO
Filter()加载流程 Servlet 加载流程
Mysql 语句 最复杂的
查询慢的解决方案
水平分表,垂直分表
读写分离 主从复制
锁 为什么要有这个锁 业务中怎么用锁的
隔离级别
分布式概念
统计每分钟消息量怎么做?


1.连接池的参数都什么意思
2.开启三个线程 共同按顺序打印1~1000的数字
3.要你来实现一个线程池你怎么实现
4.CAS的原理
5.数据库事务隔离级别
6.项目中遇到的难点
7.Spring AOP的原理
8.B+树索引,索引什么情况下使用,什么情况下不适用


hashmap源码
set的源码
还有集合之间的关系,有什么共同父类啥的(问的很细)

jvm内存模型
jvm垃圾回收策略
jvm垃圾回收器
full gc发生地方
对象的分配策略
String类的创建分配
内存泄露相关
线程池核心参数
执行流程
拒绝策略
callable和Runnable区别
volatile作用
synchronized和lock的区别
设计模式
mysql存储引擎
事务的acid
mysql的事务隔离界别–nextkey locking 间隙锁 串行化等有关的
mysql的聚集索引和非聚集索引
非聚集索引一定会回表查吗?------索引覆盖
mysql的数据存放和聚集索引
聚合操作
${}和#{}
进程和线程区别
状态转换
IO模型
redis的原理
持久化
分布式锁(具体到命令)
数据类型
过期策略
淘汰策略
spring ioc aop
bean的生命周期

数据库聚合操作还有就是纠正String对象创建时的问题

mysql事务实现
spring事务实现
aop
设计模式
海量30亿电话号码找重复
追问最坏情况 只有第一条和最后一条重复
…记不起来了
两道算法题:安全的单例模式、int数字转中文

2.SharePreference说一下?
3.SharePreference内部怎么保证数据读取速度?
4.Http和Https的区别
5.Https怎么实现安全的加密传输?
6.Tcp三次握手和四次挥手的过程
7.单例模式
8.Android布局设计的场景题

3.跨平台开发的方法
4.Flutter和ReactNative的区别
5.安卓实现动画的方式
6.在实习的时候有什么收获
7.Activity的启动模式
8.Activity的前台生命周期
9.你觉得自己在Android开发上的优势
10.ANR的原因
11.IPC的方式
12.ContentProvider底层怎么实现数据共享

3.GPU Render显示的柱状图的含义
4.Lottie动画的优势
5.算法题(两个线程依次打印奇偶数,说思路)
6.StringBuilder和StringBuffer的区别
你在项目中遇到的问题,怎么解决的?
、实现一个类三个方法,栈溢出、堆溢出、永久代溢出(假设用的永久代);
你理解的设计模式?你知道的设计模式,他们的使用场景;

2、list和set的区别
3、list在遍历删除的时候出现的问题
4、set怎么实现不重复元素
5、hashmap数据结构
6、扩容怎么实现
7、年轻代的划分,为什么要这么划分
8、运行时数据区
9、类加载
10、为什么使用双亲委派
11、如何保证一个类只能被加载一次

tcp,http
12、tcp和udp的区别
13、tcp如何实现可靠性
14、怎么实现拥塞控制
15、https的过程
16、http的状态码
17、cookie、session

数据库
18、mysql的索引存储结构(除了B+树还有什么吗?)
19、外连接与内连接
20、有联合索引(a,b,c),查询(c,a)时能够走联合索引吗
21、四大隔离级别和出现的问题
22、RR级别下如何避免幻读

多线程
23、synchronized与lock的区别
24、cas可能出现的问题
25、线程池创建时的参数
26、这些参数怎么配合使用
27、如何使得多线程有相同的执行机会
28、多线程环境下如何使得一个线程有更长的执行时间

1.String内容存放在哪儿[运行时常量池]
2.然后讲了一下jvm的内存结构,堆、栈、程序计数器、方法区、网赚博客等等,每块区域的作用之类的
3.jvm的回收机制是什么[感觉问得很宽泛,只好从分代回收算法说起了,从GC ROOTS的引用链机制到新生代的小空间复制算法再到老生代的标记清除算法,最后就是新生代和老生代之间的关系以及跃迁等]

4.再讲讲jvm的类加载机制吧
5.反射机制是如何,利用类加载机制的呢?
6.懂哪些设计模式[单例,建造者,观察者,模板方法模式,迭代器模式]
7.你在项目中用到过观察者模式吗?怎么用的?[做统一配置组件的时候使用到了zookeeper的发布订阅,创建了监听链表,完成应用系统的注册和同步,然后边写代码边讲细节。]
你写个单例模式吧,把你认为效率最高的单例实现写出来。[这当然是通过jvm的内部类机制实现单例了,又快又安全]

然后说再写一个双检查的懒汉单例模式吧
为什么要用volatile关键字
答:[在高并发时会出现并发模式异常,volatile可以防止指令重排,创建对象操作并不是一个原子操作,分为三个步骤]
能不能讲讲线程的内存模型
谈谈你对cas的理解。

写一个二叉树的深度遍历[递归搞定]
memcache的内存管理机制[slab分块管理,最终以chunk分配,维护了一个LRU的双向列表等等]
问了问zookeeper的一些知识

抽象类和接口区别
synchronized关键字怎么实现的,我当时只答到了字节码层面。。。
hashmap线程不安全,那用什么呢
TCP三次握手的过程,SYN攻击是啥,业界最新的解决方法?我只知道简单的,说了俩
一个登录controller里面有两个实例变量存储用户的用户名和密码,如果多个用户访问会有啥问题?我:可能对不上了吧。面试官:请回答专业术语。我:。。。脑抽,线程安全问题这四个字蹦不出来。面试官:温柔回答,怎么解决?我:再次脑抽,,,后来面完了想了想threadlocal是不是可行?然后脑补可能又会接着问原理?内存泄漏?
有什么优点?我说了说自己的故事
emmm,只记得这些了,面试完感觉人没了,凉

面试官:问些数据结构吧,跳表知道吗?我:不知道。面试官:红黑树知道吗?我:介绍了红黑树是啥,性质。面试官:为什么这么设计呢,红节点和黑节点的含义?我:。。。
一个网络爬虫爬取网页,但是会出现链接A–链接B–链接C–链接A这样的循环,怎么办?我:可以做个记录,如果访问过就不访问,hashmap可以解决。面试官:如果链接很多呢?用hashmap是不是不太行了。我:那可以用布隆过滤器吧。面试官:嗯,布隆过滤器是个不错的想法,介绍一下,优缺点
动态规划的思想
一道简单的贪心,原谅我,没写出来,是个菜鸡
类加载机制,双亲委派,打破双亲委派
synchronized关键字怎么实现,锁升级过程,偏向锁,轻量级锁区别。

平衡树介绍,为什么要有
所有排序算法原理
数据库范式。我:忘记了耶,最近也没看数据库,最近在看多线程和并发的东西。面试官:那,线程创建方式?(#再次查询面试官内心烦躁指数)
类加载机制和垃圾回收二选一介绍一下
自己的优缺点

重写,重载
SQL编写:给一个有多个人的名字的表,怎么统计出现了几次重名?(group by,having)
static final关键字用法:static能否修饰类答错了,面试官说修饰了String类
内核态给用户态开放了哪些接口?内核态都干什么?
单例bean生命周期是和Spring容器一样的!

其他一些还记得的问题:
介绍项目
HashMap,concurrentHashMap
线程池参数,四种工作队列
最左索引匹配
是否了解Java IO?(简历上写了)
了解有状态无状态吗?(问题拓展)
使用单例模式的优缺点?(优点:节省空间,缺点:线程不安全)
何时会使用多线程?并发效率和CPU中的什么有关系?并发优点缺点?
面向对象三大特性,重点问了多态。
二分算法的前提(排序)
平时编程中遇见的问题怎么解决?(面试官提示合作能力)

我觉得答题思路本次发挥较好的地方有:
NIO->select,poll,epoll
volatile与JMM结合
synichronized->OS

2020年强烈推荐 ,小友必须要看面经的面试题!!相关推荐

  1. 笔记本电脑锁_联想都不敢想之2020年笔记本电脑推荐

    ‍小黑在标题跟大家开个小玩笑.也在某个有才的网友评论中,对联想的称谓"连想都不敢想".体现了不少朋友针对联想的态度,那就是确实不是那么看得上.不过呢,话说回来了.联想的Thinkp ...

  2. 计算机专业笔记本配置2020,2020大学生笔记本电脑推荐

    2020大学生笔记本电脑推荐2020-09-28 14:46:51文/徐克达 很多大学生想购买电脑时不知从何下手,为此,小编整理的一些笔记本电脑的内容推荐给大家,供参考! 2020大学生笔记本电脑推荐 ...

  3. 极力推荐3个外出旅游小程序,不看别后悔!

    渐渐地小程序已经深入人心,这主要是由于小程序比较方便快捷,不用下载即可使用,这就为大家节约了不少空间,减少了手机内存的使用.外出.旅游的小伙伴们看这里,极力推荐3个外出旅游小程序,不看别后悔! 1.好 ...

  4. python人工智能入门书籍推荐-小编就给大家推荐几本python机器学习入门书!

    很多人对于机器学习很感兴趣,所以想要通过一些书籍来学习研究,那么有哪些机器学习入门书籍推荐呢?本文小编就给大家推荐几本python机器学习入门书,大家可以去书店具体购买. 有哪些机器学习入门书籍推荐呢 ...

  5. 小友VUI SDK 初探

    小友VUI SDK 初探 一.什么是VUI 二.GUI的局限 三.VUI的典型应用场景 四.小友VUI SDK 4.1 小友VUI SDK解决方案 4.2 小友VUI SDK能力形态 五.示例 5.1 ...

  6. 菜鸡教程(1):简易游戏每周推荐小程序制作

    写在前面:   1. 阅读本文最好具备一定html+css+js基础,并已成功注册微信小程序,成功下载了开发工具   2.菜鸡菜笔,如有不正,还请大佬们不吝惜赐教 接下来开始小程序的制作   1.首先 ...

  7. 毕设推荐-----------小网站

    写作专用--------毕设推荐-----------小网站 写作 小论文神器:https://essay.1ts.fun/ 降重 秘塔写作猫:https://xiezuocat.com/#/ 查重 ...

  8. 计算机教室如何防火,2020校园防火安全小知识_消防安全小知识顺口溜

    消防安全知识必须人人懂,火灾隐患无处不在,稍不注意就容易引发大祸.所以,我们要从身边做起,从自己做起.以下是小编整理了关于2020校园防火安全小知识_消防安全小知识顺口溜,希望你喜欢. 校园防火安全小 ...

  9. idea pom cpu占有率_组装电脑哪个CPU好?如何选择CPU?2020年CPU推荐及分析。

    处理器(CPU) 处理器,就是我们一般最常说的CPU,是英文"Central Processing Unit"的首字母缩写,中文意思就是"中央处理器". 它在电 ...

最新文章

  1. ylb:SQL 表的高级查询-多表连接和子查询
  2. php获取扫码枪的内容,一起看看js获取扫码枪输入数据的方法_WEB前端开发
  3. 85.一致性哈希算法:hash模块
  4. python3序列化_python3 json序列化问题
  5. 关于ajax post请求跨域问题的解决心得
  6. python图像增强_使用Python进行图像增强
  7. .net 4.0新特性-自旋锁(SpinLock)
  8. 高T技术大牛的百度十年:白天求生存,晚上求发展
  9. js margin作用到父元素_子元素的 margin-top 传递给了父元素
  10. 路由器玩机---老毛子设置AP与主路由设置
  11. java技术英文名词读音_Java开发,Java development,音标,读音,翻译,英文例句,英语词典...
  12. 使用OpenCV进行高动态范围(HDR)成像(C ++ / Python)
  13. 提神醒脑 MVP、MVVM 关系精讲
  14. 如何解决安装或者卸载时 临时文件夹已满或不能访问
  15. SQP 序列二次规划法
  16. 【练习八 结构体(强化)编程题4. 看电影】
  17. express的api接口暴露
  18. 关于冈萨雷斯的《数字图像处理》的坑与资源!
  19. 【转】一个网站都需要哪些备案
  20. 【AGC】禁用华为签名问题

热门文章

  1. VScode Extension activation failed的解决方法
  2. javax.activation:activation:jar:1.0.2
  3. python中英文字频率_python实现统计文本中单词出现的频率详解
  4. 论坛各种问题总结--(随时更新)
  5. 大型网站系统架构的演化
  6. 3dsMax2022插件开发环境的搭建
  7. java锁的种类及研究
  8. PLC模拟量采集在工业自动化控制中的应用
  9. 工信部:禁止外资参与网络出版 外国游戏国内要玩完
  10. Egg开发项目实践纪实