A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 瓶中人 中级黑马   /  2013-11-4 14:42  /  943 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  Java根据变量的类型不同可分为简单类型和引用类型变量,这两种类型的变量主要有以下不同。
1)        存储机制
简单类型变量是直接在栈内存中开辟存储空间存储变量值。
引用类型变量是由引用空间和存储空间两部分构成,引用空间在栈内存中,存储空间在堆内存,存储空间负责存储变量值,引用空间负责存放存储空间的首地址。引用变量中存放的是地址值,通过地址值可以定义存储位置并修改存储信息。
简单类型和引用类型变量存储机制如下图所示:
               
2.变量传递
当变量与变量之间赋值时,引用类型变量和简单变量都属于值传递,不同的是简单变量传递的是内容本身,而引用变量传递的是引用地址,具体示例如下
简单变量赋值
   
public class Demo
{
   
        public static void main(String[] args)
        {
              int i = 8 ;       //简单变量j
                          int j = i;        //将i变量值赋给j
                          j = j + 1 ;       //j + 1
                          System.out.println(i);
                          System.out.println(j);
        }
}

   在上述代码中,i和j是属于简单类型变量,因此在赋值时,将i的值复制给了j,完毕后i和j并没有任何关系,修改j的值影响i。
引用变量赋值
public class Demo
{
   
        public static void main(String[] args)
        {
                        //定义引用变量
              Person p = new Person();
                          p.name = "张三";
                          p.age = 18;
                          Person p2 = p; //将变量p的地址赋给p2
                          p2.name = "李四";
                          p2.age = 19;
                          //输出两者的信息
                          System.out.println(p.name + " " + p.age);
                          System.out.println(p2.name + " " + p2.age);

        }
}
//定义一个类
class Person
{
        String name;
        int age;
}
P和p2属于引用类型变量,因此在赋值时,将p的引用地址复制给p2,所以两者有着相同的地址,这是说当p2修改信息时,P也会受到影响

评分

参与人数 1技术分 +1 收起 理由
狼王 + 1

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马