简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
深入理解jvm看过很多遍,每次遇到问题总是要去翻书,今天开始把知识点记录在博文中,网上的JVM教程多如牛毛,我在此处只做记录用。以下总结内容来自-----《深入理解Java虚拟机_JVM高级特性与最佳实践》java能够实现跨平台特性依靠java虚拟机和字节码文件,JVM利用垃圾回收算法实现内存的自动回收,简化了程序中内存的管理,使程序员摆脱了内存管理的束缚,但为了更好了编写高效程序,我们依然要..
JVM学习之java内存模型以下blog内容来自《深入理解Java虚拟机_JVM高级特性与最佳实践》感谢作者!!java虚拟机规范定义了一种java内存模型(JMM)来屏蔽不同硬件和操作系统的差异,达到跨平台运行效果,内存模型的定义一个宗旨就是并发内存访问操作不会产生歧义。类似C和C++等主流语言直接使用物理硬件和操作系统的内存模型,因此会由于不同平台内存模型的差异导致程序在一个平台上开发并...
本篇内容来自深入理解java虚拟机_JVM高级特性和最佳实践JVM内存分配策略java的内存自动管理可以总结为自动分配和自动回收内存。对象内存的分配主要是在堆上分配内存,对象主要分配在新生代的Eden区上,如果启动了本地线程分配缓冲,将按线程有限分配在TLAB上。少数情况可以直接分配在老年代中。TLAB技术:JVM在内存新生代Eden Space中开辟了一小块线程私有的区域,称作TLAB(...
以下blog内容来自《深入理解Java虚拟机_JVM高级特性与最佳实践》,感谢作者!昨天下班后地铁上和以前的同学交谈,才知道永远不尝试新东西永远不会有新思路,希望写完基础系列之后自己能有所进步,然后分析更多有用的东西。1垃圾收集算法分类 垃圾收集算法是如何收集对象,也就是如何回收堆及其他被jvm管理的可回收的内存的算法,和书中一样这里只按照书本记录垃圾收集算法的思路。垃...
以下blog内容来自《深入理解Java虚拟机_JVM高级特性与最佳实践》感谢作者。1 线程安全的概念 线程安全的概念在书中作者讨论了很多,但都是比较抽象的定义,我所理解的线程安全(主要是对共享数据的操作,保证代码操作的正确性,就是无论在单线程还是多线程操作下,代码得到的结果都是正确的)。2 java语言中的线程安全2.1不可变一个不可变的对象(类似final)一...
以下blog内容来自《深入理解Java虚拟机_JVM高级特性与最佳实践》感谢作者!1 谨慎使用java 多线程 如何提升效率: 使用java时推荐利用多线程处理一些操作绝大多数情况下确实能提高效率,提高效率的原理在哪里呢,为什么说绝大多说情况呢。 在CPU单核时代,我们知道某一时刻工作的线程只能是一条,那多线程为什么还能提高效率呢,因为类似IO这种阻塞操作很多...
本篇内容来自《深入理解Java虚拟机_JVM高级特性与最佳实践》,感谢作者。创建对象之后需要使用对象,java中除了对对象属性方法的调用以外还有加锁实现同步等其他操作,这里的锁加在了哪里,如何记录锁,如何对锁进行分类(有对象锁,class锁),垃圾回收机制中有关于GC的标记,知道当前对象分代的年龄,这些都需要我们去探寻对象具体的内存布局。1 对象的内存布局HotSpot虚拟机中对象存储......
今天和大家探讨java虚拟机加载类的机制,jvm想执行.class文件第一步就是把class文件装载进内存。1.概述 引子:编程过程中,大家肯定遇到过java.lang.ClassNotFoundException错误,特别是当我们自定义类加载器进行类的加载或者利用java的反射机制获取Class对象时。 虚拟机整体架构的第一部分就是类装载器,Java类加载机...
今天给大家代码几个实用的linux上的命令 由于日常工作学习都是在linux系统下进行,但家中为了便于家人应用pc上装的都是window系统,所以有时难免会把工作带到家中,特别是一些源码(当然公司禁止的源码不会带到家中),在window系统上编辑过后,在回到linux系统,打开时自己所写的中文注释,或者一些中文文档就会变成乱码(不仅仅中文),稍微懂点电脑知识的都很容易...
今天给大家带来最近工作中用到的关于gpu&cpu信息获取的节点的读取。1gpu信息获取 1.1 高通gpu说明 高通设备CPU采用cpufreq框架动态调节频率,相似的GPU这块采用了Linux devfreq框架进行调节。Devfreq有四种对频率的管理策略governor(框架规定,实际实现各厂商不同):1、 performance:GPU会固定工作在...