JVM 概述及重点了解

首先我们需要了解几个重要概念

JAVA:一种编程语言,提供简单的API

JDK:提供编程开发工具包,编程语言规范,编译器,解释器等。

JRE:java语言别写出来的代码运行的环境。

JVM:JRE中的核心就是JVM (java虚拟机),JAVA程序运行中JVM中。JVM运行在操作系统的上面,操作系统为JVM提供cpu,内存,网络带宽等。

JMM: JAVA MEMORY MODE 内存模型

一、JVM三大核心

(1)jvm类加载机制 (2) jvm运行时数据区(重点) (3)jvm垃圾回收(重点)

1.1 jvm 类加载机制

将我们写的java文件编译成class文件后,在jvm启动或者类运行时由类加载器将class文件加载到内存中。

1.2jvm 运行时数据区(内存区)

是JVM在运行的时候操作所分配的内存区,包括五个部分:方法区,堆,java栈,本地方法栈,程序计数器。

一个jvm(进程)中可以运行多个线程,线程之间可以共享一些成员变量,绿色的部分(方法区和堆)就是线程间共享的数据,黄色是各个线程私有的,每个线程都具有一个java栈,本地方法栈,程序计数器。各个线程间不能访问的。

1.3 执行引擎:负责执行class文件中的字节码指令。

二. JAVA内存结构图

JAVA内存内存结构主要有三大块:方法区,堆内存,栈内存。

堆内存:是java内存中最大的一块分为年轻代和年老代(如果分成三部分年轻代、年老代,永久代(在有的版本中方法区就是永久带)),其中年轻代又分为:Eden,FromSpace(Survivor1),ToSpace(Survivor2),占比8:1:1

对于一个JVM我们通常给定两个概念:一个堆内存,一个栈内存。

堆内存:线程共享

    堆:年轻代,年老代

   方法区:永久代

栈内存:线程私有

   java栈,本地方法区栈,程序计数器

方法区存储类信息,常量,静态变量等信息,线程共享,为与Java堆区分开,方法区的别名也叫(Non-heap非堆)

二,如何根据参数来控制JVM运行时数据区的大小

 三.参数配置名称

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值