基本数据类型与引用数据类型的区别 2015-07-30

百度搜到的两篇文章:

第一篇

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

基本数据类型,包括数值型,字符型和布尔型。

数值型:1)整型:byte 1个字节;short 2个字节;int 4个字节;long 8个字节。

2)浮点型:float 4个字节;double 8个字节;可以采用十进制和十六进制两种表示方式,其中十六进制表示方法只能采用科学计数法,例如:0x1.2p3,表示的是的是1乘以16加上2乘以16的-1次方的和乘以2的三次方;浮点型的默认类型为DOUBLE型,如果声明float型浮点数,要在数值后面加上f或F,例如:float f1 = 3.14F;否则会报精度错误。

字符型:char 采用unicod的16位编码方式进行编码。

布尔型:true,false;

引用数据类型:类、接口类型、数组类型、枚举类型、注解类型;

基本数据类型和引用数据类型的区别主要在存储方式上:

基本数据类型在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上;

引用数据类型在被床架时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。

例如:我有一个类MyDate,其中有属性day,mouth,year等,有构造方法(带参数);

现在为其创建一个对象MyDate d1 = new MyDate(8,8,2008);

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

1)首先在栈内存中位其d1分配一块空间;

2)然后在堆内存中为MyDate对象分配一块空间,并为其三个属性设初值0,0,0;

3)根据类MyDate中对属性的定义,为该对象的三个属性进行赋值操作;

4)调用构造方法,为三个属性赋值为8,8,2008;(注意这个时候d1与MyDate对象之间还没有建立联系)

5)将MyDate对象在堆内存中的地址,赋值给栈中的d1;通过句柄d1可以找到堆中对象的具体信息。

呵呵,引用数据类型的创建还真是挺复杂的一个过程。。。

第二篇

┏数值型━┳━整数型:byte short int long
              ┏基本数据类型━━┫              ┗━浮点型:float double
              ┃                            ┣字符型:char                                          
数据类型╋                            ┗布尔型:boolean              
              ┃                            ┏类(class)
              ┗引用数据类型━━╋接口(interface)
                                             ┗数组(array)

java的数据类型分基本数据类型(原始数据类型)和引用数据类型;

基本数据类型:

基本数据类型基本上都是一些特别小而且特别简单的变量,如果用new创建对象,由于new创建的对象都是存放在堆中,大家知道,由于堆的灵活性决定它的效率要低于堆栈,所以对于8种基本数据类型,Java不采用new创建句柄的方式,而是直接在堆栈中创建了一个非句柄的自动变量,容纳了具体的值,所以能够高效存取。

引用数据类型:

引用数据类型就那三种,类似C/C++的指针,它以特殊的方式指向对象实体(具体的值),这类变量声明时不会分配内存,new的时候,存储了一个句柄在堆栈中以便高效引用,其对象实体(具体的值)在堆中开辟了一块内存,通过堆栈中的句柄调用该实体。

时间: 2024-12-20 09:06:45

基本数据类型与引用数据类型的区别 2015-07-30的相关文章

JAVA的基本数据类型和引用数据类型的区别

引用数据类型: 类.接口类型.数组类型.枚举类型.注解类型: 基本数据类型和引用数据类型的区别: 基本数据类型在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上: 引用数据类型在被创建时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址. 例如,有一个类Person,有属性name,age,带有参的构造方法, Person p = new Person("Tom",20); 在内存中的具体创建过程是: 1.首先在栈内

int与integer的区别(基本数据类型与引用数据类型)

一.先说说int与integer的区别 int 是基本数据类型,默认值为0,不需要进行实例化 integer 是引用数据类型,是int的封装类型,默认值为null,创建该类型需要进行实例化. 基本数据类型是可以用“==”进行比较,而引用数据类型则不可以,一般是通过equals方法来实现比较. 二 .再说说基本数据类型与引用数据类型的区别? 特点: 1.从概念方面来说 基本数据类型:变量名指向具体的数值引用数据类型:变量名指向存数据对象的内存地址,即变量名指向hash值 2.从内存构建方面来说 基

JavaScript中基本数据类型和引用数据类型的区别

1.基本数据类型和引用数据类型 ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型. 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象. 当我们把变量赋值给一个变量时,解析器首先要确认的就是这个值是基本类型值还是引用类型值. 2.常见的基本数据类型: Number.String .Boolean.Null和Undefined.基本数据类型是按值访问的,因为可以直接操作保存在变量中的实际值.示例: var a = 10; var b = a; b = 20;

java中基本数据类型跟引用数据类型的区别

基本数据类型 大小 范围 默认值 int(整形) 32 -2147483648~2147483648 0 long(长整形) 64 -9233372036854477808~9233372036854477808 0 float(浮点形) 32 -3.40292347E+38~3.40292347E+38 0.0f double(双精度) 64 -1.79769313486231570E+308~1.79769313486231570E+308 0.0d short(短整型) 16 -32768

JAVA-基本数据类型与引用数据类型区别

1 package com.liu.u6.copy1; 2 /* 3 * 基本数据类型与引用数据类型有什么区别 4 */ 5 public class Sjlx { 6 public int age; 7 } 8 package com.liu.u6.copy1; 9 public class TestSjlx { 10 public static void main(String[] args) { 11 System.out.println("***********************基

JAVA中分为基本数据类型及引用数据类型(问题:堆和栈的区别,系统根据什么区分堆栈内存)

一.基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值0 int:整型,用于存储整数,在内在中占32位,即4个字节,取值范围-2147483648~2147483647,默认值0 long:长整型,在内存中占64位,即8个字节-2^63~2^63-1,默认值0L float:浮点型,在内存中占32位,即4个字节,用于存储带小数点的数

Java学习之基本数据类型和引用数据类型区别

JAVA中分为基本数据类型和引用数据类型区别一.基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值0 char:字符型,用于存储单个字符,占16位,即2个字节,取值范围0~65535,默认值为空 int:整型,用于存储整数,在内在中占32位,即4个字节,取值范围-2147483648~2147483647,默认值0 long:长整型

Java中的基本数据类型和引用数据类型的区别

一.数据类型 Java中的数据类型分为两大类,基本数据类型和引用数据类型. 1.基本数据类型 基本数据类型只有8种,可按照如下分类 ①整数类型:long.int.short.byte ②浮点类型:float.double ③字符类型:char ④布尔类型:boolean No. 数据类型 大小/位 可表示数据范围 默认值 1 byte(字节型) 8 -128~127 0 2 short(短整型) 16 -32768~32767 0 3 int(整型) 32 -2147483648~2147483

js中基本数据类型和引用数据类型的区别

1.基本数据类型和引用数据类型 ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型. 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象. 当我们把变量赋值给一个变量时,解析器首先要确认的就是这个值是基本类型值还是引用类型值. 2.常见的基本数据类型: Number.String .Boolean.Null和Undefined.基本数据类型是按值访问的,因为可以直接操作保存在变量中的实际值.示例: var a = 10; var b = a; b = 20;