社区
Java EE
帖子详情
JVM里的静态变量被清除了,原因不明
zhuming19791109
2018-11-13 04:06:09
实现方式1:是从sql得到map,实现方式2是直接放到bean去,再mybatis里两种方式都放进static变量中去了,但是神奇的是:方式2,放进去之后(也就是程序跑完后),已经看见jvm里有这个类对象了,没过一两分钟会被jvm清除掉
来回试了两次都是如此,方法外赋值静态变量的如下图
有了解的,能否指点一二!
补充:数据量的大小没有关系,2万,20万,200万都是同样的情况!
...全文
153
4
打赏
收藏
JVM里的静态变量被清除了,原因不明
实现方式1:是从sql得到map,实现方式2是直接放到bean去,再mybatis里两种方式都放进static变量中去了,但是神奇的是:方式2,放进去之后(也就是程序跑完后),已经看见jvm里有这个类对象了,没过一两分钟会被jvm清除掉 来回试了两次都是如此,方法外赋值静态变量的如下图 有了解的,能否指点一二! 补充:数据量的大小没有关系,2万,20万,200万都是同样的情况!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhuming19791109
2018-11-16
打赏
举报
回复
已经放到jvm内存里去了,可以看到,已经有1000万实例生成了,可是程序跑完会消失,而换成方式①就能保持住
别闹腰不好
2018-11-14
打赏
举报
回复
首先,确定都放到静态变量去了。 第二 ,看看是不是数据对象是不是用了软引用或者弱引用
zhuming19791109
2018-11-13
打赏
举报
回复
方式一就是黄框的地方,被点数挡住了
十八道胡同
2018-11-13
打赏
举报
回复
有点乱。。方式一呢?
JVM
修炼之路
【课程介绍】每节课为一个小时的内容。课程内容循序渐进,由浅入深,内容覆盖基础、进阶、高级。
JVM
是Java知识体系中的重要部分,对
JVM
底层的了解是每一位Java程序员深入Java技术领域的重要因素。本课程试图通过简单易懂的方式,系统的深入讲解
JVM
相关知识。包括
JVM
执行过程、虚拟机类加载机制、运行时数据区、GC、类加载器、内存分配与回收策略等。
JVM
调优(2)
JVM
相关问题 问:堆和栈有什么区别 答:堆是存放对象的,但是对象内的临时变量是存在栈内存中,如例子中的methodVar是在运行期存放到栈中的。 栈是跟随线程的,有线程就有栈,堆是跟随
JVM
的,有
JVM
就有堆内存。 问:堆内存中到底存在着什么东西? 答:对象,包括对象变量以及对象方法。 问:类变量和实例变量有什么区别? 答:
静态变量
是类变量,非
静态变量
是实例变量,直...
JVM
调优的一些思考和总结
首先贴一张
JVM
的架构图方便基础忘记的小伙伴来快速回忆方法区(Method Area)所有类级别数据将被存储在这
里
,包括
静态变量
。每个
JVM
只有一个方法区,它是一个共享的资源。堆区(Heap Area)所有的对象和它们相应的实例变量以及数组将被存储在这
里
。每个
JVM
同样只有一个堆区。由于方法区和堆区的内存由多个线程共享,所以存储的数据不是线程安全的。栈区(Stack Area)如果想详细了解方法栈的底层机构,可以去看我另一篇文章对每个线程会单独创建一个运行时栈。
JVM
内存模型及垃圾回收机制
JVM
内存模型 在
JVM
运行的时候所分配内存区的结构,分为程序计数器、虚拟机栈、本地方法栈、堆和方法区五部分。
JVM
占用的内存分为线程共享区 和线程私有区,线程共享区和
JVM
同生共死,所有线程均可访问此区域;而线程私有区顾名思义每个线程各自占有,与各自线程同生共死。 方法区:用于存储类信息、常量池、
静态变量
、JIT编译后的代码等数据,具体放在哪
里
,不同的实现可以放在不同的地方。 堆:Java堆是Java虚拟机所管理的内存中中最大的一块。Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。
了解
JVM
快速入门+
jvm
性能调优详解
1.java虚拟机的基本结构总结:
jvm
内存结构也叫做运行时数据区,堆和方法区是全局共享的,栈,程序计数器和本地方法栈是线程私有的具体划分为如下5个内存空间:(非常重要)堆:存放所有new出来的东西,堆空间是所有线程共享方法区:被虚拟机加载的类信息、常量、
静态变量
,静态常量等,线程共享程序计数器(和系统相关)本地方法栈栈:存放局部变量,线程私有的,描述的是java方法执行的内存模型:每个方法在执行...
Java EE
67,513
社区成员
225,879
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章