
jvm
柠檬草。
这个作者很懒,什么都没留下…
展开
-
【JVM】新生代 8:1:1 原因
面试的时候堆的垃圾回收是必不可少的,但是也有一部分面试官,不问你垃圾回收,问你新生代为什么是8:1:1 GC是统计学测算出内存使用超过98%以上时,内存应该被minor gc时回收一次。但实际应用中,我们不能较真的只给他们留下2%,换句话说当内存使用达到98%时才GC 就有点晚了,应该是多一些预留10%内存空间。当回收时,将Eden区和Survivor from中还存活着的对象一次性复制到另一...原创 2019-10-12 19:43:32 · 2203 阅读 · 3 评论 -
synchronize和volatile的区别
前言 面试的时候经常被问到synchronized与volatile的区别,你可能会奇怪他俩有什么关系吗,如果觉着关系不大,但是又不能直接说,只能回答他们的共性和区别就ok了。 说到这个两个,那就不得不先说一下线程的安全保证 多线程只有保证如下基本特性时才能保证安全: 可见性:线程都是基于cpu的运算,cpu有缓冲区,所以每次在计算的时候都会把数据加载到缓冲区中计算,那计算好的数据最终被会写到主存...原创 2019-10-12 12:09:30 · 260 阅读 · 0 评论 -
volatile不保证原子性
什么是原子性 原子性是指一个操作是不可中断的,要么全部执行成功要么全部执行失败,有着“同生共死”的感觉。及时在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程所干扰。 让大家看一个直观的例子: int a = 10; //1 a++; //2 int b=a; //3 a = a+1; //4 上面这四个语句中只有第1个语句是原子...原创 2019-06-01 10:04:58 · 351 阅读 · 2 评论