何不随风起,扶摇直上九万里
July 18, 2018

双亲委派模型

从Java虚拟机的角度来讲,只存在两种不同的类加载器:一种是启动类加载器(Bootstrap ClassLoader),这个类加载器用 C++ 语言实现, 是虚拟机自身的一部分:另一种就是所有其它的类加载器, 这些类加载器用Java 语言实现,独立于虚拟机外部,并且全都继承与抽象类 java.lang.ClassLoader。从 Java 开发人员的角度来看,类加载器还可以划分的更细致一些...
July 5, 2018

内存分配与回收策略总结

Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象的内存。对象的内存分配,往大方向讲,就是在堆上分配(但也可能经过JIT编译后被拆散为标量类型并间接地栈上分配),对象主要分配在新生代的Eden区上,如果启动了本地线程分配缓冲,将按线程优先在TLAB上分配。 少数情况下也可能会直接分配在老年代中,分配的规则并不是百分之百固定的,其细节取...
July 4, 2018

JDK8-废弃永久代(PermGen)迎来元空间(Metaspace)

一、背景1.1 永久代(PermGen)在哪里?根据,hotspot jvm结构如下(虚拟机栈和本地方法栈合一起了):上图引自网络,但有个问题:方法区和heap堆都是线程共享的内存区域。关于方法区和永久代:在HotSpot JVM中,这次讨论的永久代,就是上图的方法区(JVM规范中称为方法区)。《Java虚拟机规范》只是规定了有方法区这么个概念和它的作用,并没有规定如何去实现它。在其他JVM...
July 3, 2018

java8小结

滚滚长江东逝水,浪花淘尽英雄,java缔造者们必须让java与时俱进,即使现在lambda和stream的效率不那么尽如人意,但 是这都是必须要经历的,作为一个java developer,积极拥护新技术 /** * // 1. 不需要参数,返回值为 5 * int get(){ * return 5; * } * <p> * ...
June 23, 2018

docker 批量删除命令

杀死所有正在运行的容器docker kill $(docker ps -a -q)删除所有已经停止的容器docker rm $(docker ps -a -q)删除所有未打 dangling 标签的镜像docker rmi $(docker images -q -f dangling=true)删除所有镜像docker rmi $(docker images -q)强制删除镜像名称中包含“d...