草庐IT

重新认识下JVM级别的本地缓存框架Guava Cache(3)——探寻实现细节与核心机制

大家好,又见面了。本文是笔者作为掘金技术社区签约作者的身份输出的缓存专栏系列内容,将会通过系列专题,讲清楚缓存的方方面面。如果感兴趣,欢迎关注以获取后续更新。通过《重新认识下JVM级别的本地缓存框架GuavaCache——优秀从何而来》一文,我们知道了GuavaCache作为JVM级别的本地缓存组件的诸多暖心特性,也一步步地学习了在项目中集成并使用GuavaCache进行缓存相关操作。GuavaCache作为一款优秀的本地缓存组件,其内部很多实现机制与设计策略,同样值得开发人员深入的掌握与借鉴。作为系列专栏,本篇文章我们将进一步探讨下GuavaCache实现层面的一些逻辑与设计策略,让我们可以

重新认识下JVM级别的本地缓存框架Guava Cache(3)——探寻实现细节与核心机制

大家好,又见面了。本文是笔者作为掘金技术社区签约作者的身份输出的缓存专栏系列内容,将会通过系列专题,讲清楚缓存的方方面面。如果感兴趣,欢迎关注以获取后续更新。通过《重新认识下JVM级别的本地缓存框架GuavaCache——优秀从何而来》一文,我们知道了GuavaCache作为JVM级别的本地缓存组件的诸多暖心特性,也一步步地学习了在项目中集成并使用GuavaCache进行缓存相关操作。GuavaCache作为一款优秀的本地缓存组件,其内部很多实现机制与设计策略,同样值得开发人员深入的掌握与借鉴。作为系列专栏,本篇文章我们将进一步探讨下GuavaCache实现层面的一些逻辑与设计策略,让我们可以

idea中 VM options配置

VMoptions这项需要我们自己填写,我填的是VMoptions:-Xms256m-Xmx256m-XX:PermSize=32M-XX:MaxPermSize=128m每一项以空格隔开  参数说明-Xms256m:设置JVM初始堆内存为256m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。-Xmx256m:设置JVM最大堆内存为256m。-Xss128k:设置每个线程的栈大小。JDK5.0以后每个线程栈大小为1M,之前每个线程栈大小为256K。应当根据应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还

idea中 VM options配置

VMoptions这项需要我们自己填写,我填的是VMoptions:-Xms256m-Xmx256m-XX:PermSize=32M-XX:MaxPermSize=128m每一项以空格隔开  参数说明-Xms256m:设置JVM初始堆内存为256m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。-Xmx256m:设置JVM最大堆内存为256m。-Xss128k:设置每个线程的栈大小。JDK5.0以后每个线程栈大小为1M,之前每个线程栈大小为256K。应当根据应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还

java导出功能(多个sheet页数据导出)

java导出功能(多个sheet页数据导出)JavaWeb-封装工具类java导出功能(多个sheet页数据导出)前言一、实现的效果二、调用工具类三、详细工具类仰天大笑出门去,我辈岂是蓬蒿人前言大概内容:自定义格式的标题,及对应的数据,每个sheet页的表头及数据都可以不同,具体根据实际业务去变更,可以仿照这个例子去编写,这里提供的是最基础的多sheet页导出,如果需要多行表头复杂业务的多sheet页导出可参考我另一篇复杂表头,多行表头导出,如果导出不确定行数列数跟随业务的增长而变动的导出参考另一篇不确定行数列数数据的工具类2023.3.29补充上面两个链接老是失效,在我主页搜索对应的名称就能

java导出功能(多个sheet页数据导出)

java导出功能(多个sheet页数据导出)JavaWeb-封装工具类java导出功能(多个sheet页数据导出)前言一、实现的效果二、调用工具类三、详细工具类仰天大笑出门去,我辈岂是蓬蒿人前言大概内容:自定义格式的标题,及对应的数据,每个sheet页的表头及数据都可以不同,具体根据实际业务去变更,可以仿照这个例子去编写,这里提供的是最基础的多sheet页导出,如果需要多行表头复杂业务的多sheet页导出可参考我另一篇复杂表头,多行表头导出,如果导出不确定行数列数跟随业务的增长而变动的导出参考另一篇不确定行数列数数据的工具类2023.3.29补充上面两个链接老是失效,在我主页搜索对应的名称就能

JVM面试大总结

一、汇总JVM是运行在操作系统之上的,它与硬件没有直接的交互。先说一下JVM的内存区域,当函数开始运行时,JVM拿到自己的内存将自己的内存区域进行了分割,分为五块区域:线程共享的有堆、方法区,线程私有的有java栈、本地方法栈、程序计数器。方法区是用来加载class文件的区域,静态变量、常量、类元信息、运行时的常量池存放在在方法区中,方法区在jdk1.7之前它又叫做永久代,但是jdk1.8之后改成元数据空间了;new的对象都存放在堆中;栈也叫栈内存,8种类型的基本变量、对象的引用变量、实例方法都是在函数的栈内存中分配,栈中的数据都是以栈帧的格式存在,每执行一个方法都会产生一个栈帧,保存到栈(后

JVM面试大总结

一、汇总JVM是运行在操作系统之上的,它与硬件没有直接的交互。先说一下JVM的内存区域,当函数开始运行时,JVM拿到自己的内存将自己的内存区域进行了分割,分为五块区域:线程共享的有堆、方法区,线程私有的有java栈、本地方法栈、程序计数器。方法区是用来加载class文件的区域,静态变量、常量、类元信息、运行时的常量池存放在在方法区中,方法区在jdk1.7之前它又叫做永久代,但是jdk1.8之后改成元数据空间了;new的对象都存放在堆中;栈也叫栈内存,8种类型的基本变量、对象的引用变量、实例方法都是在函数的栈内存中分配,栈中的数据都是以栈帧的格式存在,每执行一个方法都会产生一个栈帧,保存到栈(后

【金九银十必问Java面试题】工作六年面试被问JVM为什么使用元空间替换了永久代?

“JVM为什么使用元空间替换了永久代?”这是一个工作6年的同学去字节第一面遇到的问题,很遗憾,他没有回答出来大家好,我是Mic,一个工作了14年的Java程序员。关于这个问题,我们怎么回答?面试官到底关注什么呢?面试解析我们都知道Java8以及以后的版本中,JVM运行时数据区的结构都在慢慢调整和优化。但实际上这些变化,对于业务开发的小伙伴来说,没有任何影响。因此我可以说,99%的人都回答不出这个问题。但是互联网大厂的面试就是筛选那1%的优秀人才,因此通过这道题,既可以考察求职者对JVM原理的理解程度又能够考察求职者基本功的扎实程度还能实现高级人才的筛选在Java7里面,JVM运行时数据区是这样

【金九银十必问Java面试题】工作六年面试被问JVM为什么使用元空间替换了永久代?

“JVM为什么使用元空间替换了永久代?”这是一个工作6年的同学去字节第一面遇到的问题,很遗憾,他没有回答出来大家好,我是Mic,一个工作了14年的Java程序员。关于这个问题,我们怎么回答?面试官到底关注什么呢?面试解析我们都知道Java8以及以后的版本中,JVM运行时数据区的结构都在慢慢调整和优化。但实际上这些变化,对于业务开发的小伙伴来说,没有任何影响。因此我可以说,99%的人都回答不出这个问题。但是互联网大厂的面试就是筛选那1%的优秀人才,因此通过这道题,既可以考察求职者对JVM原理的理解程度又能够考察求职者基本功的扎实程度还能实现高级人才的筛选在Java7里面,JVM运行时数据区是这样