Java 中基本类型 和 引用类型 变量的区别

一。基本概念

java 中的 数据类型 分为两大类: 基本数据类型 和 引用数据类型

基本数据类型 : 数值型,浮点型, 字符型 和 布尔型。 它的 值 是一个数字,一个字符或一个布尔值。

引用数据类型 : 类,接口类型,数组类型, 枚举类型, 注解类型。 是一个 对象类型,它的 值 是 指向内存空间的引用,就是 地址,所指向的内存中保存着变量所表示的一个值或一组值。 


二。 区别 -----  存储方式

1. 基本类型变量 声明 时,系统直接给该变量 分配空间,因此程序中可以直接操作

 eg. int a; 声明变量a的同时,系统给a分配了空间,   故 可直接  赋值  a = 5;

2. 引用类型(或称为引用型)变量声明时,只 给该变量分配 引用空间, 数据空间 未分配。因此 引用型变量声明后 不能直接引用,必须通过 实例化 开辟数据空间,才能对变量所指向的对象进行访问
 
 eg. MyDate today = 14; // 错误!因为today对象的数据空间未分配
     
     MyDate today = new MyDate( 14 ); 正确! 首先执行 new MyDate()给today变量 开辟 数据空间,然后再执行 赋值 操作

3. 案例分析
    
   申明一个类 MyDate,其中有属性day,mouth,year等,有构造方法(带参数),为其创建一个对象

   MyDate day = new MyDate(8,8,2017);

  在内存中的具体创建过程是:

   1)首先在 栈内存 中为 day 分配一块 引用空间;
   2)然后在 堆内存 中为 MyDate对象 分配一块空间,并为其三个属性设初值0,0,0;
   3)根据类MyDate中对属性的定义,为该对象的三个属性进行赋值操作;
   4)调用构造方法,为三个属性赋值为8,8,2017;(注意这个时候day 与MyDate对象之间还没有建立联系  ) 
   5)将MyDate对象在堆内存中的地址,赋值给栈中的day ; 通过句柄 day 可以找到堆中对象的具体信息


  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值