Java基础之JAVAJDKJREJVM及其堆栈知识

概念及个人声明

很多东西我们不清楚它的概念,但是我们知道它是如何使用的、用在哪。也算掌握了这些知识。
所以很多时候就直接上图和代码了。先声明以下的一些图片,自己也是自学而来,很多可能来自博客,只供大家学习使用。

什么是Java?

java是一门高级面向对象编程语言,它是编译性语言和解释性语言。
Java也是一个完整的平台,有一个庞大的库,
其中包含了很多可重用的代码和一个提供诸如安全性、
跨操作系统的可移植性以及自动垃圾收集等服务的执行环境。
可移植性:一处编译,处处运行
java语言运行机制

JDK、JRE、JVM

在这里插入图片描述

JDK:java开发工具套件

包括:
1、java语言
2、工具(编译(javac指令)、运行(java指令)、打包、签名等等工具)
3、JRE

JRE:java的运行环境

1、它是面向使用者,并不是面向开发者
2、JRE主要包括什么内容:
JVM
JAVA的核心库
运行java web applet插件的环境

JVM:JAVA虚拟器

它是java平台里面最核心、最重要的元素。
它是一个操作系统,它有它的内存空间、硬件信息、寄存器、执行指令
JVM作用:
解释(java指令)字节码文件,生成对应体系架构的目标代码
JVM内部的体系结构
1、类加载器
2、运行时的数据区域
a、方法区域
b、jvm的堆区(重点)
c、jvm的栈区(重点)
d、pc寄存器
e、本地jvm栈区
3、jvm执行引擎

运行时的数据区域

对堆栈的理解

以下是详细的内存分析
内存详细分析
java中的基本数据类型一定存储在栈中的吗?
不一定,先声明,这块知识是引用某位大神的内容,供大家学习使用,暂且记不住链接了,感谢!
在方法中(局部变量):
当声明是基本类型的变量的时,其变量名及值(变量名及值是两个概念)是放在JAVA虚拟机栈中;
声明的是引用变量时,所声明的变量(该变量实际上是在方法中存储的是内存地址值)是放在JAVA虚拟机的栈中,该变量所指向的对象是放在堆类存中的。
在类中声明(全局变量):
基本类型的变量其变量名及其值放在堆内存中的;
引用类型时,其声明的变量仍然会存储一个内存地址值,该内存地址值指向所引用的对象。引用变量名和对应的对象仍然存储在相应的堆中。

以下是创建对象是内存分析:
在这里插入图片描述
另外:再举一个例子
int[] array=new int[]{1,2};
由于new了一个对象,所以new int[]{1,2}这个对象时存储在堆中的,也就是说1,2这两个基本数据类型是存储在堆中。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值