面试系列
挖坑埋你
这个作者很懒,什么都没留下…
展开
-
面试系列 | 值传递和引用传递深度讲解
面试题目 public class aaa { public static void main(String[] args) { Integer a = 1; Integer b = 2; System.out.printf("a = %s, b = %s\n", a, b); swap(a, b); System.out.printf("a = %s, b = %s\n...转载 2018-09-26 10:38:40 · 265 阅读 · 0 评论 -
面试系列 | 一个线程OOM,进程里其他线程还能运行么?
这题是一个网友@大脸猫爱吃鱼给我的提问,出自今年校招美团三面的一个真题。大致如下: 一个进程有3个线程,如果一个线程抛出oom,其他两个线程还能运行么? 先说一下答案,答案是还能运行。 不瞒大家说,真在面试中,我遇到这一题,我估计也是答错。因为我初看到这一题,内心嘿嘿一笑,觉得这题是在考察JVM的内存结构。我第一反应是OOM的常见情况堆溢出,也就是下面的这种异常: java.lang.OutO...转载 2018-09-21 14:16:05 · 1596 阅读 · 0 评论 -
面试系列 | 简单谈谈你对多线程并发锁使用时的一些优化经验?
首先加锁会带来性能上的损坏,但是加锁本身不会带来多少性能消耗,性能消耗主要是在获取锁的过程。如果只有一个线程竞争锁,此时并不存在多线程竞争的情况,那么 JVM 会进行优化,这时加锁带来的性能消耗基本可以忽略。因此,优化锁的使用可以避免不必要的线程竞争,不仅可以提高程序性能,也能避免不规范加锁可能造成线程死锁问题,提高程序健壮性。 实践中常见的优化策略如下: 尽量不要锁住方法 在普通成员函数上加锁...转载 2018-09-21 14:34:38 · 1082 阅读 · 0 评论