黑马程序员技术交流社区

标题: 求解基本数据类型与应用数据类型的区别 [打印本页]

作者: 潜伏    时间: 2013-11-20 21:51
标题: 求解基本数据类型与应用数据类型的区别
如题,今天听课中遇到的,不是太懂
作者: qq316525598    时间: 2013-11-20 22:06
java的8种基本类型:
byte,short, char, int, long,float,double,boolean.
与此对应的,java提供了8种包装类型:
Byte,Short,Character,Integer,Long,Float,Double,Boolean.

所谓引用,就是指针了,就是说对象指向的不是数据本身,而是它所在的内存地址.
数组就是引用类型!
一般在传参的时候用的最多。
public class Test {
        public static void main(String[] args) {
                String str ="string";   //引用数据类型
                str.replace('s', 'a');  //把数据里的s全部替换成a;
                System.out.println(str); //打印出来,仍是string  引用数据类型的地址不变
               
               
               
                int i=1;   //基本数据类型
                 i=2;      //直接初始化,改变值
                 System.out.println(i);//打印出来,值确是2
                 /*
                  * 这就是基础类型跟引用类型的最大区别,基本数据类型代表是数值,但引用类型确是直接指向地址
                  *
                  *
                  *
                  * */
               

        }
}
作者: 陈文杰    时间: 2013-11-20 22:07
一般本质区别,都在类似的定义就有。
基本数据类型,它的值就是一个数字,一个字符或一个布尔值。  
引用数据类型,也就是说引用指向的不是数据本身,而是它所在的内存地址.
eg:
(1)int  a;  
        a=250; //声明变量a的同时,系统给a分配了空间。
(2)Date a,b;                    //在内存开辟两个引用空间
       a  =  new Date();     //开辟MyDate对象的数据空间,并把该空间的首地址赋给a
       b  =  a;                          //将a存储空间中的地址写到b的存储空间中
基本数据类型由于在内存中的一个地址存放的是这些变量的值,所以调用函数,函数里的形参就是复制这些变量的值以后对形参值的变化不会影响到原来变量的值。
而引用数据类型由于在内存中是引用他的一个内存地址而不是具体的值 。所以调用函数,函数里的形参 就是复制这些变量的值的地址,当对形参的值进行修改的时候,就等于是对这些变量的值进行修改。所以会影响到原来变量的值
作者: @ne_pie尒ce    时间: 2013-11-20 22:12
基本数据类型和引用数据类型的区别:
基本数据类型是变量指向数据本身,而引用数据类型是变量指向内存地址。
基本数据类型在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上;
引用数据类型在被创建时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。
例如,有一个类Person,有属性name,age,带有参的构造方法,
Person p = new Person("Tom",20);
在内存中的具体创建过程是:
1.首先在栈内存中位其p分配一块空间;
2.在堆内存中为Person对象分配一块空间,并为其三个属性设初值"",0;
3.根据类Person中对属性的定义,为该对象的两个属性进行赋值操作;
4.调用构造方法,为两个属性赋值为"Tom",20;(注意这个时候p与Person对象之间还没有建立联系);
5.将Person对象在堆内存中的地址,赋值给栈中的p;通过句柄p可以找到堆中对象的具体信息。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2