开发者社区> 问答> 正文

偏向锁被废弃了?谈谈你背的那些“八股文”

4000积分,公牛接线板*4

前言:阅读一篇技术文章,畅聊一个技术话题。本期文章推荐的是《你背的“八股文”可能已经过时了》

随着技术的不断更新迭代,一些曾经被认为是“标准答案”的观点和方法,已经不再适应当前的需求,甚至被视为过时的做法。在新的JDK版本中,许多新的特性、工具和方法被引入,使得Java编程变得更加简洁、高效和强大。所以,是时候对“八股文”进行一次知识库的清理和更新了。

本期话题:

1、你知道偏向锁已经被废弃了吗?谈谈你对此的看法。
2、你的“八股文”知识库上次更新是什么时候?印象最深的是哪一条?
(可选择作答)

本期奖励:

截止2023年12月24日24时,参与本期话题讨论,将会选出 2 名幸运用户和 2 个优质回答分别获得阿里云开发者公牛圆盘充电插座一个。快来参加讨论吧~

幸运用户获奖规则:中奖楼层百分比为35%、75%的有效留言用户可获得互动幸运奖。如:活动结束后,回复为100层,则获奖楼层为 100✖35%=35,依此类推,即第75位回答用户获奖。如遇非整数,则向后取整。
如:回复楼层为81层,则81✖35%=28.35,则第29楼获奖。

优质讨论获奖规则:不视字数多,结合自己的真实经历分享,非 AI 生成。

未获得实物礼品的参与者将有机会获得 10-200 积分的奖励。

image.png
image.png

注:楼层需为有效回答(符合互动主题),灌水/复制回答将自动顺延至下一层。如有复制抄袭、不当言论等回答将不予发奖。阿里云开发者社区有权对回答进行删除。获奖名单将于活动结束后5个工作日内公布,奖品将于7个工作日内进行发放,节假日顺延。

获奖公告:

截止到12月24日共收到107条有效回复,获奖用户为:

优质回答:算精通、周周的奇妙编程
幸运用户:ZPY0821、wldffg

恭喜以上用户!感谢大家对本话题的支持~

展开
收起
阿里开发者 2023-12-14 14:47:25 2356 12
118 条讨论
参与讨论
取消 提交讨论
  • 1、你知道偏向锁已经被废弃了吗?谈谈你对此的看法。
    我知道偏向锁已经被标记废弃了,使用偏向锁时,当短时间内只有一个线程访问的情况下非常有,但是,如果存在竞争,偏向锁会升级为轻量级锁或重量级锁。
    在新的Java版本中,偏向锁在某些情况下可能不再提供性能优势,而引入了额外的开销。
    2、你的“八股文”知识库上次更新是什么时候?印象最深的是哪一条?
    大概是在一年前更新的,因为互联网的发达,现在获取新的特性和知识也越来越容易和便利。

    2023-12-24 23:46:08
    赞同 55 展开评论 打赏
  • 八股文有些纯是应付面试的,不过通过八股文也能看出面试者对面试的重视程度和理论基础,也看公司实际找人的要求,如果只是又个干活的就行,要求不高,主要看工作经验即可

    2023-12-24 16:42:23
    赞同 52 展开评论 打赏
  • 十分耕耘,一定会有一分收获!

    前言

    随着互联网技术的不断更新迭代,曾经被认为是“标准答案”的观点和方法已经逐渐失去适应当前需求的能力,甚至被视为过时的做法。就拿最近的技术圈新闻来讲,在新的JDK版本中,Java编程引入了许多新的特性、工具和方法,使其变得更加简洁、高效和强大,但是之前的旧特性和方法也有许多被废弃了,比如曾经比较经典的偏向锁已经被废弃了,因此,个人觉得是时候对“八股文”进行一次知识库的清理和更新了。那么本文就来分享一下关于偏向锁被废弃以及个人对此的看法,并回顾一下自己的“八股文”知识库,以及技术更新迭代地时候我们要保持及时更新自己的知识储备。

    image.png

    《你背的“八股文”可能已经过时了》读后感

    在开始本文的话题之前,先来分享一下关于我读《你背的“八股文”可能已经过时了》这篇文章的读后心得体会,这篇文章深入探讨了传统的学习方式在技术领域可能已经不再适用的问题,也让我对技术学习和职业发展的新的思考。我记得文章中指出,过去的技术学习往往以背诵和机械应用为主导,这种“八股文”式的学习方法在今天的快速变革的技术领域已经不再有效,随着技术的不断演进和创新,我们需要培养的是批判性思维、问题解决能力和持续学习的心态。

    我非常认同文章中提到的批判性思维的重要性,在面对技术问题时,我们不能仅仅依赖于既定的套路和解决方案,而是需要有能力质疑和挑战现有的观点和做法,在通过思考问题的本质,我们可以更好地理解技术背后的原理和逻辑,并能够提出创新的解决方案。而且文中强调了问题解决能力的培养,因为在现实世界中,技术问题往往是复杂的、多样的,没有一种通用的解决方法,所以我们需要学会分析和拆解问题,掌握基本的解决思路和方法,并能够灵活地运用它们来解决不同的问题,这种问题解决能力的培养需要不断的实践和经验积累。还有就是对于技术人员而言,持续学习的心态至关重要,因为技术领域的变化非常迅速,新技术和新概念层出不穷,只有保持持续学习的心态,不断更新知识,才能跟上行业的发展步伐。

    关于偏向锁已经被废弃这件事

    看了官方消息,在新的JDK版本中,偏向锁已经被废弃。做Java开发的读者想必都知道偏向锁是一种JVM优化技术,旨在减少无竞争情况下的同步操作的开销。但是随着现代处理器的发展和多核心架构的普及,偏向锁的效果逐渐减弱甚至变得无效,所以Java开发团队决定废弃偏向锁,以便更好地适应当前的硬件环境和多线程编程需求。关于偏向锁被废弃这件事我个人是知道的,而且还知道的比较早。

    个人而言,我比较认同官方关于废弃偏向锁的操作,因为技术的发展永远在不断前进,我们需要及时放弃过时的方法,接纳和适应新的技术进展,在废弃偏向锁并引入更适应现代硬件的机制,可以提高多线程程序的性能和可靠性。这也告诉我们每一位程序员,在技术领域,我们应该时刻持续学习和关注最新的发展,及时更新自己的知识储备,只有这样才能与时俱进。

    image.png

    个人“八股文”知识库的更新与印象深刻的知识点

    不用多说,对于开发者而言,每个开发者都有属于自己的“八股文”知识库,这些是我们在学习和实际开发中反复使用和总结的知识点和经典模式,但是频繁的技术更新要求作为开发者的我们不断更新我们的知识库,从而适应新的需求、知识和使用工具等。

    最近一次我对自己的“八股文”知识库进行更新是在半年前,我在实际使用中发现一些之前被认为是标准的方法和最佳实践已经不再适用于当前的开发环境和场景,所以我开始主动去学习和摸索新的知识点的特性和工具使用,比如Java 14中引入的Switch表达式、Records和Pattern Matching等,这都是之前自己所不具备的知识储备范畴。

    在我自己的“八股文”知识库中,最印象深刻的一条是关于代码优化和性能调优的原则,因为在过去我经常依赖一些固定的优化技巧,比如避免使用String的"+"操作符连接字符串、避免在循环中频繁创建对象等“常识”,但是随着JVM和编译器的优化能力的不断提升,一些过去的优化建议和使用“常识”已经不再适用,甚至可能会产生反效果,所以我开始着重通过使用工具进行性能分析和使用合适的算法和数据结构来解决性能问题。

    image.png

    结束语

    上文的介绍,关于技术的不断更新迭代使得一些过去被认为是“标准答案”的观点和方法变得过时,尤其是在Java编程领域,新的JDK版本引入了许多简洁、高效和强大的特性、工具和方法,对于我们开发者自己的个人“八股文”知识库,需要定期进行清理和更新,从而适应当前的需求和技术发展。废弃偏向锁就是一个很好的例子,对于个人而言来说,我支持废弃偏向锁的决定,因为面对技术的不断进步,我们就应该及时放弃过时的方法,接纳和适应新的技术进展。而且在技术领域,持续的学习和更新是至关重要的,我们应该保持开放的心态,关注最新的技术动态,并不断更新完善自己的知识储备,只有这样,我们才能在快速发展的技术领域中保持自我竞争力,不断提升自己的技术水平。

    2023-12-24 14:53:13
    赞同 54 展开评论 打赏
  • 无所不能的蛋蛋

    1、你知道偏向锁已经被废弃了吗?谈谈你对此的看法。
    偏向锁在Java 9之后被废弃了。我对此有一些了解。偏向锁作为Java内存模型中的一种优化手段,确实可以提高同一个线程反复访问同一个对象时的性能。然而,偏向锁无法解决死锁问题,并且在某些情况下可能导致内存泄漏等问题。因此,Java 9决定废弃偏向锁并将轻量级锁作为默认的锁类型。
    我认为废弃偏向锁是一个经过深思熟虑的决定。Java平台一直致力于提高并发性能和解决线程竞争问题,而偏向锁虽然在某些场景下可以提高性能,但也存在一些问题。废弃偏向锁可以促进对更加稳定和可靠的锁机制的使用和理解,同时也鼓励开发者正确处理线程竞争和并发问题。

    2023-12-23 07:36:05
    赞同 45 展开评论 打赏
  • 偏向锁在JDK 15版本中被废弃,而不是完全删除。偏向锁是Java中synchronized关键字的一种优化手段,用于在无竞争的情况下提高性能。然而,随着硬件和软件技术的发展,偏向锁在某些场景中可能不再有效,甚至会带来一些性能损失。
    废弃偏向锁的原因是,它增加了JVM的复杂性,并且在高并发场景下可能导致性能下降。JVM团队认为,在当前硬件技术条件下,使用轻量级锁和自旋锁可以更好地满足并发需求。因此,偏向锁被废弃,并建议开发者在使用synchronized时,评估并选择更合适的锁机制。

    2023-12-22 21:27:16
    赞同 22 展开评论 打赏
  • 问题1:你知道偏向锁已经被废弃了吗?谈谈你对此的看法。

    回答1:不知道。本身作为Java开发的小白来讲,还未涉及到多线程并发编程,所以对此没有很多了解。但是一门技术总是会随着时代的发现而进行更迭,所以对于任何一门技术会被废弃我也会认为是理所当然的。

    问题2:你的“八股文”知识库上次更新是什么时候?印象最深的是哪一条?

    回答2:昨天,本身我也在准备明天的秋招,所以现在已经开始背八股了,但是目前背的比较基础,给我印象最深的还是equals()和hashcode的关系

    2023-12-22 21:27:16
    赞同 15 展开评论 打赏
  • 从事java行业8年至今,热爱技术,热爱以博文记录日常工作,csdn博主,座右铭是:让技术不再枯燥,让每一位技术人爱上技术

    1、你知道偏向锁已经被废弃了吗?

    对于偏向锁被废弃来说,也是刚刚知道,目前自己开发中用的较多的是Java8以下,对于偏向锁的情况不是太关注。不过关于偏向锁被废弃,个人觉得是可以理解的,毕竟硬件的发展也是不断更新迭代的,在过去的硬件环境支撑下,当时的偏向锁确实能发挥最大的效用,因此才有了偏向锁的出现。而随着硬件的更新迭代,过去解决问题的思路可能并不适应现在的情况,因而偏向锁被废弃也就顺理成章了。

    2、你的“八股文”知识库上次更新是什么时候?印象最深的是哪一条?

    对于八股文知识库的上次更新,应该来说是半年前了吧,因为个人平时工作安排的也比较满,对于工作中用到的技术才会时时关注时时更新,而八股文作为求职必备的话,确实没有给予过多的关注。上一次更新主要是为了进行一场知识培训,培训内容就是分布式事务相关基础知识,当时参考的书是冰河著作的《深入理解分布式事务 原理与实战》,整本书内容写得很详尽,也比较通俗易懂,大家有兴趣的可以去搜一下。
    另外的工作时间至于一般是研究阿里云系列的云产品,看一下具体哪些产品在自己以后的业务场景中可能用的上,就提前了解学习一下,也算丰富一下视野吧。

    2023-12-22 18:04:26
    赞同 6 展开评论 打赏
  • 问题总能找到解决方案的

    每个技术的产生都离不开技术出现时的时代背景。偏向锁作为Java中synchronized关键字的一种优化手段,他的优势是针对同一个线程的反复访问无需加锁,这就消除了数据在没有竞争的情况下的同步操作,省去了大量关于锁申请的操作,从而提高运行时性能。
    偏向锁的出现在当时肯定还是解决了不少场景的问题的,但随着技术的不断精进,无论是软件还是硬件都在不断优化提升,那么过去落后硬件产生的技术优势,在当前环境下可能就会变成劣势。
    这不仅是针对偏向锁,所有的技术都是一样,都会随着他的开发环境、硬件条件等等在共同进步的。如果保持一成不变一定会被时代抛弃。

    2023-12-22 15:39:39
    赞同 5 展开评论 打赏
  • 你知道偏向锁已经被废弃了吗?谈谈你对此的看法。
    刚看了那篇文章才知道,我们现在jdk用的还是1.8,新版jdk的确有很多改动,对于偏向锁这个,我觉得废弃是很有必要的,毕竟现在单线程的场景非常非常少,然而每次都要从偏向锁开始升级,增加了复杂度

    2023-12-21 15:40:25
    赞同 3 展开评论 打赏
  • 2 我最近才更新过的,最近又大概看了一遍八股文,方便找工作,印象比较深的是 分布式事务的原理吧

    2023-12-21 15:02:54
    赞同 4 展开评论 打赏
  • 1这是时代的进步,也是技术的进步,是一种良性发展,偏向锁在旧时代可能有很好的性能,但是现在已经很少用到了

    2023-12-21 14:53:09
    赞同 5 展开评论 打赏
  • 1偏向锁适用的场景太少了,带来的性能优化相比带来的复杂度已经非常小了,所以很有必要去废除掉

    2023-12-21 14:43:24
    赞同 4 展开评论 打赏
  • 1、你知道偏向锁已经被废弃了吗?谈谈你对此的看法。
    现在的业务已经不存在单线程的业务了,所以偏向锁也就失去了存在的必要

    2023-12-21 14:26:35
    赞同 3 展开评论 打赏
  • 1在单核时代,偏向锁通过减少系统调用,提高单线程性能。但多核时代来了,单线程优势不再。
    偏向锁适用于轻量级同步,但在高并发下容易造成优先级反转或饥饿现象,很难调试。

    2023-12-21 11:55:02
    赞同 3 展开评论 打赏
  • 1、你知道偏向锁已经被废弃了吗?谈谈你对此的看法。
    最近刷到很多博主的时候知道的,偏向锁的确应该废弃了,完全用不到呀,而且实现还很复杂

    2023-12-21 11:49:54
    赞同 2 展开评论 打赏
  • 1多核时代下,多线程程序越来越普遍。偏向锁在这种场景下表现不佳,这是一个技术发展的必然结果。去除偏向锁对多线程程序更友好和高效。对于大型系统来说也更易理解和调试。

    2023-12-21 11:49:55
    赞同 1 展开评论 打赏
  • 你的“八股文”知识库上次更新是什么时候?印象最深的是哪一条?
    上次更新是上次找工作的时候,去年3月份吧,印象比较深的是mysql的事务原理那部分

    2023-12-21 11:22:18
    赞同 1 展开评论 打赏
  • 1、你知道偏向锁已经被废弃了吗?谈谈你对此的看法。
    不是很清楚,但是去了解了下,发现这个锁应用场景不广,的确可以废除,我欢迎这种让技术更加简单的做法

    2023-12-21 11:13:04
    赞同 1 展开评论 打赏
  • 你知道偏向锁已经被废弃了吗?谈谈你对此的看法。
    知道的,偏向锁废弃是好事,去除无用的或者用处不大的东西,让jvm更加简单

    2023-12-21 10:49:09
    赞同 2 展开评论 打赏
  • 1、你知道偏向锁已经被废弃了吗?谈谈你对此的看法。
    刚刚才知道,不过对偏向锁的理解,我原来就觉得用处不大,现在终于去掉了,也是大势所趋吧

    2023-12-21 10:38:17
    赞同 1 展开评论 打赏
滑动查看更多
问答分类:
问答地址:

话题讨论榜

  • 1
    如何让系统具备良好的扩展性?
    奖品池:4000积分,胶囊伞*2,午睡毯*3
    84

    构建一个具备高度可扩展性的系统架构,是应对未来不确定性和业务快速增长的关键。从设计之初便融入可扩展性的理念和技术,需要综合考量多个维度,确保系统能够在不影响现有服务的情况下,灵活应对用户量激增、数据量膨胀和业务复杂度提升的挑战。以下是一些核心策略和实践方法: 1. 模块化与微服务架构 将系统划分为独立的、可互操作的服务模块,是提高可扩展性的基础。微服务架构通过将应用程序分解为一组细粒度服务,...

  • 2
    在JS编程中有哪些常见的编程“套路”或习惯?
    奖品池:4000积分,胶囊伞*2,午睡毯*3
    79

    模块化编程 模块化是将复杂的程序分解为一系列小而专注的模块,每个模块负责一个具体的功能。在JavaScript中,可以使用ES6的import/export语法或者CommonJS(require/module.exports)来实现模块化。这样做不仅提高了代码的可重用性,还使得代码结构清晰,便于维护和测试。 使用函数式编程风格 函数式编程强调使用纯函数(不改变外部状态,输出仅依赖输入)和不...

  • 3
    你见过哪些独特的代码注释?
    奖品池:4000积分,保温杯*2,运动腰包*4
    41

    在软件开发的世界里,代码注释往往被视为程序员之间无声的对话,它不仅承载着技术说明的重任,还能反映出作者的思考过程、心情乃至幽默感。优秀的注释,如同藏匿于逻辑迷宫中的灯塔,为后来者指明方向,同时也为冰冷的代码增添了几分人性的温度。以下是一些独特且富有启发性的代码注释示例,它们或风趣、或深刻,揭示了注释艺术的另一面。 1. 幽默风趣型 // George Orwell was right: Al...

  • 4
    你遇到过哪些触发NPE的代码场景?
    奖品池:4000积分,保温杯*2,运动腰包*4
    43

    在Java编程实践中,识别并妥善处理空指针异常(NPE)是提升代码质量和系统稳定性的重要环节。空指针异常通常在尝试访问或操作一个未初始化或已设置为null的对象时发生,这不仅会导致程序崩溃,还可能隐藏了程序设计中的逻辑缺陷。以下是一些识别潜在NPE场景的方法及其处理策略。 识别潜在NPE触发场景 参数检查:方法的输入参数是最常见的NPE来源之一。如果方法假定传入的对象非空而直接使用,就可能引...

  • 5
    作为一个经典架构模式,事件驱动在云时代为什么会再次流行呢?
    奖品池:4000积分,加湿器*2,腰靠垫*5
    139

    事件驱动架构之所以能在云时代重新获得关注,是因为它能够有效应对现代数字化转型带来的挑战,促进业务敏捷性,提升系统性能,并且与当前云计算、大数据、微服务等技术趋势紧密契合。 EDA在云时代背景下再次流行起来,并成为技术趋势的焦点,主要因为它符合多个现代软件开发的关键需求。比如实时性和响应性、可伸缩性和弹性、解耦合和模块化等。 首先,实时性和响应性。云计算提供了庞大的计算能力,用户期望应用能够提...

  • 相关电子书

    更多
    低代码开发师(初级)实战教程 立即下载
    冬季实战营第三期:MySQL数据库进阶实战 立即下载
    阿里巴巴DevOps 最佳实践手册 立即下载