Native Method Stacks(本地方法栈) 本地方法:指不是用Java语言编写的方法,因为Java语言是有一定限制的,有些情况下它是不能直接和操作系统打交道的。这时就需要调用一些用C或C++编写的方法去跟操作系统底层打交道。Java语言可以调用这些本地方法间接的调用操作系统底层的一些功能 ...
分类:
其他好文 时间:
2019-10-19 00:07:08
阅读次数:
85
Java的程序要运行需要将编译好的class文件加载到JVM运行时数据区。 在了解类的加载机制之前,我们需要了解一下类的生命周期。Java类从被加载到JVM内存开始,到卸载出内存为止,它的整个生命周期包括了:加载(Loading),验证(Verification),准备(Preparation),解 ...
分类:
其他好文 时间:
2019-10-15 21:01:52
阅读次数:
135
java内存模型 1、JVM内存区域 方法区:类信息、常量、static、JIT (信息共享) java堆:实例对象 GC (信息共享) OOM VM stack:JAVA方法在运行的内存模型 (OOM) PC: java线程的私有数据,这个数据就是执行下一条指令的地址 Native method ...
分类:
编程语言 时间:
2019-10-11 12:18:23
阅读次数:
94
概述 本文介绍GC基础原理和理论,GC调优方法思路和方法,基于Hotspot jdk1.8,学习之后将了解如何对生产系统出现的GC问题进行排查解决 阅读时长约30分钟,内容主要如下: GC基础原理,涉及调优目标,GC事件分类、JVM内存分配策略、GC日志分析等 CMS原理及调优 G1原理及调优 GC ...
分类:
编程语言 时间:
2019-10-09 15:46:57
阅读次数:
136
下文连接比较多啊,都是我过整理的博客,很多答案都在博客里有详细说明,理解记忆是最扎实的记忆。而且我的答案不一定是最准确的,但是我的答案不会让你失望,而且几乎每个答案都是问题的扩展答案。 1.JVM内存模型 答:https://www.cnblogs.com/cxiaocai/p/11483629.h ...
分类:
编程语言 时间:
2019-10-09 09:30:33
阅读次数:
82
① 对象的内存分配,总体上讲就是在堆上分配,对象主要分配在新生代的Eden区,少数情况也会直接分配在老年代。分配的规则并不是百分百固定的,其细节取决于当前使用的是哪一种垃圾收集器组合,还有虚拟机中与内存相关的参数配置。 对象优先在Eden区分配 大多数情况下,对象在新生代Eden区分配。当Eden区 ...
分类:
其他好文 时间:
2019-10-08 22:22:17
阅读次数:
90
① Java虚拟机根据对象存活的周期不同,把堆内存划分为几块,一般分为新生代、老年代和永久代(对HotSpot虚拟机而言),这就是JVM的内存分代策略。 Java虚拟机根据对象存活的周期不同,把堆内存划分为几块,一般分为新生代、老年代和永久代(对HotSpot虚拟机而言),这就是JVM的内存分代策略 ...
分类:
其他好文 时间:
2019-10-08 21:44:26
阅读次数:
91
最近公司项目经常出现OOM,dump出堆栈信息发现User对象占了80%的内存, 检查代码未发现有查询全量用户信息的地方,该现象连续出现了一个星期,都是User对象引起的, 仔细查看日志发现有一个接口调用异常频繁,再结合代码分析发现在接口层上一级有一个拦截器,校验session里面的用户信息, 可以 ...
分类:
其他好文 时间:
2019-10-08 14:24:50
阅读次数:
100
一、概念 1. 内存泄漏:对象使用完之后,没有按照预期被GC回收,一直留在内存中 2. 内存溢出:大量对象一直留在内存中,导致内存不够用(OOM),影响正常的程序运行 二、内存泄漏的场景 1. 内存中数据量太大,比如一次性从数据库中取出来太多数据 2. 静态集合类中对对象的引用,在使用完后未清空(只 ...
分类:
其他好文 时间:
2019-10-06 17:13:00
阅读次数:
86
概述 https://www.toutiao.com/i6731345429574713868/ java发展历史上出现过很多垃圾回收器,各有各的适应场景,不仅仅是开发,作为运维也需要对这方面有一定的掌握,今天简单介绍一下java的内存布局以及各种垃圾回收器的原理。 JVM内存布局 JVM从概念上大 ...
分类:
其他好文 时间:
2019-10-05 10:45:30
阅读次数:
110