当前位置: 首页 > 后端技术 > Java

【Java后端开发贴】从20k跳槽到35k公司,说说你的复习之路

时间:2023-04-01 18:46:36 Java

跳槽是每个人在职业生涯中必经的过程,无论是搜索这篇文章还是一不小心希望你浏览的这篇文章没有浪费你停留在这里的时间,它能在接下来或以后的笔试面试中给你带来一些帮助。2022年可能是近年来程序员最艰难的一年,现在疫情逐渐减少,WINTERISCOMING。但如果你自己不真正去尝试,你永远不知道市场会怎样。这次找工作后,感觉市场没有那么可怕,也收到了好几家大公司的offer。这里总结一下,给自己看,希望对有需要的码友有所帮助。小编为大家整理了一份新的面试复习资料,希望对大家有所帮助~包括:基础、集合框架、JVM、Java多线程、MySQL、Redis、Spring、消息队列、Dubbo、算法、设计模式、数据库、网络协议、Linux系统、计算机原理等相关知识点……还有BATJ的真题面试由于篇幅限制,太长读起来会很乏味,也会影响阅读体验。与其看,不如拿到文档慢慢参考,后面会以图片的形式展示。获取原文件及更多资源,欢迎点赞转发分享,添加VX:javataozi888备注学习免费领取!!!本文档提供了详细的目录。大家可以根据自己的实际需要选择自己的弱项知识。阅读Java基础知识。重载和重写的区别。String、StringBuffer和StringBuilder有什么区别?为什么String是不可变的?自动装箱和拆箱Java中异常处理接口和抽象类有什么区别Object类的常用方法是什么获取键盘输入的两个常用方法Java集合框架Arraylist和LinkedList异同ArrayList和VectorArrayList和Vector的区别HashMapHashMap的底层实现HashMap和Hashtable的区别为什么HashMap的长度是2的幂HashMap多线程运行导致死循环问题HashSet和HashMap的区别ConcurrentHashMap和Hashtable的区别ConcurrentHashMap线程安全的具体实现方法/底层具体实现Collectionframework底层数据结构Java多线程面试官很可能会在多线程部分问你有没有在项目中实际使用过多线程的经验。所以,如果你有在项目中使用过Java多线程的实际经验,将会加分不少!说说你对synchronized关键字的理解。告诉我你如何使用synchronized关键字。你在项目中使用过吗?说说synchronized关键字的底层原理。说说JDK1.6之后synchronized关键字底部的优化吧。能详细介绍一下这些优化吗?说说synchronized和ReenTrantLock的区别。说说synchronized关键字和volatile关键字的区别。为什么要使用线程池?实现Runnable接口和Callable接口有什么区别?执行execute()方法和submit()方法有什么区别?如何创建线程池?告诉我有关Atomic原子类的信息。JUC包中的四个原子类是什么?告诉我有关AtomicInteger的用法。能简单介绍一下AtomicInteger类的原理吗?JVM的设计目标是提供一个基于抽象规范描述的计算机模型,为解释器开发人员提供了极大的灵活性,同时也保证了Java代码可以在任何符合规范的系统上运行。JVM对其实现的某些方面给出了具体的定义,特别是Java可执行代码的格式,即字节码(Bytecode)。该规范包括操作码和操作数的语法和值、标识符的数值表示、Java类文件中的Java对象以及常量缓冲池在JVM中的存储映像。这些定义为JVM解释器开发人员提供了他们需要的信息和开发环境。Java的设计者希望给予开发人员以他们想要的方式使用Java的自由。内存模型和分区需要详细说明每个区域要放什么。什么是GC收集器?CMS收集器和G1收集器的特性。MinorGC和FullGC什么时候发生?堆中的分区:伊甸园、生存(from+to)、老年代,以及各自的特点。简述java垃圾回收机制?java中的垃圾回收方式有哪些?类加载器双亲委派模型机制?什么是类加载器,什么是类加载器?简述java内存分配和回收策略,MinorGC和MajorGC网络协议TCP和UDP协议的区别。在浏览器中输入url地址->>显示首页的过程这些协议与HTTP协议的关系HTTP长连接,短连接TCP三向握手和四向握手(面试常客)MySQLMySQL是一个关系数据库管理系统。关系数据库将数据存储在不同的表中,而不是所有数据都存放在一个大仓库中,这提高了速度和灵活性。MySQL使用的SQL语言是最常用的访问数据库的标准化语言。MySQL软件采用双重授权政策,分为社区版和商业版。由于其体积小、速度快、总体拥有成本低,尤其是开源的特点,一般选择MySQL作为中小型网站开发的网站数据库。Mysql有哪些技术特点?MYSQL数据表在什么情况下容易损坏?说说你对MySQL常用的两种存储引擎MyISAM和InnoDB的理解。你了解数据库索引吗?能介绍一下MySQL的基本存储结构吗?Mysql如何给表字段加索引?大表常用的优化方法,说下mysql记录货币用什么字段类型。当单个MySQL表的记录数过多时,数据库的CRUD性能会显着下降。有哪些常见的优化措施?简单的说redis就是一个数据库,但是与传统的数据库不同,redis的数据是存储在内存中的,所以存储和写入的速度都非常快,所以redis在缓存方向应用的比较广泛。另外,redis也常用于分布式锁。Redis提供了多种数据类型来支持不同的业务场景。此外,redis支持事务、持久化、LUA脚本、LRU驱动事件、多集群方案。为什么要用redis/为什么要用缓存?为什么使用redis而不是map/guava做缓存?redis和memcached的区别?以上Redis分布式锁的缺点?Redis常见数据结构及使用场景分析Redis内存淘汰机制(MySQL中有2000w数据,Redis中只存储了20w数据,如何保证Redis中的数据是热数据?)redis持久化机制(如何保证后redis挂了然后重启数据可以恢复)?缓存雪崩和缓存穿透问题的解决方案?如何解决Redis的并发竞争Key问题?双写时如何保证缓存和数据库的数据一致性?春天春天一般是不可避免的。如果你的简历表明你了解SpringBoot或SpringCloud,那么面试官也可能会同时问你这两种技术。比如他可能会问你springboot和spring的区别。所以,简历上写的东西一定要慎之又慎,简历上的东西一定要非常熟悉。另外,AOP实现原理,动态代理和静态代理,SpringIOC初始化过程,IOC原理,如何自己实现一个IOC容器?这些东西经常被问到。SpringBean的范围?如何使用基于Java的配置来配置Spring?请告诉我SpringBean的生命周期?SpringBean范围之间有什么区别?请举例说明如何在Spring中注入JavaCollection?Spring框架中有哪些不同类型的事件?Spring框架中使用了哪些设计模式?开发中主要用到了Spring的哪些技术?消息队列“RabbitMQ?”“卡夫卡?”“RocketMQ?”……在日常的学习和开发过程中,我们经常会听到消息队列这个关键词。这也是面试中经常被问到的消息队列是什么?为什么要使用消息队列?短信丢失怎么办?如何解决消息重复问题?ActiveMQ中的消息重传间隔和重传次数是多少?ActiveMQ服务器挂了怎么办?如何调优ActiveMQ?Basic.Reject的用法是什么?为什么不应该保留所有消息?为什么磁盘节点不推荐用于RPC重度使用场景?DubboDubbo由阿里开源,后加入Apache。正式由于Dubbo的出现,越来越多的公司开始使用和接受分布式架构,那么Dubbo是什么?什么是RPC?RPC的原理是什么?为什么要使用Dubbo?它是分布式的吗?为什么要分发?先解释一下什么是负载均衡?Dubbo集群提供了哪些负载均衡策略?Dubbo支持哪些协议,每个协议的应用场景,优缺点?Dubbo的集群容错解决方案有哪些?Dubbo和SpringCloud的关系?数据结构数据结构问的比较多:二叉树、红黑树(很可能你会手画红黑树!)、二叉查找树(BST)、平衡二叉树(Self-balancingbinarysearchtree),B-Trees,B+树和B*树的优缺点对比,LSM树的知识点。数据结构很重要,也相对难学。建议学习数据结构一定要循序渐进,循序渐进。一定要明白原理,最好自己用代码实现。什么是队列?什么是队列类型?什么是集合?下面说一下HashSet和TreeSet的底层数据结构。什么是列表?List常见的实现类是什么?Linux在Linux操作系统中,所有由操作系统管理的资源,如网卡、磁盘驱动器、打印机、输入输出设备、普通文件或目录等,都被视为一个文件。也就是说,LINUX系统中有一个重要的概念:一切皆文件。其实这是UNIX哲学的体现,而Linux是UNIX的改写,所以这个理念一直流传下来。在UNIX系统中,所有资源都被视为文件,包括硬件设备。UNIX系统把每一个硬件都看成一个文件,通常称为设备文件,这样用户就可以通过读写文件来访问硬件。Linux文件系统简介?你知道一些常用的Linux命令吗?Linux中内核锁的主要类型有哪些?Linux中用户态和内核态分别是什么意思?用户进程间通信的主要方式有哪些?通过伙伴系统申请内核内存有哪些功能?模块程序能否使用linkablelinux是如何实现系统调用的?Linux软中断和工作队列的作用是什么?个人觉得面试就像一个新的旅程,失败和胜利都是家常便饭。所以奉劝大家不要因为面试失败而气馁,失去斗志。不要因为通过了面试就沾沾自喜。等待着你的是更加光明的未来。继续前进!限于篇幅,小编将以上采访题目的全部答案整理成pdf文档。文档中的详细信息过于全面,所以只截取了部分知识点进行粗略介绍,每个小节点都有更详细的信息。内容!有需要的朋友可以帮忙点赞加VX:javataozi888备注学习免费领取!!!领取更多整理好的Java面试题材