JVM、JDK、JRE你分的清吗前言在我们学习Java的时候,就经常听到"需要安装JDK"、"运行需要JRE"、"JVM调优"等等,这里面的JVM、JDK、JRE你真的分得清吗,今天我们就来讲讲它们之间的关系。JVM学过Java的都知道,JAVA是一次编译,到处运行,这主要是通过JVM,JVM是JAVA跨平台的核心,它主要是指的是JAVA虚拟机,JVM是不能单独安装的。JVM主要功能是屏蔽了不同平台之间的差异性,负责将java字节码文件解释成对应系统可以运行的机器指令,我们在不同操作系统上执行JAVA文件的时候,需要安装对应系统的JDK,编写的JAVA程序首先会被编译成.class文件,再把.
JVM、JDK、JRE你分的清吗前言在我们学习Java的时候,就经常听到"需要安装JDK"、"运行需要JRE"、"JVM调优"等等,这里面的JVM、JDK、JRE你真的分得清吗,今天我们就来讲讲它们之间的关系。JVM学过Java的都知道,JAVA是一次编译,到处运行,这主要是通过JVM,JVM是JAVA跨平台的核心,它主要是指的是JAVA虚拟机,JVM是不能单独安装的。JVM主要功能是屏蔽了不同平台之间的差异性,负责将java字节码文件解释成对应系统可以运行的机器指令,我们在不同操作系统上执行JAVA文件的时候,需要安装对应系统的JDK,编写的JAVA程序首先会被编译成.class文件,再把.
大家好,又见面了。本文是笔者作为掘金技术社区签约作者的身份输出的缓存专栏系列内容,将会通过系列专题,讲清楚缓存的方方面面。如果感兴趣,欢迎关注以获取后续更新。在前面的几篇文章中,我们一起聊了下本地缓存的动手实现、本地缓存相关的规范等,也聊了下Google的GuavaCache的相关原理与使用方式。比较心急的小伙伴已经坐不住了,提到本地缓存,怎么能不提一下“地上最强”的CaffeineCache呢?能被小伙伴称之为“地上最强”,可见Caffeine的魅力之大!的确,提到JAVA中的本地缓存框架,Caffeine是怎么也没法轻视的重磅嘉宾。前面几篇文章中,我们一起探索了JVM级别的优秀缓存框架Gu
大家好,又见面了。本文是笔者作为掘金技术社区签约作者的身份输出的缓存专栏系列内容,将会通过系列专题,讲清楚缓存的方方面面。如果感兴趣,欢迎关注以获取后续更新。在前面的几篇文章中,我们一起聊了下本地缓存的动手实现、本地缓存相关的规范等,也聊了下Google的GuavaCache的相关原理与使用方式。比较心急的小伙伴已经坐不住了,提到本地缓存,怎么能不提一下“地上最强”的CaffeineCache呢?能被小伙伴称之为“地上最强”,可见Caffeine的魅力之大!的确,提到JAVA中的本地缓存框架,Caffeine是怎么也没法轻视的重磅嘉宾。前面几篇文章中,我们一起探索了JVM级别的优秀缓存框架Gu
大家好,又见面了。本文是笔者作为掘金技术社区签约作者的身份输出的缓存专栏系列内容,将会通过系列专题,讲清楚缓存的方方面面。如果感兴趣,欢迎关注以获取后续更新。上一篇文章中,我们继GuavaCache之后,又认识了青出于蓝的Caffeine。作为一种对外提供黑盒缓存能力的专门组件,Caffeine基于穿透型缓存模式进行构建。也即对外提供数据查询接口,会优先在缓存中进行查询,若命中缓存则返回结果,未命中则尝试去真正的源端(如:数据库)去获取数据并回填到缓存中,返回给调用方。与GuavaCache相似,Caffeine的回源填充主要有两种手段:Callable方式CacheLoader方式根据执行调
大家好,又见面了。本文是笔者作为掘金技术社区签约作者的身份输出的缓存专栏系列内容,将会通过系列专题,讲清楚缓存的方方面面。如果感兴趣,欢迎关注以获取后续更新。上一篇文章中,我们继GuavaCache之后,又认识了青出于蓝的Caffeine。作为一种对外提供黑盒缓存能力的专门组件,Caffeine基于穿透型缓存模式进行构建。也即对外提供数据查询接口,会优先在缓存中进行查询,若命中缓存则返回结果,未命中则尝试去真正的源端(如:数据库)去获取数据并回填到缓存中,返回给调用方。与GuavaCache相似,Caffeine的回源填充主要有两种手段:Callable方式CacheLoader方式根据执行调
大家好,我是风筝,公众号「古时的风筝」,专注于Java技术及周边生态。文章会收录在JavaNewBee中,更有Java后端知识图谱,从小白到大牛要走的路都在里面。今天说一说GraalVM。GraalVM是Oracle大力发展和想要推广的新一代JVM,目前很多框架都已经渐渐支持GraalVM了,比如我们在用的Spring也已经推出了对GraalVM兼容的工具包了。既然说的这么厉害,那么它到底是何方神圣呢。GraalVM和JVM的关系既然叫做VM,那肯定和JVM有关系的吧。JVM全称Java虚拟机,我们都知道,Java程序是运行在虚拟机上的,虚拟机提供Java运行时,支持解释执行和部分的(JIT)
大家好,我是风筝,公众号「古时的风筝」,专注于Java技术及周边生态。文章会收录在JavaNewBee中,更有Java后端知识图谱,从小白到大牛要走的路都在里面。今天说一说GraalVM。GraalVM是Oracle大力发展和想要推广的新一代JVM,目前很多框架都已经渐渐支持GraalVM了,比如我们在用的Spring也已经推出了对GraalVM兼容的工具包了。既然说的这么厉害,那么它到底是何方神圣呢。GraalVM和JVM的关系既然叫做VM,那肯定和JVM有关系的吧。JVM全称Java虚拟机,我们都知道,Java程序是运行在虚拟机上的,虚拟机提供Java运行时,支持解释执行和部分的(JIT)
【易错问题】MajorGC和FullGC的区别是什么?触发条件呢?相信大多数人的理解是MajorGC只针对老年代,FullGC会先触发一次MinorGC,不知对否?我参考了R大的分析和介绍,总结了一下相关的说明和分析结论。在基于HotSpotVM的基础角度针对HotSpotVM的实现,它里面的GC其实准确分类只有两大种:PartialGC(部分回收模式)PartialGC代表着并不收集整个GC堆的模式YoungGenerationGC(新生代回收模式):它主要是进行回收新生代范围内的内存对象的GC回收器。Old/TenuredGenerationGC(老年代回收模式):它主要是针对于回收老年代
【易错问题】MajorGC和FullGC的区别是什么?触发条件呢?相信大多数人的理解是MajorGC只针对老年代,FullGC会先触发一次MinorGC,不知对否?我参考了R大的分析和介绍,总结了一下相关的说明和分析结论。在基于HotSpotVM的基础角度针对HotSpotVM的实现,它里面的GC其实准确分类只有两大种:PartialGC(部分回收模式)PartialGC代表着并不收集整个GC堆的模式YoungGenerationGC(新生代回收模式):它主要是进行回收新生代范围内的内存对象的GC回收器。Old/TenuredGenerationGC(老年代回收模式):它主要是针对于回收老年代