Java垃圾回收详解 编程技术

Java垃圾回收详解

1.GC介绍 什么是垃圾回收(GC)? 垃圾回收,顾名思义,便是将已经分配出去的,但却不再使用的内存回收回来,以便能够再次分配。 在 Java 虚拟机的语境下, 垃圾 指的是死亡的对象所占据的堆空间。 Java 虚拟机中的垃圾回收器采用 可达性分析 来探索所有存活的对象。它从一系列 GC Roots 出发,边标记边探索所有被引用的对象。 为了防止在标记过程中堆栈...
阅读全文
JVM-运行时数据区—方法区 Java

JVM-运行时数据区—方法区

在jdk7及以前,习惯上把方法区称为永久代。jdk8开始,使用元空间取代了永久代。 本质上,方法区和永久代并不等价。仅是对hotSpot而言的。《java虚拟机规范》对如何实现方法区,不做统一要求。例如:BEA JRockit/IBM J9中不存在永久代的概念。 现在看来,当年使用永久代,不是好的idea。导致Java程序更容易OOM(超过-XX:MaxPermSize上限)。 ...
阅读全文
Java虚拟机#1——Java内存模型 Java

Java虚拟机#1——Java内存模型

前言 在昨天我回答了一个关于Java虚拟机的问题,顺带复习了一边Java虚拟机,就打算写一篇关于内存模型的文章巩固记忆。在Java中,内存溢出异常不想C/C++那样频繁,但是一旦出现却难解决的多,需要丰厚的Java虚拟机方面的知识。身为一个Java程序员,是有必要在这方面多做积累的。本文以介绍概念与基本术语为主 运行时数据区域 Java虚拟机在执行Java程序的时候会将他所管理的内存分为若干...
阅读全文
10种常见OOM分析——手把手教你写bug Java

10种常见OOM分析——手把手教你写bug

点赞+收藏 就学会系列,文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱,笔记自取 在《Java虚拟机规范》的规定里,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生 OutOfMemoryError 异常的可能。 本篇主要包括如下 OOM 的介绍和示例: java.lang.StackOverflowError java...
阅读全文
Jvm知识点 Java

Jvm知识点

就算你躺在沙发上三天不起,拉不开窗帘,因为决定不了穿哪双袜子哭个没完,我也不会停止爱你. 前言 面试的时候 必问JVM ,淦!咱们准备好好复习吧,加油!奇怪的知识又增加了呐. 1. JVM内存模型 根据JVM规范,JVM 内存共分为虚拟机栈,堆,方法区,程序计数器,本地方法栈五个部分 程序计数器(线程私有): 是当前线程锁执行字节码的行号治时...
阅读全文
一张PDF了解JDK10 GC调优秘籍-附PDF下载 Java

一张PDF了解JDK10 GC调优秘籍-附PDF下载

简介 今天我们讲讲JDK10中的JVM GC调优参数,JDK10中JVM的参数总共有1957个,其中正式的参数有658个。 其实JDK10跟JDK9相比没有太大的变化,一个我们可以感受到的变化就是引入了本地变量var。 为了方便大家的参考,特意将JDK10中的GC参数总结成了一张PDF,这个PDF在之前的JDK9的基础上进行了增减和修正,欢迎大家下载。 Java参数类型 其实J...
阅读全文
JVM工作原理和工作流程简述 Java

JVM工作原理和工作流程简述

JAVA之所以跨平台,是因为有JVM这么一个编译和运行机器,它令对于系统的操作对于用户而言是黑盒的,使得开发人员更快速和更注重软件功能的实现。然而,也因为jvm是黑盒,所以内部和底层具有不确定性,如果用状态机来表示jvm,那么jvm就是一种现役复制不确定的状态机,因为它的状态和表现跟系统、底层、硬件等等都有关系,从而状态是不确定,如果在分布式应用中,jvm一直以来兼容性都不是很好,这就是主要原因。...
阅读全文
Java 应用线上问题排查思路、常用工具小结 Java

Java 应用线上问题排查思路、常用工具小结

来源:https://ricstudio.top/archives/java-online-question-probe 前言 本文总结了一些常见的线上应急现象和对应排查步骤和工具。分享的主要目的是想让对线上问题接触少的同学有个预先认知,免得在遇到实际问题时手忙脚乱。毕竟作者自己也是从手忙脚乱时走过来的。 只不过这里先提示一下。在线上应急过程中要记住,只有一个总体目标: 尽快...
阅读全文
从Linux内核理解JAVA的NIO Java

从Linux内核理解JAVA的NIO

IO 可以简单分为 磁盘 IO 和 网络 IO , 磁盘 IO 相对于 网络 IO 速度会快一点,本文主要介绍 磁盘 IO , 网络 IO 下周写。 JAVA 对 NIO 抽象为 Channel , Channel 又可以分为 FileChannel (磁盘 io)和 SocketChannel (网络 io)。 如果你对 IO 的理解只是停留在 api 层面那是远远不够的,一定要了...
阅读全文
Loading...