数据类型
Java中数据类型分为基础数据类型和引用数据类型两种:
基本数据类型:基本类型,或者叫做内置类型,是JAVA中不同于类的特殊类型。它们是我们编程中使用最频繁的类型。java是一种强类型语言,第一次申明变量必须说明数据类型,第一次变量赋值称为变量的初始化。
数值型(byte(1字节) 、short(2个字节)、int(4个字节)、long(8个字节) )
字符型(char(2个字节))
布尔型(boolean)
引用数据类型:类(class )、接口 (interface)、数组、枚举、标注
数据类型又分为四类八种:第一类:逻辑型boolean 第二类:文本型(char) 第三类:整数型(byte、short、int、long) 第四类:浮点型(float(4个字节)、double(8个字节))
JVM的内存空间:(1) Heap 堆空间:
1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)
2.JVM中只存在一个堆空间,为所有的线程共享,堆中只存放对象本身而不存放引用和基本类型。
(2) Stack 栈空间:
1.每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区中
2.每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。
3.栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。
(3) 方法区 :
1.又叫静态区,跟堆一样,被所有的线程共享。方法区包含所有的class和static变量。
2.方法区中包含的都是在整个程序中永远唯一的元素,如class,static变量。
那么,这里有个问题,是否所有的基础类型就一定在栈中?答案是否定的:
一:在方法中声明的变,即该变量是局部变量,每当程序调用方法时,系统都会为该方法建立一个方法栈,其所在方法中声明的变量就放在方法栈中,当方法结束系统会释放方法栈,其对应在该方法中声明的变量随着栈的销毁而结束,这就局部变量只能在方法中有效的原因<1>在方法中生明的变量可以是基本类型的变量,也可以是引用类型的变量,(1)当声明是基本类型的变量的时,其变量名及值(变量名及值是两个概念)是放在方法栈中(2)当声明的是引用变量时,所声明的变量(该变量实际上是在方法中存储的是内存地址值)是放在方法的栈中,该变量所指向的对象是放在堆类存中的》》》二:在类中声明的变量是成员变量,也叫全局变量,放在堆中的,<1>同样在类中声明的变量即可是基本类型的变量 也可是引用类型的变量(1)当声明的是基本类型的变量其变量名及其只时放在堆类存中的,(2)引用类型时,其声明的变量仍然会存储一个内存地址值,该内存地址值指向所引用的对象。
posted on 2017-02-10 18:03 Hapiness_Tong 阅读(138) 评论(0) 收藏 举报
浙公网安备 33010602011771号