Java面试题之扫盲知识点整理
Posted Stephanie_1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面试题之扫盲知识点整理相关的知识,希望对你有一定的参考价值。
整理了一些面试过程中“经常”会碰到的一些歌概念和问题,避免遗漏,整理下来。
什么是雪花算法?
用来生成订单号或者id 的一个算法,按64位每位不同含义占位的一个算法规则。
算法介绍地址:
https://blog.csdn.net/u011499747/article/details/78254990
事务有什么特性:
原子性,一致性,隔离性,持久性。一条SQL或者一组SQL或者整个程序。
快速理解脏读、不可重复读、幻读?
什么是脏读:读取了未提交的数据。
不可重复读:前后多次读取,数据内容不一致。
幻读:前后多次读取,数据总量不一致。
关于数据库的隔离级别:
https://blog.csdn.net/zhouym_/article/details/90381606
事务的四大特性分别是:原子性、一致性、隔离性、持久性
以下是几个隔离级别可能出现状况的说明:
以上四种隔离级别最高的是Serializable级别,最低的是Read uncommitted级别,当然级别越高,执行效率就越低,像Serializeble这样的级别,就是以锁表的方式(类似于Java多线程中的锁)使得其他线程只能在锁外等待,所以平时选用何种隔离级别应该根据实际情况来,在mysql数据库中默认的隔离级别是Repeatable read(可重复读)。
在MYSQL数据库中,支持上面四种隔离级别,默认的为Repeatable read(可重复读);而在Oracle数据库中,只支持Serializeble(串行化)级别和Read committed(读已提交)这两种级别,其中默认的为Read committed级别
关于Kubernetes的入门学习
中文文档介绍地址:
http://docs.kubernetes.org.cn/92.html
Linux(CentOS)上面安装Docker的教程
教程地址(还没有实操成功):
https://www.runoob.com/docker/centos-docker-install.html
什么是yum?
YUM是“Yellow dog Updater, Modified”的缩写,是一个软件包管理器,YUM从指定的地方(相关网站的rpm包地址或本地的rpm路径)自动下载RPM包并且安装,能够很好的解决依赖关系问题。
扫盲文档的地址:
https://www.cnblogs.com/jdxn/p/6755136.html
快速理解脏读、不可重复读、幻读?
什么是脏读:读取了未提交的数据。
不可重复读:前后多次读取,数据内容不一致。
幻读:前后多次读取,数据总量不一致。
java的基本数据类型有哪些:
有8种,int,long,byte,short,double,char,float,boolean一共8种。
什么是Spark?
是一个集群计算框架,把大量数据集计算任务分配到多台机器上。提供高效内存计算。
什么是SSM?
SSM(Spring+SpringMVC+MyBatis)
什么是PostgreSQL关系型数据库?
是一个开源的关系型数据库。
什么是服务的熔断?
牺牲局部,保障整体。
熔断机制是应对雪崩效应的一种微服务链路保护机制,
当扇出链路的某个微服务不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回”错误”的响应信息。当检测到该节点微服务响应正常后恢复调用链路,在SpringCloud框架机制通过Hystrix实现,Hystrix会监控微服务见调用的状况,当失败的调用到一个阈值,缺省是5秒内20次调用失败就会启动熔断机制,熔断机制的注解是@HystrixCommand
实战类的文章:
https://blog.csdn.net/www1056481167/article/details/81157171
关于MySQL的排序规则?
文章介绍地址:https://blog.csdn.net/leoxyk/article/details/99855608
但凡涉及字符类型比较或排序的地方,都跟排序规则有关。
优先级顺序是 SQL语句 > 列级别设置 > 表级别设置 > 库级别设置 > 实例级别设置
什么是ELK?
是一个日志分析平台,专门用来收集、存储、分析日志的。用来做运维中的日志监控工具。
什么是脏读和幻读?
什么是脏读:某个事务正在修改数据还未提交,另外一个人读取到了这条有问题的数据。
什么是幻读:表象是由于其他事务的干扰,导致查询任务查询到的两次结果不一致(因为两次查询期间数据被别的事务可能修改了)。
文章地址:https://blog.csdn.net/JIESA/article/details/51317164
关于浏览器的缓存策略?
分为强缓存和协商缓存。强缓存通过Header修改cache-control实现。
协商缓存:如果请求没有命中强缓存,或者强缓存失效后,就需要向服务器发起请求,验证资源是否有更新,这个过程叫做协商缓存。当浏览器发起请求验证资源时,如果资源没有改变,那么服务器返回 304 状态码,并且更新浏览器缓存有效期;如果资源发生改变,那么服务器返回 200 状态码,并且返回相应资源,更新浏览器缓存有效期。
文章地址:
https://segmentfault.com/a/1190000022084228?utm_source=weekly&utm_medium=email&utm_campaign=SegmentFault%20%E7%B2%BE%E9%80%89%E6%AF%8F%E5%91%A8%E7%B2%BE%E9%80%89%E4%B8%A8104%E9%81%93%20CSS%20%E9%9D%A2%E8%AF%95%E9%A2%98%EF%BC%8C%E5%8A%A9%E4%BD%A0%E6%9F%A5%E6%BC%8F%E8%A1%A5%E7%BC%BA
关于MySQL的索引
文章地址:
https://segmentfault.com/a/1190000022054544
关于MySQL的EXPLAIN语句分析:
通过explain+sql语句可以知道如下内容:
①表的读取顺序。(对应id)
②数据读取操作的操作类型。(对应select_type)
③哪些索引可以使用。(对应possible_keys)
④哪些索引被实际使用。(对应key)
⑤表直接的引用。(对应ref)
⑥每张表有多少行被优化器查询。(对应rows)
什么叫灰度发布?
有点类似于阿里云集群中的分批次发布,实现服务器更新和切换时的平滑过渡,对用户的服务不可用时间降到最低。
什么是幂等性?
简单说就是,一个不管调用一次还是很多次的http方法永远都能拿到稳定确定的结果,即幂等性。比如 GET获取资源,不影响获取的资源,即get并不会改变数据的情况,所以get是满足幂等的。但是因为POST提交成功都会产生新的资源,所以POST是不满足幂等的。其他的一些方法判断是否其幂等的我还没有看明白。。
解释地址:
https://www.jianshu.com/p/9d46a730284e
怎么避免表单的重复提交?
可以使用自定义注解实现拦截:
https://blog.csdn.net/u013042707/article/details/80526454
关于表单重复提交的总结文档:
https://www.cnblogs.com/wenlj/p/4951766.html
什么是base64?
字节码编码方式,用来方便http传输二进制数据
加密中加盐的意义?
简单说就是:增强密码的作用,使之更加不容易被破解,如果没有盐值会导致,固定的加密算法下,相同明文加密会得到相同的加密结果。
https://www.cnblogs.com/birdsmaller/p/5377104.html
mysql的行锁和表锁
表级锁:每次操作锁住整张表。开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低;
行级锁:每次操作锁住一行数据。开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高;
页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。
以上是关于Java面试题之扫盲知识点整理的主要内容,如果未能解决你的问题,请参考以下文章