03 2024 档案
京东一面挂在了CAS算法的三大问题上,痛定思痛不做同一个知识点的小丑
摘要:写在开头 在介绍synchronized关键字时,我们提到了锁升级时所用到的CAS算法,那么今天我们就来好好学一学这个CAS算法。 CAS算法对build哥来说,可谓是刻骨铭心,记得是研二去找实习的时候,当时对很多八股文的内容浅尝辄止,很多深奥的知识点只是知道个概念,源码看的也不深,代码量也不够,京 阅读全文
posted @ 2024-03-30 09:14 JavaBuild 阅读(572) 评论(0) 推荐(1) 编辑
工作中总结的30个常用Linux指令,实在记不住就别硬记了,看这篇就够了
摘要:写在开头 最近发现自己记忆力严重下滑,很多sql命令,linux命令都记不住,特别是linux命令,很多命令参数很多,一段时间不用,再去使用就需要从网上重查了,很烦人,为此花了一些时间把之前笔记中的Linux命令给整理了一下,汇总出30个常用的分享出来,下次再想不起来直接看这篇文章就行了。 1、Li 阅读全文
posted @ 2024-03-26 10:37 JavaBuild 阅读(4612) 评论(6) 推荐(12) 编辑
面试官:小伙子知道synchronized的优化过程吗?我:嘚吧嘚吧嘚,面试官:出去!
摘要:写在开头 面试官:小伙子,多线程中锁用过吗? 我:那是自然! 面试官:那你知道synchronized的优化吗? 我:synchronized作为重锁,开销大,在早期不被推荐使用,后期进行了优化,至于怎么优化的话,您让我想想哈... 面试官:好的,那你出去好好想吧! 对于synchronized的优 阅读全文
posted @ 2024-03-24 22:24 JavaBuild 阅读(470) 评论(2) 推荐(3) 编辑
是时候来唠一唠synchronized关键字了,Java多线程的必问考点!
摘要:写在开头 在之前的博文中,我们介绍了volatile关键字,Java中的锁以及锁的分类,今天我们花5分钟时间,一起学习一下另一个关键字:synchronized。 synchronized是什么? 首先synchronized是Java中的一个关键字,所谓关键字,就是Java中根据底层封装所赋予的一 阅读全文
posted @ 2024-03-23 11:23 JavaBuild 阅读(363) 评论(0) 推荐(1) 编辑
您真的了解Java中的锁吗?这7种不同维度下的锁知道吗?
摘要:写在开头 在上几篇博文中,我们聊到过volatile关键字,用它修饰变量可以保证可见性与有序性,但它并不是锁,在使用时并不会阻塞线程,且不保证原子性,属于一种轻量级、高效的同步方式,因此,如果我们的使用场景仅需要保持可见性或者有序性,那可选择volatile,但如果必须保证原子性的话,volatil 阅读全文
posted @ 2024-03-20 22:33 JavaBuild 阅读(520) 评论(0) 推荐(1) 编辑
关于volatile与指令重排序的探讨
摘要:写在开头 在之前的学习我们了解到,为了充分利用缓存,提高程序的执行速度,编译器在底层执行的时候,会进行指令重排序的优化操作,但这种优化,在有些时候会带来 有序性 的问题。 那何为有序性呢?我们可以通俗理解为:程序执行的顺序要按照代码的先后顺序。 当然,之前我们还说过发生有序性问题时,我们可以通过给变 阅读全文
posted @ 2024-03-20 08:29 JavaBuild 阅读(259) 评论(0) 推荐(1) 编辑
面试官:volatile如何保证可见性的,具体如何实现?
摘要:写在开头 在之前的几篇博文中,我们都提到了 volatile 关键字,这个单词中文释义为:不稳定的,易挥发的,在Java中代表变量修饰符,用来修饰会被不同线程访问和修改的变量,对于方法,代码块,方法参数,局部变量以及实例常量,类常量多不能进行修饰。 自JDK1.5之后,官网对volatile进行了语 阅读全文
posted @ 2024-03-19 08:35 JavaBuild 阅读(330) 评论(0) 推荐(0) 编辑
走进volatile的世界,探索它与可见性,有序性,原子性之间的爱恨情仇!
摘要:写在开头 在之前的几篇博文中,我们都提到了 volatile 关键字,这个单词中文释义为:不稳定的,易挥发的,在Java中代表变量修饰符,用来修饰会被不同线程访问和修改的变量,对于方法,代码块,方法参数,局部变量以及实例常量,类常量多不能进行修饰。 自JDK1.5之后,官网对volatile进行了语 阅读全文
posted @ 2024-03-18 08:40 JavaBuild 阅读(282) 评论(0) 推荐(4) 编辑
面试官:小伙子,能聊明白JMM给你SSP!我:嘚吧嘚吧一万字,直接征服面试官!
摘要:写在开头 面试官:小伙子,JMM了解吗? 我:JMM(Java Memory Model),Java内存模型呀,学过的! 面试官:那能给我详细的聊一聊吗,越详细越好! 我:嗯~,确定越详细越好?起码得说一万字,您有时间听完? 面试官:你要是真能说一万字全是干货的话,我当场拍板要你,给你SSP! 我: 阅读全文
posted @ 2024-03-16 18:19 JavaBuild 阅读(323) 评论(1) 推荐(0) 编辑
一张图搞清楚wait、sleep、join、yield四者区别,面试官直接被征服!
摘要:写在开头 在线程的生命周期中,不同状态之间切换时,可以通过调用sleep()、wait()、join()、yield()等方法进行线程状态控制,针对这一部分知识点,面试官们也会做做文章,比如问你这些方法的作用以及之间的区别。 那么今天我们就一起来总结一下这几个方法的作用及区别,先画一个思维导图梳理一 阅读全文
posted @ 2024-03-14 22:24 JavaBuild 阅读(1055) 评论(0) 推荐(3) 编辑
在Java中如何优雅的停止一个线程?可别再用Thread.stop()了!
摘要:写在开头 经过上几篇博文的学习,我们知道在Java中可以通过new Thread().start()创建一个线程,那今天我们就来思考另外一个问题:线程的终止 自然终止有两种情况: 1. 线程的任务执行完成; 2. 线程在执行任务过程中发生异常。 start之后,如果线程没有走到终止状态,我们该如何停 阅读全文
posted @ 2024-03-13 12:11 JavaBuild 阅读(1243) 评论(0) 推荐(0) 编辑
面试官:线程调用2次start会怎样?我支支吾吾没答上来
摘要:写在开头 在写完上一篇文章《Java面试必考题之线程的生命周期,结合源码,透彻讲解!》后,本以为这个小知识点就总结完了。 但刚刚吃晚饭时,突然想到了多年前自己面试时的亲身经历,决定再回来补充一个小知识点! 记得是一个周末去面试Java后端开发工程师岗位,面试官针对Java多线程进行了狂轰乱炸般的考问 阅读全文
posted @ 2024-03-12 08:21 JavaBuild 阅读(540) 评论(0) 推荐(3) 编辑
Java面试必考题之线程的生命周期,结合源码,透彻讲解!
摘要:写在开头 在前面的几篇博客里,我们学习了Java的多线程,包括线程的作用、创建方式、重要性等,那么今天我们就要正式踏入线程,去学习更加深层次的知识点了。 第一个需要学的就是线程的生命周期,也可以将之理解为线程的几种状态,以及互相之间的切换,这几乎是Java多线程的面试必考题,每一年都有大量的同学,因 阅读全文
posted @ 2024-03-10 21:23 JavaBuild 阅读(548) 评论(0) 推荐(2) 编辑
面试准备不充分,被Java守护线程干懵了,面试官主打一个东西没用但你得会
摘要:写在开头 面试官:小伙子请聊一聊Java中的精灵线程? 我:什么?精灵线程?啥时候精灵线程? 面试官:精灵线程没听过?那守护线程呢? 我:守护线程知道,就是为普通线程服务的线程嘛。 面试官:没了?守护线程的特点,怎么使用,需要注意啥,Java中经典的守护线程都有啥? 我:不知道。。。 这的天,面试一 阅读全文
posted @ 2024-03-09 16:17 JavaBuild 阅读(696) 评论(3) 推荐(1) 编辑
Java面试挂在线程创建后续,不要再被八股文误导了!创建线程的方式只有1种
摘要:写在开头 在上篇博文中我们提到小伙伴去面试,面试官让说出8种线程创建的方式,而他只说出了4种,导致面试挂掉,在博文中也给出了10种线程创建的方式,但在文章的结尾我们提出:真正创建线程的方式只有1种,剩下的衍生品多是套壳,那么在这篇文章中,我们来解释一下缘由! 线程创建方式可先阅读这篇文章:面试官让说 阅读全文
posted @ 2024-03-08 08:23 JavaBuild 阅读(393) 评论(0) 推荐(0) 编辑
面试官让说出8种创建线程的方式,我只说了4种,然后挂了。。。
摘要:写在开头 昨天有个小伙伴私信说自己面试挂在了“Java有几种创建线程的方式”上,我问他怎么回答的,他说自己有背过八股文,回答了:继承Thread类、实现Runnable接口、实现Callable接口、使用线程池这四种,但是面试官让说出8种创建方式,他没说出来,面试就挂了,面试官给的理由是:只关注八股 阅读全文
posted @ 2024-03-07 10:32 JavaBuild 阅读(1130) 评论(2) 推荐(4) 编辑
关于Java并发多线程的一点思考
摘要:写在开头 在过去的2023年双11活动中,天猫的累计访问人次达到了8亿,京东超60个品牌销售破10亿,直播观看人数3.0亿人次,订单支付频率1分钟之内可达百万级峰值,这样的瞬间高并发活动,给服务端带来的冲击可想而知,就如同医院那么多医生,去看病挂号时,有时候都需要排队,对于很多时间就是金钱的场景来说 阅读全文
posted @ 2024-03-06 08:50 JavaBuild 阅读(429) 评论(0) 推荐(2) 编辑
一文讲明白Java中线程与进程、并发与并行、同步与异步
摘要:写在开头 ok,everybody,在过去的两周内,我们大体上讲完了Java的集合,在最后我们探讨了关于HashMap线程不安全的原因,又提出了ConcurrentHashMap这个线程安全的集合解决方案,那么在接下来的2-3周内,我们就一起来学习一下Java中的并发多线程。 在开始学习之前,我们必 阅读全文
posted @ 2024-03-05 08:30 JavaBuild 阅读(607) 评论(0) 推荐(1) 编辑
面试官:集合使用时应该注意哪些问题?我:应该注意该注意的问题!
摘要:写在开头 面试官:“小伙子,java的集合学过吗?” 我:“肯定学过呀!”,这时候的我自信满满,手撕集合八股文嘛,早已背的滚瓜烂熟了呀。 面试官:“那你来讲讲集合使用时,应该注意哪些问题吧” 我:“额,这,我想想哈。”,什么!这面试官不按套路出牌,上来就问注意事项,打我一个措手不及啊。 我:“嗯 ~ 阅读全文
posted @ 2024-03-04 08:33 JavaBuild 阅读(487) 评论(0) 推荐(3) 编辑
为什么HashMap的键值可以为null,而ConcurrentHashMap不行?
摘要:写在开头 昨天在写《HashMap很美好,但线程不安全怎么办?ConcurrentHashMap告诉你答案!》这篇文章的时候,漏了一个知识点,直到晚上吃饭的时候才突然想到,关于ConcurrentHashMap在存储Key与Value的时候,是否可以存null的问题,按理说这是一个小问题,但buil 阅读全文
posted @ 2024-03-03 08:19 JavaBuild 阅读(1525) 评论(0) 推荐(2) 编辑
HashMap很美好,但线程不安全怎么办?ConcurrentHashMap告诉你答案!
摘要:写在开头 在《耗时2天,写完HashMap》这篇文章中,我们提到关于HashMap线程不安全的问题,主要存在如下3点风险: 风险1: put的时候导致元素丢失;如两个线程同时put,且key值相同的情况下,后一个线程put操作覆盖了前一个线程的操作,导致前一个线程的元素丢失。 风险2: put 和 阅读全文
posted @ 2024-03-02 15:15 JavaBuild 阅读(491) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示