- 阅读jvm源码,分析wait()和notify()的具体实现 阅读jvm源码,分析wait()和notify()的具体实现
- 刚刚面试回来的B哥又在吐槽了:现在的面试官太难伺候了,放着好好的堆、栈、方法区不问,上来就让我从字节码角度给他分析一下try-catch-finally(以下简称TCF)的执行效率… 刚刚面试回来的B哥又在吐槽了:现在的面试官太难伺候了,放着好好的堆、栈、方法区不问,上来就让我从字节码角度给他分析一下try-catch-finally(以下简称TCF)的执行效率…
- 大家好,我是程序员学长,专注分享大数据、算法、java、python等相关知识,欢迎和我一起交流学习。读前福利,最全pdf获取联系我 垃圾收集器的分类 按线程数划分按线程数划分(指的是垃圾收集线程),可以分为串行垃圾收集器和并行垃圾收集器。串行垃圾收集器是指在同一时间段内只允许有一个CPU用于执行垃圾回收操作,此时用户线程被暂停,直到垃圾收集完成。在单 CPU 处理器或者较小的应用内存等硬件... 大家好,我是程序员学长,专注分享大数据、算法、java、python等相关知识,欢迎和我一起交流学习。读前福利,最全pdf获取联系我 垃圾收集器的分类 按线程数划分按线程数划分(指的是垃圾收集线程),可以分为串行垃圾收集器和并行垃圾收集器。串行垃圾收集器是指在同一时间段内只允许有一个CPU用于执行垃圾回收操作,此时用户线程被暂停,直到垃圾收集完成。在单 CPU 处理器或者较小的应用内存等硬件...
- 通过一个实例将JVM方法调用的字节码指令逐个列出,一起来熟悉以下它们使用的场景 通过一个实例将JVM方法调用的字节码指令逐个列出,一起来熟悉以下它们使用的场景
- 大家好,我是程序员学长,专注分享大数据、算法、java、python等相关知识,欢迎和我一起交流学习。读前福利,最全pdf获取联系我今天我们来聊一下 JVM 中虚拟机栈的概念。 方法的调用在JVM中,将符合引用转换为调用方法的直接引用与方法的绑定机制相关。 链接静态链接:当一个字节码文件被装载进JVM内部时,如果被调用的目标方法在编译期可知,且运行期保持不变时,这种情况下将调用方法的符号引用... 大家好,我是程序员学长,专注分享大数据、算法、java、python等相关知识,欢迎和我一起交流学习。读前福利,最全pdf获取联系我今天我们来聊一下 JVM 中虚拟机栈的概念。 方法的调用在JVM中,将符合引用转换为调用方法的直接引用与方法的绑定机制相关。 链接静态链接:当一个字节码文件被装载进JVM内部时,如果被调用的目标方法在编译期可知,且运行期保持不变时,这种情况下将调用方法的符号引用...
- 环境变量_JAVA_LAUNCHER_DEBUG,它能给你更多的jvm信息 环境变量_JAVA_LAUNCHER_DEBUG,它能给你更多的jvm信息
- 前一段时间在研究juc源码的时候,发现在很多工具类中都调用了一个Unsafe类中的方法,出于好奇就想要研究一下这个类到底有什么作用,于是先查阅了一些资料,一查不要紧,很多资料中对Unsafe的态度都是这样的画风:其实看到这些说法也没什么意外,毕竟Unsafe这个词直译过来就是“不安全的”,从名字里我们也大概能看来Java的开发者们对它有些不放心。但是作为一名极客,不能你说不安全我就不去研究了... 前一段时间在研究juc源码的时候,发现在很多工具类中都调用了一个Unsafe类中的方法,出于好奇就想要研究一下这个类到底有什么作用,于是先查阅了一些资料,一查不要紧,很多资料中对Unsafe的态度都是这样的画风:其实看到这些说法也没什么意外,毕竟Unsafe这个词直译过来就是“不安全的”,从名字里我们也大概能看来Java的开发者们对它有些不放心。但是作为一名极客,不能你说不安全我就不去研究了...
- 大家好,我是程序员学长。JVM 系列文章我们已经更新完了JVM 的类加载子系统和虚拟机栈,今天我们来聊一下 JVM 之方法区。首先,我们来看一下方法区和堆、栈之间的交互关系。User 存放在元空间,也可以说是在方法区中变量 user 存放在 java 栈的局部变量表中new User() 存放在 java 堆中 方法区的理解在《Java虚拟机规范》中明确说明,“尽管所有的方法区在逻辑上属于堆... 大家好,我是程序员学长。JVM 系列文章我们已经更新完了JVM 的类加载子系统和虚拟机栈,今天我们来聊一下 JVM 之方法区。首先,我们来看一下方法区和堆、栈之间的交互关系。User 存放在元空间,也可以说是在方法区中变量 user 存放在 java 栈的局部变量表中new User() 存放在 java 堆中 方法区的理解在《Java虚拟机规范》中明确说明,“尽管所有的方法区在逻辑上属于堆...
- 一、前言继续上一篇博文《JVM进阶(八):Stop The World》所讲的,STW即GC时候的停顿时间,他会暂停我们程序中的所有线程。如果STW所用的时间长而且次数多的话,那么我们整个系统稳定性以及可用性将大大降低。因此我们在必要的时候需要对虚拟机进行调优,调优的主要目标之一就是降低STW的时间,也就是减少Full GC的次数。那么这里我们从调优的角度来分析各个收集器的优势与不足。 二... 一、前言继续上一篇博文《JVM进阶(八):Stop The World》所讲的,STW即GC时候的停顿时间,他会暂停我们程序中的所有线程。如果STW所用的时间长而且次数多的话,那么我们整个系统稳定性以及可用性将大大降低。因此我们在必要的时候需要对虚拟机进行调优,调优的主要目标之一就是降低STW的时间,也就是减少Full GC的次数。那么这里我们从调优的角度来分析各个收集器的优势与不足。 二...
- 一、前言小伙伴还记得《JVM进阶(七):从 GC 日志分析堆内存》中我们留下的一个问题吗?什么是停顿类型!经过前面的学习,我们知道JVM垃圾回收首先是需要经过标记的。对象被标记后就会根据不同的区域采用不同的收集方法。看上去很完美的一件事情,其实并不然。 二、STW大家有没有想过这样一件事情,当虚拟机完成两次标记后,便确认了可以回收的对象。但是,垃圾回收并不会阻塞我们程序的线程,他是与当前程... 一、前言小伙伴还记得《JVM进阶(七):从 GC 日志分析堆内存》中我们留下的一个问题吗?什么是停顿类型!经过前面的学习,我们知道JVM垃圾回收首先是需要经过标记的。对象被标记后就会根据不同的区域采用不同的收集方法。看上去很完美的一件事情,其实并不然。 二、STW大家有没有想过这样一件事情,当虚拟机完成两次标记后,便确认了可以回收的对象。但是,垃圾回收并不会阻塞我们程序的线程,他是与当前程...
- 一、前言在前期博文《JVM进阶(五):JAVA GC 之标记》讲到了标记,是不是被标记了就肯定会被回收呢?不知道小伙伴们记不记得Object类有一个finalize()方法,所有类都继承了Object类,因此也默认实现了这个方法。finalize()方法的用途就是:在该对象被回收之前,该对象的finalize()方法会被调用。这里的回收之前指的就是被标记之后,问题就出在这里,有没有一种情况... 一、前言在前期博文《JVM进阶(五):JAVA GC 之标记》讲到了标记,是不是被标记了就肯定会被回收呢?不知道小伙伴们记不记得Object类有一个finalize()方法,所有类都继承了Object类,因此也默认实现了这个方法。finalize()方法的用途就是:在该对象被回收之前,该对象的finalize()方法会被调用。这里的回收之前指的就是被标记之后,问题就出在这里,有没有一种情况...
- 一、前言堆分为年轻代和年老代。永久代是非堆内存,它又叫做方法区(一般的说法),主要存储已被加载的类信息、常量、静态变量。而该区域在java8已被删除,取而代之的是元空间,会在后面的章节细讲。 二、什么是标记?怎么标记?第一个问题相信大家都知道,标记就是对一些已死的对象打上记号,方便垃圾收集器GC的清理。 至于怎么标记,一般有两种方法:引用计数和可达性分析。 2.1 引用计数引用计数实现起来... 一、前言堆分为年轻代和年老代。永久代是非堆内存,它又叫做方法区(一般的说法),主要存储已被加载的类信息、常量、静态变量。而该区域在java8已被删除,取而代之的是元空间,会在后面的章节细讲。 二、什么是标记?怎么标记?第一个问题相信大家都知道,标记就是对一些已死的对象打上记号,方便垃圾收集器GC的清理。 至于怎么标记,一般有两种方法:引用计数和可达性分析。 2.1 引用计数引用计数实现起来...
- 一、前言众所周知,在java中内存主要分为以下几类:寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制。栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)堆:存放所有new出来的对象。静态域:存放静态成员(static定义的)。常量池:存放字符串常量和基本类型常量(public... 一、前言众所周知,在java中内存主要分为以下几类:寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制。栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)堆:存放所有new出来的对象。静态域:存放静态成员(static定义的)。常量池:存放字符串常量和基本类型常量(public...
- 一、前言若想自己编写的Java程序高效运行,以及进行正确、高效的异常诊断,JVM是不得不谈的一个话题。本”JVM进阶“专栏大部分内容均来源于经典书籍《深入理解Java虚拟机》。 二、栈存储言归正传,本文重点从虚拟机内存模型(运行时数据区域)入手。先看下图:这是一张比较官方的虚拟机模型图,今天讲的就是虚线框中栈的部分。栈是我们最常用的内存区域。它主要用来存放基本类型变量,局部变量以及对象的引... 一、前言若想自己编写的Java程序高效运行,以及进行正确、高效的异常诊断,JVM是不得不谈的一个话题。本”JVM进阶“专栏大部分内容均来源于经典书籍《深入理解Java虚拟机》。 二、栈存储言归正传,本文重点从虚拟机内存模型(运行时数据区域)入手。先看下图:这是一张比较官方的虚拟机模型图,今天讲的就是虚线框中栈的部分。栈是我们最常用的内存区域。它主要用来存放基本类型变量,局部变量以及对象的引...
- 作为一名Java程序员,我们在日常工作中使用这款面向对象的编程语言时,做的最频繁的操作大概就是去创建一个个的对象了。对象的创建方式虽然有很多,可以通过new、反射、clone、反序列化等不同方式来创建,但最终使用时对象都要被放到内存中,那么你知道在内存中的java对象是由哪些部分组成、又是怎么存储的吗?本文将基于代码进行实例测试,详细探讨对象在内存中的组成结构。全文目录结构如下: 1、对象内... 作为一名Java程序员,我们在日常工作中使用这款面向对象的编程语言时,做的最频繁的操作大概就是去创建一个个的对象了。对象的创建方式虽然有很多,可以通过new、反射、clone、反序列化等不同方式来创建,但最终使用时对象都要被放到内存中,那么你知道在内存中的java对象是由哪些部分组成、又是怎么存储的吗?本文将基于代码进行实例测试,详细探讨对象在内存中的组成结构。全文目录结构如下: 1、对象内...
上滑加载中
推荐直播
-
华为云 x DeepSeek:AI驱动云上应用创新
2025/02/26 周三 16:00-18:00
华为云 AI专家大咖团
在 AI 技术飞速发展之际,DeepSeek 备受关注。它凭借哪些技术与理念脱颖而出?华为云与 DeepSeek 合作,将如何重塑产品与应用模式,助力企业数字化转型?在华为开发者空间,怎样高效部署 DeepSeek,搭建专属服务器?基于华为云平台,又该如何挖掘 DeepSeek 潜力,实现智能化升级?本期直播围绕DeepSeek在云上的应用案例,与DTSE布道师们一起探讨如何利用AI 驱动云上应用创新。
去报名
热门标签