1.原子性(Atomicity) 定义:不可再分割的操作 Java内存模型直接保证原子性变量操作包括:read、load、assign、use、store 和 write 这6个 2.可见性(Visibility) 定义:是指当一个线程修改了一个共享变量的值时,其他线程能够立即的指这个修改 java ...
分类:
其他好文 时间:
2021-02-18 13:27:59
阅读次数:
0
抓取系统,抓取的是国外某网站的数据 运营反应系统卡顿,于是登录到服务器,查看了一下JVM的启动参数(jinfo -flags + pid) 只设置了Command line: -Xss256k -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M -XX: ...
分类:
其他好文 时间:
2021-01-18 10:38:50
阅读次数:
0
写文章 我们在开发、断的刷题、面试中,我们可能会遇到将一个对象的属性赋值到另一个对象的情况,这种情况就叫做拷贝。拷贝与Java内存结构息息相关,搞懂Java深浅拷贝是很必要的! 在对象的拷贝中,很多初学者可能搞不清到底是拷贝了引用还是拷贝了对象。在拷贝中这里就分为引用拷贝、浅拷贝、深拷贝进行讲述。 ...
分类:
编程语言 时间:
2021-01-11 10:59:42
阅读次数:
0
四种引用类型的介绍 强引用(StrongReference):JVM 宁可抛出 OOM ,也不会让 GC 回收具有强引用的对象; 软引用(SoftReference):只有在内存空间不足时,才会被回的对象; 弱引用(WeakReference):在 GC 时,一旦发现了只具有弱引用的对象,不管当前内 ...
分类:
编程语言 时间:
2021-01-04 10:42:25
阅读次数:
0
如果说造成线程不安全的情况是来源有时序性(代码优化),可见性(缓存一致性),原子性(线程切换)。 那么最简单的优化方式就是禁用缓存和编译优化。这样可以直接解决问题,就是代码的性能会相对的下降。合理的方案应该是按需禁用缓存以及编译优化。 这样的话就可以分治不同的代码,有并发的代码进行调整,没有并发的代 ...
分类:
编程语言 时间:
2020-12-30 11:16:29
阅读次数:
0
虚拟机栈概述 由于跨平台性的设计,Java 的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。 栈实现的优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。 有不少Java开发人员一提到Java内存结构,就会非常粗略度地将JVM中的内存区 ...
分类:
编程语言 时间:
2020-12-29 12:02:01
阅读次数:
0
JVM调优问题简单总结 jvm调优在我看来就是扩扩内存,修改一下虚拟机运行参数,再不行换个垃圾回收器,比如G1什么的。 但是,对运行时问题的定位却是个大问题,今天就来总结一下,这两天学习的关于jvm调优的一些查用的排查方式 CPU突然飙升怎么排查 因为在服务器上不只有Java进程还有其他进程,所以需 ...
分类:
其他好文 时间:
2020-12-29 11:44:09
阅读次数:
0
微信搜一搜「bigsai」关注这个专注于Java和数据结构与算法的铁铁文章收录在github/bigsai-algorithm欢迎star收藏如果本篇对你有帮助,记得点赞收藏哦!在开发、刷题、面试中,我们可能会遇到将一个对象的属性赋值到另一个对象的情况,这种情况就叫做拷贝。拷贝与Java内存结构息息相关,搞懂Java深浅拷贝是很必要的!在对象的拷贝中,很多初学者可能搞不清到底是拷贝了引用还是拷贝了
分类:
编程语言 时间:
2020-12-23 11:57:57
阅读次数:
0
内存泄露检测工具比较 定位java内存泄漏 https://www.jianshu.com/p/3be49723d2f8?from=timeline&isappinstalled=0 https://segmentfault.com/a/1190000011453225 Java 垃圾回收监控和分析 ...
分类:
其他好文 时间:
2020-12-19 12:07:55
阅读次数:
1
JVM 的内存结构和内存分配 a) Java 内存模型 Java 虚拟机将其管辖的内存大致分三个逻辑部分:方法区(Method Area)、Java 栈和 Java 堆。 1、方法区是静态分配的,编译器将变量绑定在某个存储位置上,而且这些绑定不会在运行时改变。 常数池,源代码中的命名常量、Strin ...
分类:
其他好文 时间:
2020-12-18 12:32:45
阅读次数:
2