Java基本类型

java中数据的基本类型分为:基本数据类型和引用数据类型,对此不多介绍;

接下来讨论一下java中数据类型存储在哪基本数据类型存储在哪,取决于基本类型在哪声明:

1.基本数据类型在方法中声明时,其变量名和值都是存储在java栈中的;在方法中声明基本类型数据:

例: int a = 10

①在栈中声明一个变量名为a的引用;

②在栈中查找是否有字面值为10的地址,如果没有就开辟一个存放字面值是10的地址;

③将变量名为a的引用指向字面值为10的地址;

2.基本数据类型在类中声明时则是存储在堆内存中的;

①在类中声明的基本数据类型,在类加载时会存储到方法区中;

②在java堆中从生成代表这个类的java.lang.Class对象,作为方法区这些数据的访问入口;

③ static关键字修饰的数据是属于类本身的,存储在方法区中;

④ final关键词修饰的数据表示引用不变的,存储在常量池中;

3.基本数据类型的包装类:

① Integer i = 10;同 i = 10的声明过程。

② Integer i = new Integer(10);数据10是存储在堆中的;

引用数据类型一定输存储在堆中的吗?

1.特殊的String类

例 : String str = “abc”;

①在栈中声明一个变量名为str的引用;

②在常量池中查找是否有“abc”的字符串对象,如果没有就在常量池中创建存储一个值为“abc”的字符串对象;

③将str的引用指向字符串对象“abc”;

④当再次声明 String str1 = "abc",常量池中已经有“abc”对象,所以str1直接指向abc的地址;

⑤ str = str1,引用数据类型比较,比较的是应用的地址;

注: String str = “abc”没有创建或创建一个对象

2.其他引用类型

Stirng str = new String("abc");

①在栈中声明一个变量名为str的引用;

②在堆中创建存储一个字符串对象“abc”;

③检查常量池中是否有字符串对象“abc”,如果没有就在常量池中创建存储一个值为“abc”的字符串对象;

④将堆中字符串对象“abc”与常量池中字符串对象“abc”联系起来,可以用intern方法返回常量池中的对象的引用;

⑤ 将str的引用指向堆中字符串对象“abc”;

注: String str = new String ("abc")创建一个或两个对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值