双亲委派

你得先知道在介绍双亲委派机制的时候,不得不提ClassLoader(类加载器)。说ClassLoader之前,我们得先了解下Java的基本知识。  Java是运行在Java的虚拟机(JVM)中的,但是它是如何运行在JVM中了呢?我们在IDE中编写的Java源代码被编译器编译成**.class**的字

JVM之java类对象底层是如何创建的

0、前言Java程序中Useruser=newUser();的代码在执行过程中,JVM究竟做了哪些工作?1、Java类对象的创建过程Java对象保存在内存中时,主要由三部分组成:对象头、实例数据、对齐填充字段,所以Java对象创建的过程实际上是对这三部分进行配置、补充和初始化的过程。注:对齐填充字段

Java锁总结

前言Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK8和Netty3.10.6)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行

Java并发之synchronized关键字深度解析

前言  本文继续【Java并发之synchronized关键字深度解析(一)】一文而来,着重介绍synchronized几种锁的特性。一、对象头结构及锁状态标识  synchronized关键字是如何实现的给对象加锁?首先我们要了解一下java中对象的组成。java中的对象由3部分组成,第一部分是对

java object多大 java对象内存模型 数组有多长

对象结构在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header)、实例数据(InstanceData)和对齐填充(Padding)。下图是普通对象实例与数组对象实例的数据结构:1对象头HotSpot虚拟机的对象头包括两部分信息:markword 第一部分markwor

使用MAT时的Shallow Size和 Retained Size的区别

所有包含HeapProfling功能的工具(MAT,Yourkit,JProfiler,TPTP等)都会使用到两个名词,一个是ShallowSize,另一个是RetainedSize.这是两个在平时不太常见的名词,本文会对这两个名词做一个详细的解释。ShallowSize对象自身占用的内存大小,不包

堆外内存的回收机制分析

堆外内存JVM启动时分配的内存,称为堆内存,与之相对的,在代码中还可以使用堆外内存,比如Netty,广泛使用了堆外内存,但是这部分的内存并不归JVM管理,GC算法并不会对它们进行回收,所以在使用堆外内存时,要格外小心,防止内存一直得不到释放,造成线上故障。堆外内存的申请和释放JDK的ByteBuff

Concurrent Mark Sweep (CMS) Collector

并发标记扫描(CMS)收集器并发标记扫描(CMS)收集器是为那些希望较短的垃圾收集暂停并且可以在应用程序运行时与垃圾收集器共享处理器资源的应用程序而设计的。通常,具有相对较长的长期数据集(大量使用期限)并且在具有两个或多个处理器的计算机上运行的应用程序往往会受益于此收集器的使用。但是,对于暂停时间要

Java虚拟机(JVM)的Java内存管理

Java内存管理是一项持续的挑战,并且是必须掌握的技能,才能正确调整可扩展功能的应用程序。从根本上讲,这是分配新对象并正确删除未使用对象的过程。在本文中,我们将讨论Java虚拟机(JVM),了解内存管理,内存监视工具,内存使用情况监视和垃圾回收(GC)活动。正如您将看到的,有许多不同的模型,方法,工

继承关系的类初始化和实例化的顺序

一切都是java编译器搞得鬼. JVM只是负责解析字节码.字节码虽然不是最原始的原子汇编码,但字节码已经可以完全解释JVM的指令执行过程了。 就像之前的一个评论.我们学习的是思路. 很多人都知道继承关系的类的初始化和实例化的顺序,但如果忘记了怎么办? 如何找到自己的答案? 又如果遇到的问题是关于泛型的擦除问题,又该
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×