JVM 基础篇06 —— 内存分配与回收策略

内存分配与回收策略对象的内存分配,就是在堆上分配(也可能经过JIT编译后被拆散非标量类型并间接在栈上分配),对象主要分配在新生代的Eden区上,少数情况下可能直接分配在老年代,分配规则不固定,取决于当前使用的垃圾收集器组合以及相关的参数配置。对象优先在 Eden 分配大多数情况下,对象在新生代 Ed
java Java虚拟机 JVM 2020年07月17日 580次浏览

JVM 基础篇05 —— *JVM(ZGC为例)垃圾收集器

我们熟知的如G1收集器是2006年时引入HotspotVM的。当时最大的亚马逊网络服务实例只有1vCPU和1.7GB内存,而现在亚马逊在17年就已经推出8-16TB内存的虚拟服务器。(对,你没看错是内存!单位是TB,还是两位数!啥样的可以自行了解。反正我也没用过,更用不起😂)。像以前Hotspot
java Java虚拟机 JVM 2020年07月16日 650次浏览

JVM 基础篇04 —— JVM(HotSpot为例)垃圾收集器

HotSpot垃圾收集器HotSpot虚拟机提供了多种垃圾收集器,每种收集器都有各自的特点,虽然我们要对各个收集器进行比较,但并非为了挑选出一个最好的收集器。我们选择的只是对具体应用最合适的收集器。新生代垃圾收集器Serial垃圾收集器(单线程)只开启一条GC线程进行垃圾回收,并且在垃圾收集过程中停
java Java虚拟机 JVM 2020年07月16日 579次浏览

JVM 基础篇03 —— 垃圾收集策略与算法

程序计数器、虚拟机栈、本地方法栈随线程而生,也随线程而灭;栈帧随着方法的开始而入栈,随着方法的结束而出栈。这几个区域的内存分配和回收都具有确定性,在这几个区域内不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就跟随着回收了。而对于Java堆和方法区,我们只有在程序运行期间才能知道会创建
java Java虚拟机 JVM 2020年07月15日 535次浏览

JVM 基础篇02 —— JVM (HotSpot为例)中的对象

对象的内存布局在 HotSpot 虚拟机中,对象的内存布局分为以下 3 块区域:对象头(Header)实例数据(Instance Data)对齐填充(Padding)对象头对象头记录了对象在运行过程中所需要使用的一些数据:哈希码GC 分代年龄锁状态标志线程持有的锁偏向线程 ID偏向时间戳对象头可能包
java Java虚拟机 JVM 2020年07月14日 539次浏览

JVM 基础篇01 —— JVM 内存结构

Java虚拟机的内存空间分为5个部分:程序计数器Java虚拟机栈本地方法栈堆方法区JDK1.8同JDK1.7比,最大的差别就是:元数据区取代了永久代。元空间的本质和永久代类似,都是对JVM规范中方法区的实现。不过元空间与永久代之间最大的区别在于:元数据空间并不在虚拟机中,而是使用本地内存。程序计数器
java Java虚拟机 JVM 2020年07月13日 592次浏览

SpringCloud20 —— 进阶篇计划

一个不知道什么时候去实现的flag
java SpringCloud 微服务 2020年07月06日 564次浏览

SpringCloud 19 —— 配置中心之Nacos

前面在注册中心章节已经讲Nacos的介绍和基本使用讲解了,下面我们就直接来讲Nacos的配置中心功能,这一点是很不错的,把注册中心和配置中心功能合并在一起,减少了运维部署。
java SpringCloud 微服务 2020年07月03日 713次浏览

SpringCloud 18 —— 配置中心之Apollo (下)

Apollo准备工作环境要求Java:1.7+Guava:15.0+Apollo客户端默认会引用Guava19,如果你的项目引用了其它版本,请确保版本号大于等于15.0
java SpringCloud 微服务 2020年06月26日 835次浏览

SpringCloud 18 —— 配置中心之Apollo (中)

单机部署GitHub获取创建数据库:运行apollo-build-scripts-master\sql中的apolloconfigdb.sql和apolloportaldb.sql两个sql文件。修改配置:修改demo.sh文件的config和portaldb配置:运行demo.shstart,启动
SpringCloud 微服务 2020年06月07日 985次浏览