摘要:
``` (b,a%b) a%b=b时每次至少缩减一半 ab 所以复杂度最多2log(max(a,b)) 证明:a%bb时 bb时 b a/2 那么a%b=a b 阅读全文
摘要:
方法区:存放staic变量,方法签名,类信息,字段等 堆:存放对象数据,string常量 栈:存放对象的引用,操作数,没逃逸但是逃逸分析且被编译器产生逃逸优化的对象数据 阅读全文
摘要:
为减轻GC压力,我们需要注意些什么? 软件如何设计架构 代码如何写 堆空间如何分配(不要把对内存 xmx, xms调的太大,gc时间长) 像小对象不要太多啊,容易经常产生碎片要碎片整理(比如可以对象池啊啥的重用) 大对象不要太大啊,gc时间太长(分页、分块啥的) gc的时候会查看对象是否被jvm调用 阅读全文
摘要:
原子操作:要么发生,要么不发生,不可被分割的 java的内存模式堆内存(主内存)是共享的,但是线程的栈内存是私有的,会拷贝主内存下来通过read,write,store,load(4个原子操作) 不可见,比如A线程改了,还没通知修改主内存,B线程不可见,虽然4个都是原子操作,但是多个步骤就不是了 加 阅读全文