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的行锁和表锁
表级锁:每次操作锁住整张表。开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低;
行级锁:每次操作锁住一行数据。开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高;
页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值