JVM虚拟机
文章平均质量分 96
初级码奴
学习资源
http://blog.720ui.com
https://www.liaoxuefeng.com/
展开
-
JVM 内存分配模型概念和java中各种对象的存储 (补充)
JVM 内存分配模型概念--在工作中可能用到的机会不多,有个概念的了解--此文是转载某位读者,应该是在阅读了《深入理解Java虚拟机JVM高级特性与最佳实践》一书后,总结所得。写的不错,转载哈一、JVM内存区域划分 大多数 JVM 将内存区域划分为 Method Area(Non-Heap),Heap,Program Counter Register, Java Metho...转载 2018-08-16 10:14:13 · 640 阅读 · 0 评论 -
java内存模型与线程
1.硬件的效率与一致性由于计算机的存储设备与处理器的运算速度有几个数量级的差别,而绝大多数的运算任务都要与内存交互,所以现代计算机系统不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存来作为内存与处理器之间的缓冲:将运算需要使用到的数据复制到缓冲之中,让运算能快速进行,当运算结束后再从缓存同步回内存之中,这样处理器就无须等待缓慢的内存读写了。 基于高速缓存的存储交互很好地解决了处理...转载 2018-08-14 16:32:51 · 97 阅读 · 0 评论 -
虚拟机性能监控与故障处理工具 -- JDK的命令行工具
①jps:虚拟机进程状况工具功能:列出正在运行的虚拟机进程,并显示1、虚拟机执行主类名称以及2、这些进程的本地虚拟机唯一ID(LVMID)。使用频率最高的JDK命令行工具,其他的JDK工具大多需要输入它查询到的LVMID来确定监控的是哪一个虚拟机进程。对于本地虚拟机进程来说,LVMID与操作系统的进程ID(PID)是一致的,使用Windows的任务管理器也可以查询到虚拟机进程的LVMI...转载 2018-08-13 14:27:32 · 168 阅读 · 0 评论 -
JVM的Client模式与Server模式
概述JVM有两种运行模式Server与Client。两种模式的区别在于,Client模式启动速度较快,Server模式启动较慢;但是启动进入稳定期长期运行之后Server模式的程序运行速度比Client要快很多。这是因为Server模式启动的JVM采用的是重量级的虚拟机,对程序采用了更多的优化;而Client模式启动的JVM采用的是轻量级的虚拟机。所以Server启动慢,但稳定后速度比Clie...转载 2018-08-13 13:38:27 · 171 阅读 · 0 评论 -
内存泄漏和内存溢出
(1)内存泄漏和内存溢出内存泄漏:分配出去的内存无法回收(不再使用的对象或者变量仍占内存空间),在Java中内存泄漏就是存在一些被分配的对象(可达的,却是无用的)无法被gc回收。内存溢出:程序要求的内存超出了系统所能分配的范围(比如:栈满还入栈 出现上溢,栈空还出栈 出现下溢)可以看出内存泄漏是内存溢出的一种诱因,但不是唯一因素。 (2)Java存在内存泄漏:Java判断内...转载 2018-08-10 13:55:25 · 138 阅读 · 0 评论 -
【Java虚拟机探究】3.常用JVM配置参数-Trace跟踪参数
在使用JVM编译java时,都会去设置相关的参数(例如使用eclipse的时候,可以设置eclipse的eclipse.ini文件来对jvm做一些参数配置)。jvm的参数设置主要涉及到三种,分别是Trace跟踪参数、堆的分配参数、栈的分配参数。本章主要讲解Trace跟踪参数的相关信息。(1)开启GC日志和打印简要信息跟踪参数主要对jvm的GC(垃圾回收器)的状况。可以使用以下两种配置方式打开G...转载 2018-08-08 09:58:47 · 257 阅读 · 0 评论 -
【Java虚拟机探究】2.JVM基本结构(下)
上一篇我们介绍了JVM的基本信息,以及内存结构(堆、栈、方法区、程序计数器、本地方法栈)。本篇我们来介绍内存结构中不同区域的交互,以及内存处理机制。一、栈、堆、方法区交互在探讨交互之前,我们先回顾一下栈、堆、方法区的作用:(1)栈存储的是局部变量信息(2)堆存储的是类的实例对象(也就是new出来的东西)(3)方法区存储的是类的结构信息,包括常量池、静态变量、构造函数等。下面是两个类,一个...转载 2018-08-07 17:26:07 · 82 阅读 · 0 评论 -
【Java虚拟机探究】1.JVM基本结构(上)
一、什么是JVM使用过Java语言开发的童鞋,肯定知道,Java的编译就是依靠JVM来实现的,其实JVM就是Java虚拟机(Java Virtual Machine),JVM可以将Java语言解释成具体平台上的机器指令来执行,这也是Java为什么会跨平台的原因,因为无论是什么平台,高级语言都是需要编译成不同的目标代码后,才能被平台识别,而Java虚拟机的出现,使得Java语言在不同的平台上运行不...转载 2018-08-07 17:22:47 · 87 阅读 · 0 评论 -
Java虚拟机详解----常用JVM配置参数 (补充)
本文主要内容:Trace跟踪参数 堆的分配参数 栈的分配参数 零、在IDE的后台打印GC日志:既然学习JVM,阅读GC日志是处理Java虚拟机内存问题的基础技能,它只是一些人为确定的规则,没有太多技术含量。既然如此,那么在IDE的控制台打印GC日志是必不可少的了。现在就告诉你怎么打印。(1)如果你用的是Eclipse,打印GC日志的操作如下:在上图的箭头处加上...转载 2018-08-16 10:10:01 · 152 阅读 · 0 评论 -
线程安全与锁优化
面向过程的编程思想: 程序编写都是以算法为核心的,程序员会把数据和过程分别作为独立的部分来考虑,数据代表问题空间中的客体,程序代码则用于处理这些数据,这种思维方式直接站在计算机的角度去抽象问题和解决问题面向对象的编程思想: 站在现实世界的角度去抽象和解决问题,把数据和行为都看做是对象的一部分,这样可以让程序员以符合现实世界的思维方式来编写和组织程序。现实世界和计算机世界之间不可避免的会有所...转载 2018-08-15 10:54:08 · 125 阅读 · 0 评论