首页 > 其他分享 >转载联想面经

转载联想面经

时间:2023-05-03 18:58:47浏览次数:44  
标签:重入 队列 StringBuffer 面经 重用 联想 线程 转载 等待

JVM:

1. JVM的内存划分

2. 什么情况下会导致JVM栈溢出

3. 垃圾回收的常见算法

4. 什么样的对象会直接进入老年代

Java基础:

5. StringBuffer和StringBuilder区别

6. 有没有看StringBuilder的源码,多线程时StringBuilder为什么不安全,可不可以举个例子

7. StringBuffer怎么上锁的

StringBuffer 是线程安全的,其内部的方法都是使用 synchronized 关键字进行同步的,以保证多个线程同时访问 StringBuffer 对象时的线程安全性。
当一个线程获取了 StringBuffer 对象的锁之后,其他线程将被阻塞等待锁的释放,直到获取到锁才能访问该对象。这样就能保证在多线程环境下,对 StringBuffer 对象的操作是同步的,不会出现数据竞争和数据不一致的情况。

8. 自己项目中有没有用到这个上锁的方法

9. synchronized的锁状态,可以降级吗

10. 了解volatile关键字吗

11. 可重用锁的实现原理

重用锁:一个线程,如果抢占了互斥锁资源,而在锁释放之前,再去竞争同一把锁的时候,不需要等待只需要记录重入次数就可以了。
可重用锁(ReentrantLock)是一种可重入锁,可以被同一个线程多次获取锁,而不会导致死锁。它的实现原理主要依赖于以下几个方面:

CAS(Compare and Swap)操作:可重用锁的实现依赖于原子操作,也就是 CAS 操作。CAS 操作是一种无阻塞的原子操作,它通过比较内存地址中的值和预期值是否相等,来决定是否更新内存地址中的值。如果内存地址中的值和预期值相等,则将新值写入内存地址中,否则不做任何操作。

线程等待队列:可重用锁会为每个等待线程创建一个节点,将节点加入到等待队列中。当一个线程尝试获取锁时,如果锁已被其他线程占用,则将该线程的节点加入到等待队列中,并将该线程挂起。当锁被释放时,将从等待队列中唤醒一个线程继续执行。

锁的状态:可重用锁维护了一个状态变量,表示锁的状态。当一个线程获取锁时,如果锁未被占用,则将锁的状态设置为已占用,并将持有锁的线程设置为当前线程。如果锁已被占用,则判断持有锁的线程是否为当前线程,如果是,则将锁的状态加 1,并返回 true;否则将线程加入到等待队列中,并将该线程挂起。

重入计数器:可重用锁维护了一个重入计数器,用于记录当前线程获取锁的次数。当一个线程获取锁时,如果锁已被该线程占用,则将重入计数器加 1,并返回 true;否则将锁的状态设置为已占用,并将持有锁的线程设置为当前线程,并将重入计数器设置为 1。

综上所述,可重用锁的实现原理主要依赖于 CAS 操作、线程等待队列、锁的状态和重入计数器等机制,通过这些机制可以实现可重入锁,并且可以避免死锁的问题。

https://www.zhihu.com/zvideo/1526976773321891840

12. AQS中线程之间同步的方法

13. 线程池的七大参数

数据库

14. 索引失效的几种情况

15. MySQL的redolog

16. MySQL的两阶段提交

17. 有没有遇到过数据库死锁,举个例子

https://juejin.cn/post/7072000882128191518

项目相关:

一些项目的问题。。。

其他:

18. 用过feignclind吗

19. 微服务中的服务与服务的互相调用是怎么实现的

20. 了解过RabbitMQ吗,用过吗

21. 查看文件最后几百行的Linux命令

22. 查看JVM内存的命令

23. 口述跳台阶的思路

24. 实际用过哪些设计模式

25. spring bean的生命周期

转载:

标签:重入,队列,StringBuffer,面经,重用,联想,线程,转载,等待
From: https://www.cnblogs.com/chenyi502/p/17369248.html

相关文章

  • IDEA2022.1.2(转载)
    安装&破解的时间:2022-09-011.下载IDEA下载地址:https://www.jetbrains.com/idea/download/other.html选择版本:2022.1.2选择绿色版:2022.1.2-WindowsZIPArchive(zip)解压到自定义目录:D:\dev_tools\IntelliJ\ideaIU-2022.1.2.win2.下载破解包下载地址:https://wwi.lanzou......
  • 转载:杨振宁清华大学演讲录:美与物理
    https://mp.weixin.qq.com/s/7l9QjaC-OYmwrAY7IWTpDg:让我现在回到主题,"美与物理学",物理学我刚才讲了有三个领域,大的领域,(1)、(2)、(3),这三个领域,每一个领域有不同的美。先讲在实验,比如说是我们讲虹跟霓,我想在座每一位,小时候看见了虹跟霓都会说这是非常之美,等到你年纪稍微大了一点......
  • [转载]在notepad++中使用NppExec编译代码
    作者:凌烟阁_天策   作为一个notepad++的使用者,你是否想过,在一步简单的操作中,就可以利用关联的编译器来编译代码?你或者已经利用nppExec扩展来编译文件,但是如果要自动执行又该如何?如果你想用tcc编译c文件,用g++编译cpp文件,用gawk自动解释awk文件,而不用调用编译器或者解释器,又将如......
  • 解决联想拯救者开机运行内存过高
    1、使用win+R键打开cmd窗口2、输入MdSched进入内存诊断3、选择立即重启诊断缺点:过一段时间内存有开始增加了,这种方式只能解决一段时间,不能一劳永逸。时间:2023-04-29......
  • Mapbox Style 规范(转载)
    Mapbox致力于打造全球最漂亮的个性化地图。这里记录下其Web端APIMapboxGLJS的地图样式规范Style的各个配置项:必填项会加上*,方便根据目录进行查看1.version*version:版本号(必填,且值必须为8)"version":82.namename:名称(可选,用于给style取名,方便阅读)"name"......
  • 转载:ARM 内联汇编语法
    https://blog.csdn.net/myprogram_player/article/details/121372941ARM内联汇编语法:asmasm-qualifiers(AsemblemTemplate:OutputOperands[:InputOperands[:Clobbers]]) (1)asm​这块直接写做__asm__​表示这是一段内联汇编。(2)asm-qualifiers​这里取值......
  • 联想移动被卖 消费者和国产手机阵营很受伤
    经历2003年的短暂辉煌后,在四面楚歌声中,国产手机巨头开始集体大溃败.夏新、波导、熊猫、南方高科……一个个曾经的国产手机巨头,在洋品牌“坚船利炮”的进攻下,要么“出身未捷身先死”,要么身负重伤,苟延残喘,要么及时抽身,另寻他路.巨头们的惨淡经营给国产阵营蒙上了一层绝望阴......
  • 区间DP小结(附经典例题) 转载
    区间DP转载自:原博客一、定义​区间DP是线性动态规划的扩展,适用场景为每段区间的最优解可以通过更小区间的最优解得到。所以我们一般的解题思路都是先在小区间得到最优解,然后总结出递推公式,利用小区间的最优解求大区间的最优解。二、实现伪代码//mst(dp,0)初始化dp数组for......
  • 线上问题排查回答(转载)
    面试官:「你是怎么定位线上问题的?」这个面试题我在两年社招的时候遇到过,前几天面试也遇到了。我觉得我每一次都答得中规中矩,今天来梳理复盘下,下次又被问到的时候希望可以答得更好。下一次我应该会按照这个思路去答:1、如果线上出现了问题,我们更多的是希望由监控告警发现我们出了......
  • (转载)MFC下一个类调用另一个类中变量的解决方法
    https://blog.csdn.net/xiaqunfeng123/article/details/39207517/ 假如有类A,类B两个类。如果想在B中调用A的成员函数,该怎么办呢?方法一:在类B的cpp文件中包含A类的头文件,然后在B的需要调用A的函数的函数中,添加#include"A.h"B::funcB(){Aa;a.funcA();}由于类A的funcA不是静态(st......