问题堆内外内存的区别是什么堆内外内存java 进程的内存占用到底是怎么样的呢?我们都知道 jvm 有垃圾回收机制,并且回收的重点区域就是堆,假如我们以堆内堆外来区分内存区域,上图所示堆内 A1堆外 B1 + B2B1 有可能是 DirectByteBuffer 分配的堆外内存,而 B2 是 Nati... ...
分类:
其他好文 时间:
2020-07-09 16:40:40
阅读次数:
52
一、用 jmap(Memory Map for Java)查看堆内存信息 1.查看堆内存信息 命令:jmap -histo pid 解析:可以打印出当前堆中所有每个类的实例数量和内存占用 结果: ...
分类:
其他好文 时间:
2020-07-09 12:04:13
阅读次数:
57
关于JVM,也许你听过这些术语:年轻代(新生代)、老年代、永久代、minor gc(young gc)、major gc、full gc 不要急,先上图,这是jvm 堆内存结构图 仔细的你发现了 图中有些分数8/10和1/10,这是默认配置下各个代内存分配比例。 举个栗子: 假如总heap max分 ...
分类:
其他好文 时间:
2020-07-09 12:00:19
阅读次数:
197
JVM面试题一.Java类加载过程?Java类加载需要经历一下7个过程:1.加载加载是类加载的第一个过程,在这个阶段,将完成一下三件事情:?通过一个类的全限定名获取该类的二进制流。?将该二进制流中的静态存储结构转化为方法去运行时数据结构。?在内存中生成该类的Class对象,作为该类的数据访问入口。2.验证验证的目的是为了确保Class文件的字节流中的信息不回危害到虚拟机.在该阶段主要完成以下四钟验
分类:
其他好文 时间:
2020-07-09 09:20:09
阅读次数:
89
前言 java语言的学习是一个体系,所以如果想要对java的编程有一个很精通的一个掌握,它离不开很多基础的知识点,比如JVM的原理、java多线程并发编程、数据结构等等。所以我这里对我学习的java的课程进行定期的总结,来记录我学习java的一些想法和心得。也希望能通过我的这些分享,给需要的学习某方 ...
分类:
编程语言 时间:
2020-07-08 19:50:06
阅读次数:
69
异常概述 异常:在Java语言中,将程序执行中发生的不正常情况称为 "异常"。 (开发过程中的单词拼写错误、语法错误和逻辑错误不是异常,这是你不正常) Java程序在执行过程中所发生的异常事件可分为两类 Error:Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况 pub ...
分类:
其他好文 时间:
2020-07-08 13:34:57
阅读次数:
65
起因:试图提高IDEA的编译速度,修改了idea.exe.vmoptions文件 报错 failed to create jvm 解决办法: 找到位于 (比如我的,C:\Users\HP\AppData\Roaming\JetBrains\IntelliJIdea2020.1)下的idea.exe. ...
分类:
其他好文 时间:
2020-07-07 23:29:34
阅读次数:
122
为什么要序列化 1.我们知道,一般Java对象的生命周期比Java虚拟机短,而实际的开发中,我们需要 在Jvm停止后能够继续持有对象,这个时候就需要用到序列化技术将对象持久到磁盘或数据库。 2.在多个项目进行RPC调用的,需要在网络上传输JavaBean对象。我们知道数据只能以二进制的 形式才能在网 ...
分类:
其他好文 时间:
2020-07-07 17:26:59
阅读次数:
48
本书围绕Java编程中多线程编程的基础与应用设计分为四个部分来展开讲解,包括多线程技术知识、Java ClassLoader、深入理解volatile关键字、多线程设计架构模式。Java 编程语言是工业级的编程语言,在诸多应用、诸多场景下被广泛使用,多线程技术作为Java语言和应用的基础能力,对其的 ...
分类:
编程语言 时间:
2020-07-07 15:16:11
阅读次数:
57
对老年代触发垃圾回收的时机,一般就是两个: 要不然是在Minor GC之前,一通检查发现很可能Minor GC之后要进入老年代的对象太多了,老年代放不下,此时需要提前触发Full GC然后再带着进行Minor GC; 要不然是在Minor GC之后,发现剩余对象太多放入老年代都放不下了。 那么对老年 ...
分类:
其他好文 时间:
2020-07-07 13:23:18
阅读次数:
52