高频面试题
本专栏主要是收录了自己在面试中遇到的比较经典的问题。包括Java基础部分,框架部分,还有MySQL部分;
拥抱白菜的猪
这个帅博主很懒,什么都没有留下...
展开
-
TCP与UDP对比
TCP与UDP对比、TCP的三次握手四次挥手过程与与原理、原创 2022-05-17 11:26:46 · 868 阅读 · 0 评论 -
mybatis面试5问
1.什么是mybatis?2.mybatis的优点?3.mybatis的缺点?4.mybatis框架的使用场合?5.mybatis与Hibernate的区别?原创 2022-03-29 17:40:14 · 1324 阅读 · 0 评论 -
Redis的缓存预热、雪崩、击穿、穿透
Redis作为缓存在项目中,会有一些常见的问题,也有相应的解决方案。下面主要分析缓存预热、雪崩、击穿、穿透的问题现象和解决方案。原创 2022-03-23 16:47:35 · 392 阅读 · 0 评论 -
面试:说说Java反射中获取Class对象三种方式的区别?
以下三种获取Class对象的方式有什么不同?1、new Object().getClass 2、Object.class 3、 Class.forName(“java.util.String”)本篇文章就通过实例带大家来了解一下这三种获取Class对象的区别。示例基于JDK8。实例演示场景一为了更好的演示,我们先创建一个对象Person,对象内部定义了一些静态的方法。public class Person { static { System.out.pri转载 2022-02-25 16:25:28 · 430 阅读 · 0 评论 -
反射获取对象的四种方式?
目录1.反射获取对象的四种方式2.什么是反射3.反射能做什么? 在面试中,尤其是校招,反射是必定问的问题。程序经过java.exe命令编译以后,会生成一个或多个字节码文件().class,接着我们使用java.exe命名对某个字节码文件解释运行。相当于把某个字节码文件加载到内存中,加载的过程称为类的加载。加载到内存中的类我们称为class的实例对象。但是该类的对象我们不能直接用类名去表示,所以我们就在类名后添加一个属性,.class是Class的一个对象...原创 2022-02-23 14:21:39 · 7235 阅读 · 0 评论 -
Java开发逻辑思维题
这是我面试遇到的一个题:A、B两人分别在两座岛上。B生病了,A有B所需要的药。C有一艘小船和一个可以上锁的箱子。C愿意在A和B之间运东西,但东西只能放在箱子里。只要箱子没被上锁,C都会偷走箱子里的东西,不管箱子里有什么。如果A和B各自有一把锁和只能开自己那把锁的钥匙,A应该如何把东西安全递交给B?原创 2022-02-23 14:02:59 · 776 阅读 · 0 评论 -
Springboot常用注解?
@SpringBootApplication: 他封装了核心的 @SpringBootConfiguration(等同于配置类) + @EnableAutoConfiguration(开启自动装配) + @ComponentScan(指定扫描路径) 这三个类,大大节省了程序员配置时间。 @MapperScan: spring-boot支持mybatis组件的一个注解,指定mybatis接口类的路径,完成对mybatis接口的扫描。 @RestController: 是@Controller和@Respo原创 2022-02-22 15:21:25 · 83 阅读 · 0 评论 -
Springboot的自动装配原理?
自动装配的现象:当我们引入外部Jar包时,会自动完成@bean注入,我们可以直接@AutoWired引用,这就是springboot的自动装配实现的。实现原理:项目启动时,会扫描所有jar 包中的META_INF/spring.factories文件找到配置类。 也并不是直接加载左右配置类,会根据@Conditional注解筛选配置类是否满足加载条件。 jar包里的配置类加载,初始化bean放到容器中。源码解析:启动类上的@SpringbootApplication 注解的构成中由这三个注原创 2022-02-22 15:19:19 · 217 阅读 · 0 评论 -
常见加密算法原理?
1.散列算法 md5原理:检测文件是否损坏。不管文件有多长MD5的加密结果长度是固定的,文件有一个字节不同,加密生成串就完全不同。安全性低:相同文件生成的MD5结果是一样的,所以MD5也可以被解密。提高安全性:如果使用MD5加密,我们通常会使用加盐salt来防止破解。例如保存数据库的密码:2.对称加密算法概念:加密和解密都用同一个密钥优点:速度快缺点:密钥丢失,可以被黑客破解获取内容。3.非对称加密算法概念:密钥成对出现,分为公钥和密钥,公钥加密需要密钥解密.原创 2022-02-21 17:38:32 · 4979 阅读 · 0 评论 -
nginx在项目中的使用,正向代理反向代理跨域请求?
正向代理:客户端向服务器请求数据时,服务器并不需要直到客户端的来源(即隐藏了客户端)反向代理:客户端向服务器请求数据,直观请求到数据即可,不需要直到数据来源于哪个服务器(即隐藏了服务器,)跨域请求:跨域:浏览器对于javascript的同源策略的限制。下面几种情况都属于跨域: 1、域名不同 www.jd.com 与 www.taobao.com 2、端口不同 www.jd.com:8080 与 www.jd.com:8081 3、二级域名不同 item.jd....原创 2022-02-18 16:15:21 · 500 阅读 · 0 评论 -
解释一下自动装配?
解决的问题: 以前用spring的框架时,配置文件中定义很多bean很麻烦,想在可以实现自动装配,例如方法上加@bean;现象举例: 引入的jar包,自动完成@bean注入; 我们可以直接@Autowired引用实现原理: 1.启动项目,会扫描所有jar中的META_INF/spring.factories, 找配置类 2.不是直接加载所有配置类,会筛选配置类,判断@Conditional注解是否满足条件,满足就加载; 3.配置类加载,初始化bean放到容器中;...原创 2022-02-17 21:50:56 · 285 阅读 · 0 评论 -
synchronized与volatile关键字的区别?
volatile : 告诉jvm当前变量在内存中是不确定的需要从主内存中读取;synchronized : 锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞;两者对比 : synchronized volatile 使用位置 变量,方法,类 变量 作用 保证变量的修改可见性和原子性 保证变量的修改可见性 阻塞线程 可能会造成线程堵塞 不会造成线程阻塞 标记的变量可以被编译器优化 不能被编译器优化 修改可见原创 2022-02-17 21:44:26 · 355 阅读 · 0 评论 -
synchronized和ReetrantLock的区别优劣?
目录两者的区别:1. 从底层上:2. 是否会自动释放锁:3.是否是公平锁:4. 锁的是谁:5.是否可中断:6.唤醒线程:7.执行效率:sychronized底层的锁升级:锁的分级策略:两者的区别:1. 从底层上:sychronized底层是JVM层⾯的锁,是⼀个关键字;ReentrantLock是API层⾯的锁,是⼀个类 。2. 是否会自动释放锁:sychronized会⾃动加锁与释放锁;...原创 2022-02-16 15:20:46 · 792 阅读 · 0 评论 -
VUE的常用指令?
1.文本插值: {{msg}} v-html="msg"<div id="*">{{msg}}</div> //不能解析msg值中的标签<div id="*" v-html="msg"></div> //能解析msg值中的标签2.绑定属性: v-bind<a id="*" v-bind:href="url"></a> //对href属性绑定变量url<a id="8" :href="url">&...原创 2022-02-16 15:21:11 · 128 阅读 · 0 评论 -
MySQL实现将A表的数据转移到B表
将B表的数据全部复制到A表: insert into B select * from A;如果过是想要复制部分数据,还可以添加查询条件:insert into B select * from A where ...;原创 2022-02-15 16:19:52 · 2743 阅读 · 0 评论 -
MySQL事务执行流程?
事务: 一条或者多条SQL语句组成执行单元,要么全部成功,要么全部失败;操作事务的三个步骤开启事务:记录回滚点,并通知服务器,将要执行一组操作,要么同时成功、要么同时失败 执行sql语句:执行具体的一条或多条sql语句 结束事务(提交|回滚) 提交:没出现问题,数据进行更新 回滚:出现问题,数据恢复到开启事务时的状态 ...原创 2022-02-15 16:15:24 · 971 阅读 · 0 评论 -
redis如何实现持久化?
持久化就是将内存中的数据保存到硬盘,redis有两种持久化方案:RDB : 概念: 默认持久化方案;是以快照的形式保存数据的结果;存储格式简单;特点: 数据恢复快;不安全,容易丢失数据;备份方式: 1.save命令 ---- 会阻塞当前进程,影响项目运行。2.bgsave命令 -----新开一个线程去执行数据保存任务。不影响项目运行。3.配置文件 ------自动触发bgsave方式去保存数据。AOF :概念: 日志追加形式;保存的是数据的操作过程;依靠重新执行AOF文原创 2022-02-14 14:30:46 · 1610 阅读 · 0 评论 -
mybatis中#{} 和 ${} 的区别
#{}是占位符,只是占定个位置,SQL预编译执行;对应的变量自动加单引号'',能够防止SQL注入;${}是拼接符,将括号内的参数值拼接到SQL语句中,编译时执行,不会自动加单引号,可能存在SQL注入; 能不用${}就不用,当传的参数作为表名时,或者时作为order by ${}时使用,使用${}要注意是否加单引号,两者含义相反;...原创 2022-02-14 14:28:27 · 138 阅读 · 0 评论 -
说一下springMVC的常用注解?
1.@RequestMapping("/请求路径") //指定访问映射路径2.@ResponseBody //指定返回值以josn字符串形式3.@RequestParam:接收普通参数的注解,既请求头中 语法:@RequestParam(value=”参数名”,required=”true/false”,defaultValue=”” required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。4.@PathVariable 接受路径参数..原创 2022-02-14 17:00:04 · 79 阅读 · 0 评论 -
说一下spring的常用注解?
1.@Component(任何层) @Controller @Service @Repository(dao层) 用于实例化对象,将对象注入IOC容器2.@configuration 被此注解标注的类,会被 Spring 认为是配置类。Spring 在启动 的时候会自动扫描并加载所有配置类,然后将配置 类中 bean 放入容器 @CompinentScan("com.heima") 设定组件扫描路径,多个路径用数组格式添加 @import(类名.class) 在一个..原创 2022-02-14 14:14:40 · 1129 阅读 · 0 评论 -
SpringMVC执行流程
SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装。是一种基于Java实现MVC模型的轻量级Web框架.SpringMVC的执行流程如下:用户发送请求到前端控制器(DispatcherServlet),前daunt控制器转发给处理器映射器; 处理器映射器根据请求找到具体的处理器,生成处理器对象和拦截器对象,返回给前段控制器; 前段控制器发送请求和和处理器执行链给处理器适配器,处理器适配器找到并调用自定义的处理器得到数据执行结果;将数据结原创 2022-02-11 16:35:26 · 272 阅读 · 0 评论 -
介绍一下你对 IOC 和 AOP 的理解
IOC:控制反转控制反转指的是,创建对象的主动权从我们之前的手动new转变成了从IOC容器中去获取,项目在启动之初,spring扫描并加载配置文件,根据配置文件自动创建bean对象并放到IOC中,当需要用的时候直接从IOC容器中去取就行了。AOP:面向切面编程面向切面编程就是将公共行为和逻辑抽取并封装为一个可以重复的模块,这个模块被称为切面,实现了在不改变原有代码的基础上对代码功能进行增强。SpringAOP使用的动态代理,也就是AOP框架不会改字节码,每次运...原创 2022-02-11 15:23:52 · 571 阅读 · 0 评论