摘要:这些异常最好不好出现,下面复现,只是为了让我们对这些异常有一个直观的认识 堆溢出 可以通过参数-XX:+PrintCommandLineFlags,查看堆初始值和最大值,若初始值过小,堆会进行自动扩容(扩容前会触发GC),频繁的GC或者扩容肯定是消耗时间的,因此看系统执行情况,合理配置初始堆大小 为
阅读全文
摘要:对象在内存中的布局 1.对象头 mark word class pointer(有些地方写作klass word) array length(如果常见的对象是数组则有这项,若不是,则不存在这一项) 2.实例数据 3.对齐填充 对象头 在32位系统中,mark word占4个字节,class poin
阅读全文
摘要:根据JAVA虚拟机规范,JAVA虚拟机所管理的内存包括以下几个运行时数据区域 1.程序计数器 可以看作是当前线程所执行的字节码行号指示器。在虚拟机概念模型中(各虚拟机有自己的实现),字节码解释器就是通过改变这个程序计数器的值来选择需要执行的下一条字节码指令。 是线程私有的。JAVA是多线程是通过轮询
阅读全文
摘要:不知道使用的感觉好高大上,使用的感觉也就那样(编程容易)。 简单描述,Lambda运行使用简洁的代码来创建只有一个抽象方法的接口的实例(符合这种要求的接口我们把它们叫做函数式接口,JAVA8提供了一些函数式接口可以参考https://www.cnblogs.com/sxrtb/p/12685052.
阅读全文