基本原则:
基本:我熟悉的,或者必须熟悉的。
进阶:必须熟悉且易忘,不熟悉的,难记的。
笔试篇
1.笔试基础篇
基础题
常见手写算法代码
2.笔试进阶篇
深度原理
算法题
面试篇
前端
2023年前端面试题汇总-CSDN博客
后端
容器、线程等等
a.JDK 和 JRE 有什么区别?
JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境。
JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。
具体来说 JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 Javac,还包含了很多 Java 程序调试和分析的工具。简单来说:如果你需要运行 Java 程序,只需安装 JRE 就可以了,如果你需要编写 Java 程序,需要安装 JDK。
b.final 在 Java 中有什么作用?
final 修饰的类叫最终类,该类不能被继承。
final 修饰的方法不能被重写。
final 修饰的变量叫常量,常量必须初始化,初始化之后值就不能被修改。
Java 中的 Math. round(-1. 5) 等于多少?
等于 -1 中间值(0.5)向右取整
0Java基础-CSDN博客当线程 A 持有独占锁a,并尝试去获取独占锁 b 的同时,线程 B 持有独占锁 b,并尝试获取独占锁 a 的情况下,就会发生 AB 两个线程由于互相持有对方需要的锁,而发生的阻塞现象,我们称为死锁。https://blog.csdn.net/computer408/article/details/133739960
1Java基础的进阶-*重点-CSDN博客反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 Java 语言的反射机制。Java 序列化是为了保存各种对象在内存中的状态,并且可以把保存的对象状态再读出来。以下情况需要使用 Java 序列化:想把的内存中的对象状态保存到一个文件中或者数据库中时候;想用套接字在网络上传送对象的时候;想通过RMI(远程方法调用)传输对象的时候。https://blog.csdn.net/computer408/article/details/133751867
2.Javaweb模块基本_Java_Eastlin的博客-CSDN博客XSS 攻击:即跨站脚本攻击,它是 Web 程序中常见的漏洞。原理是攻击者往 Web 页面里插入恶意的脚本代码(css 代码、Javascript 代码等),当用户浏览该页面时,嵌入其中的脚本代码会被执行,从而达到恶意攻击用户的目的,如盗取用户 cookie、破坏页面结构、重定向到其他网站等。预防 XSS 的核心是必须对输入的数据做过滤处理。提供了一种创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。https://blog.csdn.net/computer408/article/details/133752175
3.Javaweb模块进阶-CSDN博客CSRF:Cross-Site Request Forgery(中文:跨站请求伪造),可以理解为攻击者盗用了你的身份,以你的名义发送恶意请求,比如:以你名义发送邮件、发消息、购买商品,虚拟货币转账等。防御手段:验证请求来源地址;关键操作添加验证码;在请求地址添加 token 并验证。提供了一种创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。https://blog.csdn.net/computer408/article/details/133752673
12JVM基础-CSDN博客在介绍双亲委派模型之前先说下类加载器。对于任意一个类,都需要由加载它的类加载器和这个类本身一同确立在 JVM 中的唯一性,每一个类加载器,都有一个独立的类名称空间。类加载器就是根据指定全限定名称将 class 文件加载到 JVM 内存,然后再转化为 class 对象。类加载器分类:启动类加载器(Bootstrap ClassLoader),是虚拟机自身的一部分,用来加载Java_HOME/lib/目录中的,或者被 -Xbootclasspath 参数所指定的路径中并且被虚拟机识别的类库;https://blog.csdn.net/computer408/article/details/13390119313JVM进阶-CSDN博客CMS 是英文 Concurrent Mark-Sweep 的简称,是以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器。对于要求服务器响应速度的应用上,这种垃圾回收器非常适合。在启动 JVM 的参数加上“-XX:+UseConcMarkSweepGC”来指定使用 CMS 垃圾回收器。https://blog.csdn.net/computer408/article/details/133902218
2.Spring系列
spring,springMvc,SpringBoot,SpringCloud
区别,常用注解
相似:SSH-Struts(Struts,Spring,Hibernate)
4Spring及Spring系列-基本-CSDN博客aop 是面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。简单来说就是统一处理某一“切面”(类)的问题的编程思想,比如统一处理日志、异常等。ioc:Inversionof Control(中文:控制反转)是 spring 的核心,对于 spring 框架来说,就是由 spring 来负责控制对象的生命周期和对象间的关系。简单来说,控制指的是当前对象对内部成员的控制权;控制反转指的是,这种控制权不由当前对象管理了,由其他(类,第三方容器)来管理。https://blog.csdn.net/computer408/article/details/133759104
5Spring及Spring系列-进阶-CSDN博客ORM(Object Relation Mapping)对象关系映射,是把数据库中的关系数据映射成为程序中的对象。使用 ORM 的优点:提高了开发效率降低了开发成本、开发更简单更对象化、可移植更强。hibernate 中如何在控制台查看打印的 SQL 语句?在 Config 里面把 hibernate. show_SQL 设置为 true 就可以。但不建议开启,开启之后会降低程序的运行效率。https://blog.csdn.net/computer408/article/details/133761500
3.中间件
maven,redis,mq
8中间件-Redis、MQ---基本-CSDN博客中间件(Middleware)是指位于客户端和服务器端之间的软件,用于处理请求和响应,以及提供额外的功能和服务。中间件可以用于各种不同的应用程序,例如Web应用程序、消息传递系统、数据库管理系统等。在Web应用程序中,中间件可以用于处理请求和响应,例如身份验证、日志记录、缓存、压缩等。中间件可以在请求到达应用程序之前或之后执行,以及在响应发送到客户端之前或之后执行。常见的Web中间件包括Express、Koa、Django、Flask等。https://blog.csdn.net/computer408/article/details/133796235
9中间件-Redis、MQ---进阶-CSDN博客首先客户端必须连接到 RabbitMQ 服务器才能发布和消费消息,客户端和 rabbit server 之间会创建一个 tcp 连接,一旦 tcp 打开并通过了认证(认证就是你发送给 rabbit 服务器的用户名和密码),你的客户端和 RabbitMQ 就创建了一条 amqp 信道(channel),信道是创建在“真实” tcp 上的虚拟连接,amqp 命令都是通过信道发送出去的,每个信道都会有一个唯一的 id,不论是发布消息,订阅队列都是通过这个信道完成的。如果顺序恰好相反的话,可能会造成消息的丢失。https://blog.csdn.net/computer408/article/details/133796287
14Maven与Tomcat面试题-CSDN博客Maven是一个基于项目对象模型(POM)的项目管理工具,它可以帮助开发者自动化构建、依赖管理、项目报告等。Maven通过一个中央信息片段能够管理项目的构建、报告和文档等步骤,同时也能够管理项目的依赖。Maven的核心概念是POM,它是一个XML文件,描述了项目的基本信息、依赖关系、构建方式等。Maven通过POM文件来管理项目的构建和依赖,使得项目的构建和依赖管理更加简单和规范化。同时,Maven还提供了丰富的插件和生命周期,可以帮助开发者更加方便地进行项目构建和管理。https://blog.csdn.net/computer408/article/details/133907736
4.mysql
mybatis,mybatis-plus,
分页
相似:Hibernate
6数据层相关框架-基本-CSDN博客MyBatis常见面试问题,以及和hibernate 的区别等_mybatis和hiberbate区别面试_my_styles的博客-CSDN博客*1、什么是MyBatis?*答:MyBatis是一个可以自定义SQL、存储过程和高级映射的持久层框架。https://blog.csdn.net/computer408/article/details/133784752
7数据层相关框架-进阶-CSDN博客ORM(Object Relation Mapping)对象关系映射,是把数据库中的关系数据映射成为程序中的对象。使用 ORM 的优点:提高了开发效率降低了开发成本、开发更简单更对象化、可移植更强。hibernate 中如何在控制台查看打印的 SQL 语句?在 Config 里面把 hibernate. show_SQL 设置为 true 就可以。但不建议开启,开启之后会降低程序的运行效率。https://blog.csdn.net/computer408/article/details/133791762
10数据库-基础-CSDN博客缓存穿透:指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。解决方案:最简单粗暴的方法如果一个查询返回的数据为空(不管是数据不存在,还是系统故障),我们就把这个空结果进行缓存,但它的过期时间会很短,最长不超过五分钟。bootstrap 优先级最高也就是properties 文件格式最高一次分清缓存穿透,缓存击穿,缓存雪崩一次分清缓存穿透,缓存击穿,缓存雪崩。https://blog.csdn.net/computer408/article/details/133815579
11数据库-进阶-CSDN博客索引是满足某种特定查找算法的数据结构,而这些数据结构会以某种方式指向数据,从而实现高效查找数据。具体来说 MySQL 中的索引,不同的数据引擎实现有所不同,但目前主流的数据库引擎的索引都是 B+ 树实现的,B+ 树的搜索效率,可以到达二分法的性能,找到数据区域之后就找到了完整的数据结构了,所有索引的性能也是更好的。https://blog.csdn.net/computer408/article/details/133815637
15Linux、GIT及相关相似面试题、PostMan-CSDN博客Linux和git相似是命令相关的层次结构相似。https://blog.csdn.net/computer408/article/details/134873972