Java教程

Java高级:2021Java面试题知识点总结

本文主要是介绍Java高级:2021Java面试题知识点总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
# Java基础 1.JAVA 中的几种数据类型是什么,各自占用多少字节。 2.String 类能被继承吗,为什么。 3\. 两个对象的 hashCode() 相同,则 equals() 也一定为 true,对吗? 4\. String 属于基础的数据类型吗? 5.Java 中操作字符串都有哪些类?它们之间有什么区别? 6.Java 中 IO 流分为几种? 7.BIO、NIO、AIO 有什么区别? 8.用过哪些 Map 类,都有什么区别,HashMap 时线程安全的吗,并发下使用的 Map 是什么,他们的内部原理分别是什么,比如存储方法,hashcode,扩容,默认容量等。 9\. 如何将字符串反转? 10.抽象类必须要有抽象方法吗? 11.普通类和抽象类有哪些区别? 12.抽象类能使用 final 修饰吗? 13.ArrayList 和 LinkedList 有什么区别? 14.ConcurrentHashMap的数据结构(必考) 15.volatile作用(必考) 16.Atomic类如何保证原子性(CAS操作)(必考) 17.为什么要使用线程池(必考) ![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210704/1625398360263214.jpg) # Redis * Redis的应用场景 * Redis支持的数据类型(必考) * zset跳表的数据结构(必考) * Redis的数据过期策略(必考) * Redis的LRU过期策略的具体实现 * 如何解决Redis缓存雪崩,缓存穿透问题 * Redis的持久化机制(必考) * Redis为什么是单线程的? * 什么是缓存穿透?怎么解决? * Redis持久化有几种方式? * Redis为什么这么快?(必考) * Redis怎么实现分布式锁? * Redis如何做内存优化? * Redis淘汰策略有哪些? * Redis常见的性能问题有哪些?该如何解决? * Redis的使用要注意什么? ![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210704/1625398360792892.jpg) # ZooKeeper * CAP定理 * ZAB协议 * leader选举算法和流程 * zookeeper 是什么? * zookeeper 有几种部署模式? * zookeeper 怎么保证主从节点的状态同步? ![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210704/1625398360604159.jpg) # Mysql * 事务的基本要素* 事务隔离级别(必考) * 如何解决事务的并发问题(脏读,幻读)(必考) * MVCC多版本并发控制(必考) * binlog,redolog,undolog都是什么,起什么作用 * InnoDB的行锁/表锁* myisam和innodb的区别,什么时候选择myisam * 为什么选择B+树作为索引结构(必考) * 索引B+树的叶子节点都可以存哪些东西(必考) * 查询在什么时候不走(预期中的)索引(必考) * sql如何优化* explain是如何解析sql的* order by原理 ![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210704/1625398360832536.jpg) # JVM * 运行时数据区域(内存模型)(必考) * 垃圾回收机制(必考) * 垃圾回收算法(必考) * Minor GC和Full GC触发条件 * GC中Stop the world(STW) * 各垃圾回收器的特点及区别 * 双亲委派模型 * JDBC和双亲委派模型关系 * JVM 中一次完整的 GC 流程是什么样子的,对象如何晋升到老年代,说说你知道的几种主要的 JVM 参数 ![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210704/1625398360101007.jpg) # Spring * Spring的IOC/AOP的实现(必考) * 动态代理的实现方式(必考) * Spring如何解决循环依赖(三级缓存)(必考) * Spring的后置处理器 * Spring的@Transactional如何实现的(必考) * Spring的事务传播级别* BeanFactory和ApplicationContext的联系和区别 ![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210704/1625398360392152.jpg) # 其他 * 高并发系统的限流如何实现 * 高并发秒杀系统的设计 * 负载均衡如何设计 # 操作系统篇 * 进程和线程的区别 * 进程同步的几种方式 * 线程间同步的方式 * 什么是缓冲区溢出。有什么危害,其原因是什么 * 进程中有哪几种状态 * 分页和分段有什么区别 ![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210704/1625398361452481.jpg) # 多线程篇 * 多线程的几种实现方式,什么是线程安全 * volatile 的原理,作用,能代替锁吗? * sleep 和 wait 的区别 * sleep(0)的意义 * Lock 和 Synchronized 的区别 * synchronized 的原理是什么,一般用在什么地方(比如加载静态方法和非静态方法的区别) ![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210704/1625398361288368.jpg) # ## 结局:总结+分享 看完美团、字节、腾讯这三家的一二三面试问题,是不是感觉问的特别多,可能咱们真的又得开启面试造火箭、工作拧螺丝的模式去准备下一次的面试了。 开篇有提及我可是足足背下了**Java互联网工程师面试1000题**,多少还是有点用的呢,换汤不换药,不管面试官怎么问你,抓住本质即可!能读到此处的都是真爱,所以福利也为你准备,这份1000题免费送你!**[点击这里免费领取](https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB)** * **Java互联网工程师面试1000题** ![image.png](http://www.www.zyiz.net/i/li/?n=2&i=images/20210704/1625398361235014.jpg) 而且从上面三家来看,算法与数据结构是必备不可少的呀,因此我建议大家可以去刷刷这本左程云大佬著作的 《程序员代码面试指南 IT名企算法与数据结构题目最优解》,里面近200道真实出现过的经典代码面试题。 * **程序员代码面试指南--IT名企算法与数据结构题目最优解** ![image.png](http://www.www.zyiz.net/i/li/?n=2&i=images/20210704/1625398362440525.jpg) * 其余像设计模式,建议可以看看下面这4份PDF(已经整理) ![image.png](http://www.www.zyiz.net/i/li/?n=2&i=images/20210704/1625398362990275.jpg) * 更多的Java面试学习笔记如下,关于面试这一块,我额外细分出Java基础-中级-高级开发的面试+解析,以及调优笔记等等等。。。 ![image.png](http://www.www.zyiz.net/i/li/?n=2&i=images/20210704/1625398362476216.jpg) 以上所提及的全部Java面试学习的PDF及笔记,如若皆是你所需要的,那么都可发送给你!
这篇关于Java高级:2021Java面试题知识点总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!