11.JVM内存分哪几个区,每个区的作用是什么? java虚拟机主要分为以下一个区: 方法区:1. 有时候也成为永久代,在该区内很少发生垃圾回收,但是并不代表不发生GC,在这里进行的GC主要是对方法区里的常量池和对类型的卸载2. 方法区主要用来存储已被虚拟机加载的类的信息、常量、静态变量和即时编译器 ...
分类:
其他好文 时间:
2019-11-17 12:53:24
阅读次数:
86
在Java8和以后版本中JVM的内存结构慢慢发生了变化。作为面试官如果你还不知道,那么面试过程中是不是有些露怯?作为面试者,如果知晓这些变化,又将成为面试中的亮点。如果在网络上搜索JVM内存结构,90%的可能会搜到Java7及以前的内存图,本篇文章将会对JVM内存结构再次细化,深入理解Java8之后的内部变化。现在意×××”的好处了吧。在这里可以不断的刷新你的知识和认知。JVM
分类:
编程语言 时间:
2019-11-01 22:12:51
阅读次数:
112
[TOC] 一、概述 ? 程序在运行过程中是不断申请内存,释放内存,如果程序只是申请没有释放就会引起内存泄漏内存不足等问题。在C语言、C++中,程序员需要手动的释放内存,如果程序员粗心忘记回收,就会导致程序bug,在Java中,JVM提供自动回收内存机制GC(内存回收器),减少程序员的工作量和减低由 ...
分类:
其他好文 时间:
2019-10-28 14:26:50
阅读次数:
147
在文章《 "JVM之内存结构详解" 》中我们描述了Java7以前的JVM内存结构,但在Java8和以后版本中JVM的内存结构慢慢发生了变化。作为面试官如果你还不知道,那么面试过程中是不是有些露怯?作为面试者,如果知晓这些变化,又将成为面试中的亮点。 如果在网络上搜索JVM内存结构,90%的可能会搜到 ...
分类:
编程语言 时间:
2019-10-22 13:21:01
阅读次数:
100
引言 本文主要介绍,有关JVM(Java Visual Mechine Java虚拟机)的知识。 运行时数据区 什么是运行时数据区 通过命令行javac,对 *.java源文件 进行编译;然后在由命令 java 运行 *.java,而java源码文件进行编译成class文件,计算机将class文件打 ...
分类:
其他好文 时间:
2019-10-09 12:44:26
阅读次数:
112
① Java虚拟机根据对象存活的周期不同,把堆内存划分为几块,一般分为新生代、老年代和永久代(对HotSpot虚拟机而言),这就是JVM的内存分代策略。 Java虚拟机根据对象存活的周期不同,把堆内存划分为几块,一般分为新生代、老年代和永久代(对HotSpot虚拟机而言),这就是JVM的内存分代策略 ...
分类:
其他好文 时间:
2019-10-08 21:44:26
阅读次数:
91
(jdk 7 以上) 执行 时,如果字符串 已经在常量池中,则直接返回; 如果不存在,会把当前引用放到常量池,该引用指向着 指向的堆中的对象。 所以: 通过上面例子也可以知道:字符串是在执行 字节码指令时放到常量池的,而不是类加载期间事先放到常量池。 在 jdk 6 以及以前版本有个 永久代 (Pe ...
分类:
其他好文 时间:
2019-09-04 19:16:34
阅读次数:
120
前言 读完这篇文章你可以了解,String对象在虚拟机内存中的存放,intern的作用,这么多String对象的创建到底有什么区别,String 创建的对象有几个!! 正题 先科普几个知识点1.常量池存放于方法区中 2.jdk1.6 方法区放在永久代(java堆的一部分),jdk1.7 特别将字符串 ...
分类:
其他好文 时间:
2019-09-01 14:59:06
阅读次数:
136
前言:JVM中除了程序计数器,其他的区域都有可能会发生内存溢出。 0.什么是内存溢出 当程序需要申请内存的时候,由于没有足够的内存,此时就会抛出OutOfMemoryError,这就是内存溢出。 1.内存泄漏和内存溢出区别与联系 内存泄漏:系统分配的内存没有被回收。 内存溢出:分配的内存空间超过系统 ...
分类:
其他好文 时间:
2019-08-11 17:04:47
阅读次数:
104
JConsole(Java Monitoring and Management Console)是一种基于JMX的可视化监视、管理工具。管理的是什么?管理的是监控信息、永久代的使用信息、类加载等等 如果我们想监控本机的某一个java程序的运行,那么直接输入jconsole(windows下可以弹出图 ...
分类:
其他好文 时间:
2019-07-24 22:39:16
阅读次数:
119