java面试知识点突击-(71-80)

栗子~~ 栗子~~     2022-11-29     727

关键词:

前言

  如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


java 知识点扫盲目录

https://blog.csdn.net/weixin_38316697/article/details/121991582

java 面试知识点突击-(71-80)

71 springBoot 自动配置原理?

就是通过 @Import 去读取spring.factories配置文件,把里面的配置类解析成一个一个的bean定义,并导入 BeanDefinitionMap<beanName,BeanDefinition> 中。
装配了什么?
即自动装配类的bde(BeanDefinition)装配到 BeanDefinitionMap<beanName,BeanDefinition> 中。


72 什么是嵌入式服务器?为什么要使用嵌入式服务?

 正常的Web服务器 需要tomcat启动。
  而嵌入式服务器就是在springBoot 中将tomcat 打成tomcat.jar,相比web服务器,节省了下载安装tomcat步骤,应用也不需打成war包放在tomcat的webapp目录下,因为springBoot内置了tomcat,main方法启动时,就会自动启动tomcat,并利用tomcat的spi机制加载springMvc


73 mybatis的优缺点?

优点:
1、基于sql编程,相当灵活,sql写在xml里,与代码解耦,并统一管理;
2、与jdbc相比,消除了大量的冗余代码;
3、与各种数据库兼容;
4、能够与spring集成,对它相当友好;
5、提供映射标签,对象与数据库中的字段的关系映射;

缺点:
1、sql编写工作量大;
2、sql与数据库的依赖性比较大,不能随意更换数据库


74 Mybatis与hibernate对比?

提前掌握:

ORM(对象关系映射):
javaBean <----> DB

最主要的区别hibernate是典型的ORM框架,而Mybatis主要是用于编写sql

面向表结构编程思维–>Mybatis更好
面向对象编程思维–>hibernate更好

面向对象的思维迭代会很慢,而面向表结构的思维迭代会很快,因此国内基本选择的都是Mybatis。

开发速度对比:
如果一个项目没有复杂的查询,都是增删改查,选hibernate;
如果一个项目复杂语句较多,选Mybatis;

sql优化对比:
Mybatis更好。

对象管理的对比:
hibernate更好,Mybatis根本就不是一个ORM框架。

学习成本:
hibernate学习成本更高,因为hibernate重,封装的东西更多,而Mybatis比较轻,入门成本更简单。


75 Mybatis 中#和$的区别?

# 占位符–>预编译处理;
$是拼接符–字符串替换;

区别:
1、因为#是预编译处理,变量替换后,对应的变量自动加上’’、KaTeX parse error: Expected 'EOF', got '#' at position 14: 不会加上单引号; 2、#̲ 防止sql注入,而不行,因为$不是预编译,你传入什么就是什么;


76 Mybatis 的插件的运行原理,如何编写一个插件?

Mybatis的插件就是Mybatis的拦截器
它只支持
ParameterHandler(数据类型转换)、
ResultSetHandler(结果集)、
StatementHandler(设置参数)、
Ececutor(生成sql语句与缓存的维护)这四种接口,Mybatis使用JDK的动态代理,为需要拦截的接口生成代理对象以实现接口拦截方法。

如何编写一个插件:
实现Mybatis的interceptor接口并复写intercept()方法。


77 索引的基本原理?

概述:
索引用来快速查询某种特定值的记录,没有索引的话,就意味着全表扫描。
原理:
把无序的数据变成有序的查询;
1、把创建了的索引内容进行排序,
2、并维护到一张表里面(【倒排表】)
3、在【倒排表】内容上拼上数据地址链
4、查询时,先拿到【倒排表】里的内容,取出数据地址链,从而拿到具体的数据
例子:
【哈希索引】:就是把每个数据的值进行哈希算法,将获取到的哈希值放到哈希表中,value值放入对象在堆中的地址,同时哈希表在内存中,随时可以找到,通过找到对应的哈希值就能找到对应的地址。


78 mysql聚族和非聚族索引的区别?

数据结构都是B+树;
聚族索引概述:
叶子节点上数据与索引按照一定的顺序放在一起,同时数据的物理存放顺序与索引一致,
即只要索引是相邻的,那么在磁盘上数据也是相邻的,比较适用于范围查询

非聚族索引概述:
叶子节点不存储数据,只存储索引(数据行地址)

相比非聚族索引:
优势:
1、通过查询聚族索引可以直接获取数据,相比非聚族索引更快,因为非聚族索引需要二次查询;
2、聚族索引范围查询效率更高,因为数据是按照大小排列
3、聚族索引适用于排序的场景,非聚族索引不适合

劣势:
1、维护索引昂贵,(插入新行/主键被更新)
2、如果使用UUID使用主键,每次插入新数据,导致聚族索引重新排序
3、如果主键比较大,导致辅助索引会变大,辅助索引的叶子结点是主键值,通过这个主键值在聚族索引找到数据,过长的主键值,也导致聚族索引所占的物理空间过大。

注:innoDB(B+树)中一定有主键,主键一定是聚族索引,不手动设置,则会使用unique索引,没有unique索引,则会使用数据库内部的一个行的隐藏id来当做主键索引,在聚族索引之上创建的索引称之为辅助索引,辅助索引访问数据都要二次查找,非聚族索引都是辅助索引,像复合索引,前缀索引,唯一索引也是非聚族索引


79 mysql索引结构,各自优劣?

单条记录查询的时候,适合哈希索引,查询性能最快,其余大部分场景采用B+树索引。

79::01 B+树:

B+树是一个平衡的多叉树,从根节点到每个叶子节点的高度差值不超过1,而且同层级的节点间有指针相互链接
在B+树的常规检索,从根节点到叶子节点的搜索效率基本相当,不会出现大幅度波动,而且基于索引的顺序扫描时,也可以利用双向指针快速移动,效率非常高

79::02 hash索引:

哈希索引就是采用一定的哈希算法,把键值换算成新的哈希值,检索时只需要一次哈希算法即可找到对应的键值,速度非常快。
如果是等值查询,那么哈希索引有绝对优势;
如果是范围查询,哈希索引毫无用武之地;


80 索引的设计原则?

目的:查询更快,占用的空间更小
索引设计原则:

  1. 基数少的表,就没必要建索引了,因为索引也是要占空间的。
  2. 使用短索引,比如说,设置索引的字段字符长度比较长,那么生成的索引占的空间就比较大,可以指定一个前缀索引,这样可以节省大量索引引用空间,可以查询完后在排除不符合标准的行。
  3. 作为常用查询条件的字段,适合建立索引。
  4. 不要过度索引,索引会占用空间,而且索引越多,插入数据的时候,需要维护的索引表就越多
  5. 定义外键的列一定要建立索引。
  6. 更新频繁的字段不适合建立索引。
  7. 查询中很少涉及的列、重复着比较多的列不适合建立索引。
  8. 尽量扩展索引,不要新建索引。
  9. text、image、bit的数据类型列不要建立索引。

创作不易、点关注、不迷路

点击主页、更精彩 !!!

java面试知识点突击-(81-90)

文章目录前言java知识点扫盲目录java面试知识点突击-(81-90)81建了索引但是用不上的情况?82多个独立索引和联合索引的选择?83mysql中涉及NULL容易忽略的坑?84select语句带有什么锁类型?85mysql执行计划怎么看?86事务的基本特性和隔离级... 查看详情

java面试知识点突击-(51-60)(代码片段)

文章目录前言java知识点扫盲目录java面试知识点突击-(51-60)51spring事务的实现方式与隔离机制?51::01实现方式51::02隔离机制52spring事务的传递方式?53spring事务什么时候会失效?54并发、并行、串行的区别55并发的三大特性56为什么使用... 查看详情

java面试知识点突击-(91-100)(代码片段)

文章目录前言java知识点扫盲目录java面试知识点突击-(91-100)91讲一下redis的RDB和AOF机制?92redis过期键的删除策略?93redis的线程模型,为什么这么快?94Redis的string最大多少,hash、set、list、zset都分别最大多少?95Re... 查看详情

java面试知识点突击-(41-50)(代码片段)

文章目录前言java面试知识点突击-(41-50)41如何实现一个IOC容器的思路?42spring是什么?43对springAOP的理解?44对springIOC的理解?44::01容器概念44::02控制反转44::03依赖注入45springIOC为什么是控制反转的?46BeanFactory和ApplicatinContext有什么区别?47... 查看详情

每日十个面试题--(java基础篇)-(71-80)

71,谈谈你对Struts的理解。1.struts是一个按MVC模式设计的Web层框架,其实它就是一个Servlet,这个Servlet名为ActionServlet,或是ActionServlet的子类。我们可以在web.xml文件中将符合某种特征的所有请求交给这个Servlet处理&#x... 查看详情

java面试手册v2.0+突击v3.0知识点整理(二十)附封面图片(代码片段)

1.网络延时和完整性约束时延(delay或者latency)是指一个报文或者分组从一个网络(或一条链路)的一端传送到另一端所需的时间数据完整性约束指的是为了防止不符合规范的数据进入数据库,在用户对数据进... 查看详情

fpga工程师面试试题集锦71~80

目录71:锁存器(latch)和触发器(flip-flop)区别?72:FPGA芯片内有哪两种存储器资源? 查看详情

java程序员被裁员,突击面试4家大厂,斩获2家offer~

总结面试了知乎/快看漫画/快手/头条四家公司,拿到了其中两家offer感觉面试难度整体比校招简单一些,可能是由于有正式项目经历了,基础知识问的少了些感觉今年行情不大好,不过好好准备还是能得到心仪的offer二年没面试... 查看详情

java面试突击-(1-10)

文章目录前言java面试突击-(1-10)01JDK、JRE、JVM什么区别02==和equals的区别03hashcode()与equals()的作用、区别和联系04重载和重写的区别05final的作用06为什么局部内部类和匿名内部类只能访问局部final变量?07String、StringBuffer,StringBuil... 查看详情

java知识点突击-(41-50)

文章目录前言java知识点扫盲目录java知识点突击-(41-50)41如何实现一个IOC容器的思路?42spring是什么?43对springAOP的理解?44对springIOC的理解?44::01容器概念44::02控制反转44::03依赖注入45springIOC为什么是控制反转的?46BeanFactory和ApplicatinContex... 查看详情

java知识点突击-(121-130)

文章目录前言java知识点扫盲目录java知识点突击-(121-130)121可重入锁-ReentrantLock原理?122说一下synchronized底层实现原理?123Synchronized和Volatile的区别是什么?124Synchronized和Lock的区别是什么?125Synchronized和ReentrantLock区别是... 查看详情

java知识点突击-(101-110)

文章目录前言java知识点扫盲目录java知识点突击-(101-110)101redis集群方案?102redis主从复制原理?103对象入set要注意什么?104spring的BeanFactory和FactoryBean有什么区别?105String在内存中所占的内存大小?106抽象类能使用final修饰吗?107常用... 查看详情

java知识点突击-(111-120)

文章目录前言java知识点扫盲目录java知识点突击-(111-120)111进程和线程的区别?112守护线程是什么?113说一下runnable和callable有什么区别?114VM中的锁优化?114::01偏向锁114::02轻量锁114::03自旋锁115多线程锁的升级原理是什么࿱... 查看详情

java知识点突击-(131-140)

文章目录前言java知识点扫盲目录java知识点突击-(131-140)131当一个同步方法已经执行,线程能够调用对象上的非同步实例方法吗?132什么是反射?133包装类和基本属性的不同?134包装类优点?135既然有包装类,为什么... 查看详情

java知识点突击-(141-150)

文章目录前言java知识点扫盲目录java知识点突击-(141-150)141jwt的优缺点?142Get和Post请求有哪些区别?Get和Post请求有哪些区别?143开放式系统互联模型(网络的七层架构)?144post为什么是两次TCP连接?145相比http1.x,http2.x... 查看详情

剑指offer第二版和专项突击版有啥区别

...,专题大概可分为两大块:数据结构+算法。而剑指Offer:名企面试官精讲典型编程题(第2版)》共分7章,主要包括面试的流程,讨论面试每一环节需要注意的问题;面试需要的基础知识,从编程语言、数据结构及算法三方面总结程序员面试... 查看详情

新鲜出炉!2020年最新java面试题大全,面试突击必备!(代码片段)

前言发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了一套Java面试题,希望对大家有帮助哈~打算这几天每天更新15~20题。(这样有助于你们阅读和理解!)我们先从简单的开始1.JDK和JRE有什么区别?JDK:JavaD... 查看详情

耗时4个月,阿里架构师打造java面试突击文档,10位朋友已拿offer

...获取方式面试准备工作BAT大厂也不可忽视的java基础面试知识点重载和重写的区别String和StringBuffer、StringBuilder的区别是什么?String为什么是不可变的?自动装箱与拆箱==与equals关于final关键字的些总结Object类的常见方... 查看详情