java全栈知识点[面试篇](一)
创始人
2024-05-24 07:22:41
0

jjava全栈知识点[面试篇](一)

  • 阻塞与等待的状态转变
  • ⭐Synchronized本质上是通过什么保证线程安全的?
  • volatile、synchronized和Lock如何保证可见性
  • ⭐Synchronized使得同时只有一个线程可以执行,性能比较差,有什么提升的方法?
  • ⭐synchronized的缺陷以及java lock如何弥补
  • ⭐synchronized和Lock的对比
  • synchronized的使用注意事项
  • volatile关键字的作用
  • ⭐32位机器共享的long和double变量为什么要用volatile
  • volatile如何实现可见性和有序性
  • volatile的应用场景
  • final修饰的字段都是编译期常量吗?
  • final可以被重载吗?
  • ⭐基础数据结构
  • ⭐常见的算法思想
  • 常用的排序算法
  • 什么是事务?
  • 事务隔离等级
  • ACID靠什么保证
  • ⭐Buffer Poll、Redo Log Buffer、Undo log、redo log、bin log的关系
  • ⭐从准备更新一条数据到事务的提交的流程
  • 实现 Runnable 和 Callable是真正意义的线程吗?
  • ⭐Mysql锁的类型
  • Redis常用的使用场景


总结了目前主流平台中常见的面试题,标⭐为重点!
更多干货请点击 Locus-轨迹

在这里插入图片描述


阻塞与等待的状态转变

在这里插入图片描述


⭐Synchronized本质上是通过什么保证线程安全的?

加锁和释放锁的原理
在这里插入图片描述

可重入原理:加锁次数计数器保证:Synchronized先天具有重入性。每个对象拥有一个计数器,当线程获取该对象锁后,计数器就会加一,释放锁后就会将计数器减一。

可见性的原理:内存模型和happens-before规则
在这里插入图片描述

在图中每一个箭头连接的两个节点就代表之间的happens-before关系,黑色的是通过程序顺序规则推导出来,红色的为监视器锁规则推导而出:线程A释放锁happens-before线程B加锁,蓝色的则是通过程序顺序规则和监视器锁规则推测出来happens-befor关系,通过传递性规则进一步推导的happens-before关系。现在我们来重点关注2 happens-before 5,通过这个关系我们可以得出什么?根据happens-before的定义中的一条:如果A happens-before B,则A的执行结果对B可见,并且A的执行顺序先于B。线程A先对共享变量A进行加一,由2 happens-before 5关系可知线程A的执行结果对线程B可见即线程B所读取到的a的值为1。


volatile、synchronized和Lock如何保证可见性

共享变量被volatile修饰时,它会保证修改的值会立即被更新到主存,当有其他线程需要读取时,它会去内存中读取新值。 synchronized和Lock在释放锁之前会将对变量的修改刷新到主存当中


⭐Synchronized使得同时只有一个线程可以执行,性能比较差,有什么提升的方法?

在这里插入图片描述


⭐synchronized的缺陷以及java lock如何弥补

在这里插入图片描述


⭐synchronized和Lock的对比

在这里插入图片描述在这里插入图片描述


synchronized的使用注意事项

在这里插入图片描述


volatile关键字的作用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


⭐32位机器共享的long和double变量为什么要用volatile


volatile如何实现可见性和有序性

在这里插入图片描述


volatile的应用场景

在这里插入图片描述


final修饰的字段都是编译期常量吗?

在这里插入图片描述


final可以被重载吗?

可以


⭐基础数据结构

在这里插入图片描述


⭐常见的算法思想

  • 分治算法:将一个规模为N的问题分解为K个规模较小的子问题,相互独立且与原问题性质相同
  • 动态规划算法:将待求解问题分解成若干个子问题,适用于动态规划算法求解的问题经过分解后得到的子问题往往不是相互独立的,而是下一个子阶段的求解是建立在上一个子阶段的解的基础上的。
  • 贪心算法: 每次操作局部最优,最后结果是全局最优
  • 二分法:要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
  • 搜索算法: 主要包含BFS,DFS
  • Backtracking(回溯):属于 DFS。走不通就退回再走

常用的排序算法

在综合复杂度及稳定性情况下,通常希尔, 快排和 归并需要重点掌握
在这里插入图片描述
在这里插入图片描述


什么是事务?

事务指的是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。


事务隔离等级

在这里插入图片描述


ACID靠什么保证


⭐Buffer Poll、Redo Log Buffer、Undo log、redo log、bin log的关系

在这里插入图片描述


⭐从准备更新一条数据到事务的提交的流程

在这里插入图片描述
在这里插入图片描述


实现 Runnable 和 Callable是真正意义的线程吗?

实现 Runnable 和 Callable 接口的类只能当做一个可以在线程中运行的任务,不是真正意义上的线程,因此最后还需要通过 Thread 来调用。可以说任务是通过线程驱动从而执行的。


⭐Mysql锁的类型

在这里插入图片描述
在这里插入图片描述


Redis常用的使用场景

在这里插入图片描述

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...