![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java面试
文章平均质量分 57
weixin_38328444
这个作者很懒,什么都没留下…
展开
-
2021-04-29
List<Long> list = new ArrayList<>();list.add(1L);1、int a = 1;2、Long a = 1L;3、Integer a = 1;if (list.contains(a)) { //} else { //}原创 2021-04-29 16:29:39 · 85 阅读 · 0 评论 -
锁升级过程
首先是无锁状态线程1会生成锁记录,将锁标识指向锁对象生成无锁的displace mark word通过cas修改锁对象mark word :成功,则获取锁 失败:比较锁对象mark word中当前线程是否是自己,是则锁重入,不是下面分情况锁重入:再生成一条锁记录,锁标识指向锁对象,displace mark word置为Null不是锁重入:检查线程是否存活,死:撤销偏向锁 活:检查偏向线程锁记录引用是否偏向锁对象(线程是否还在同步代码块) 是则升级轻量级锁(在安全点内,找到偏向线.原创 2021-04-20 09:47:13 · 139 阅读 · 0 评论 -
java并发问题
并发存在的问题:可见性:要求一个线程对变量的操作改变对另外一个线程要是可以看见的。例如:当线程1读取主内存中变量到工作内存,线程2也读取并在工作内存改变其值,返回主内存,但线程1还是默认自己工作内存中的值。 原子性:在一次或多次操作中,要么所有的操作都执行不受其他干扰,要么所有的操作都不执行。 有序性:程序中代码的执行顺序,java编译和执行时会对代码进行优化,可能执行顺序与我们编写顺序不一致java内存模型:解决原子性问题:synchronized保证只有一个线程拿到锁,能够进入代码原创 2021-04-07 19:00:58 · 188 阅读 · 0 评论 -
java面试题
final 有什么用?被final修饰的类不可以被继承 被final修饰的方法不可以被重写 被final修饰的变量不可以被改变,被final修饰不可变的是变量的引用地址,地址中的内容是可以改变的。 final int b=3;b=2;//将报错 static存在的主要意义 static的主要意义是在于创建独立于具体对象的域变量或者方法。以致于即使没有创建对象,也能使用属性和调用方法! static关键字还有一个比较关键的作用就是 用来形成静态代码块以优化程序...原创 2021-03-26 16:57:02 · 80 阅读 · 0 评论