java引用类型与基本类型

java引用类型与基本类型

ID:32399525

大小:215.00 KB

页数:10页

时间:2019-02-04

java引用类型与基本类型_第1页
java引用类型与基本类型_第2页
java引用类型与基本类型_第3页
java引用类型与基本类型_第4页
java引用类型与基本类型_第5页
资源描述:

《java引用类型与基本类型》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、java引用类型与基本类型  2010-02-0610:50:37

2、  分类: IT技术

3、字号 订阅     Java提供两种不同的类型:引用类型和原始类型(或内置类型)。另外,Java还为每个原始类型提供了封装类(Wrapper)。如果需要一个整型变量,是使用基本的int型呢,还是使用Integer类的一个对象呢?如果需要声明一个布尔类型,是使用基本的boolean,还是使用Boolean类的一个对象呢?本文可帮助您作出决定。  下表列出了原始类型以及它们的对象封装类。  原始类型封装类  =================  booleanBoolean  charCharac

4、ter  byteByte  shortShort  intInteger  longLong  floatFloat  doubleDouble  引用类型和原始类型的行为完全不同,并且它们具有不同的语义。例如,假定一个方法中有两个局部变量,一个变量为int原始类型,另一个变量是对一个Integer对象的对象引用:  inti=5;                      //原始类型  Integerj=newInteger(10);    //对象引用  这两个变量都存储在局部变量表中,并且都是在Java操作数堆栈中操作的,但对它们的表示却完全不同。(本文中以下部分将用通用

5、术语堆栈代替操作数堆栈或局部变量表。)原始类型int和对象引用各占堆栈的32位。(要表示一个int或一个对象引用,Java虚拟机实现至少需要使用32位存储。)Integer对象的堆栈项并不是对象本身,而是一个对象引用。  Java中的所有对象都要通过对象引用访问。对象引用是指向对象存储所在堆中的某个区域的指针。当声明一个原始类型时,就为类型本身声明了存储。前面的两行代码表示如下:  引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为null,而原始类

6、型实例变量的缺省值与它们的类型有关。  许多程序的代码将同时包含原始类型以及它们的对象封装。当检查它们是否相等时,同时使用这两种类型并了解它们如何正确相互作用和共存将成为问题。程序员必须了解这两种类型是如何工作和相互作用的,以避免代码出错。例如,不能对原始类型调用方法,但可以对对象调用方法:  intj=5;  j.hashCode();    //错误  //...  Integeri=newInteger(5);  i.hashCode();    //正确  使用原始类型无须调用new,也无须创建对象。这节省了时间和空间。混合使用原始类型和对象也可能导致与赋值有关的意外结果。

7、看起来没有错误的代码可能无法完成您希望做的工作。例如:  importjava.awt.Point;  classAssign  {  publicstaticvoidmain(Stringargs[])  {  inta=1;  intb=2;  Pointx=newPoint(0,0);  Pointy=newPoint(1,1);                 //1  System.out.println("ais"+a);  System.out.println("bis"+b);  System.out.println("xis"+x);  System.out.pr

8、intln("yis"+y);System.out.println("Performingassignmentand"+  "setLocation...");  a=b;  a++;  x=y;                                   //2  x.setLocation(5,5);                      //3  System.out.println("ais"+a);  System.out.println("bis"+b);  System.out.println("xis"+x);  System.out.println("

9、yis"+y);  }  }这段代码生成以下输出:  ais1  bis2  xisjava.awt.Point[x=0,y=0]  yisjava.awt.Point[x=1,y=1]  PerformingassignmentandsetLocation...  ais3  bis2  xisjava.awt.Point[x=5,y=5]  yisjava.awt.Point[x=5,y=5]  修改整数a和b的结果没什么意外的地方。b的值被赋予整型变量a,结果a

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。