北大青鸟郑州鸿博省内唯一校企合作院校
 
北大青鸟郑州鸿博网站首页 北大青鸟郑州鸿博中心概况 北大青鸟郑州鸿博新闻动态 北大青鸟郑州鸿博课程介绍 北大青鸟郑州鸿博师资力量 北大青鸟郑州鸿博就业广场 北大青鸟郑州鸿博学员天地 北大青鸟郑州鸿博在线报名 北大青鸟郑州鸿博招生问答 北大青鸟郑州鸿博视频专区
 
学完课程后,能做什么? 英语、数学不好,能学好软件开发吗? 郑州鸿博在线咨询 郑州鸿博在线咨询 郑州鸿博在线咨询
北大青鸟郑州鸿博查看课程 北大青鸟郑州鸿博了解师资 北大青鸟郑州鸿博开班信息 北大青鸟郑州鸿博学员就业 北大青鸟郑州鸿博在线咨询 北大青鸟郑州鸿博网络报名 设北大青鸟郑州鸿博主页为首页 将北大青鸟郑州鸿博主页加入收藏
北大青鸟郑州鸿博大学生入口 北大青鸟郑州鸿博中专职高生入口
北大青鸟郑州鸿博高中生入口 北大青鸟郑州鸿博失业行业者入口
   
北大青鸟郑州鸿博栏目导航课程介绍 北大青鸟郑州鸿博栏目导航专业详解
北大青鸟郑州鸿博栏目导航课程体系 北大青鸟郑州鸿博栏目导航特色优势
北大青鸟郑州鸿博栏目导航教学方法 北大青鸟郑州鸿博栏目导航教材样本
北大青鸟郑州鸿博栏目导航疑问详解 北大青鸟郑州鸿博栏目导航课程定位
北大青鸟郑州鸿博栏目导航企业需求 北大青鸟郑州鸿博栏目导航项目实战
北大青鸟郑州鸿博栏目导航.NET培训 北大青鸟郑州鸿博栏目导航JAVA培训
北大青鸟郑州鸿博栏目导航在线测试 北大青鸟郑州鸿博栏目导航在线报名
北大青鸟郑州鸿博在线咨询
北大青鸟郑州鸿博QQ在线咨询
北大青鸟郑州鸿博免费通话
北大青鸟郑州鸿博 推荐文章
JAVA数据类型转换

  作者:北大青鸟郑州鸿博管理员   来源:郑州鸿博   发布日期:2009-05-03   点击次数:291  

1.Java的简单类型及其封装器类


⑴Java简单类型与封装类
        我们知道,Java语言是典型的支持面向对象的程序语言,但考虑到有些基本数据类型的结构简单,占内存小且存取速度快等优点,Java依然提供了对这些非面向对象的简单数据类型的支持。当然,Java在提供大量的其它类时,也提供了与简单数据类型对应的封装类,于是,Java中就有了诸如int和Integer(float和Float、double和Double……)的不同的数据类型。


        Java语言的数据类型有两大类:一类是简单类型,也称主要类型(Primitive),另一类是引用类型(Reference)。简单类型变量中存储的是具体的值,而引用类型的变量中存储的是对象的引用。


        Java决定了每种简单类型的大小。这些大小并不随着机器结构的变化而变化。这种大小的不可更改正是Java程序具有很强移植能力的原因之一。


下表列出了Java中定义的简单类型、占用二进制位数及对应的封装器类。

 

表 Java中的简单类型

 

简单类型 boolean byte char short int long float double void
二进制位数 1 8 16 16 32 64 32 64 --
封装器类 Boolean Byte Character Short Integer Long Float Double Void


⑵为什么使用封装类
        以int和Integer为例来说,虽然从本质上它们都代表一个32位的整数,但它们却是不同的数 据类型。事实上,Java中直接使用的整数都为int(就int和Integer而言),只有当数据必须作为对象的身份出现时,才必须用int对应的封装器Intege将整数值封装成对象。
例如:为给java.util包中的Vector添加一个整数,就必须如下将该整数值封装在一个Integer实例中:
Vector v=new Vector();
int k=121;
v.addElemt(new Integer(k));
另外,Integer作为int对应的封装器类,提供了许多的方法,比如:Integer的构造方法、Integer向其它各种数值类型的转换方法等等,而这些是int类型数据所没有的。

 

2.简单数据类型之间的转换


        简单类型数据间的转换,有两种方式:自动转换和强制转换,通常发生在表达式中或方法的参数传递时。


⑴自动转换
        具体地讲,当一个较“小”数据与一个较“大”的数据一起运算时,系统将自动将“小”数据转换成“大”数据,再进行运算。而在方法调用时,实际参数较“小”,而被调用的方法的形式参数数据又较“大”时(若有匹配的,当然会直接调用匹配的方法),系统也将自动将“小”数据转换成“大”数据,再进行方法的调用,自然,对于多个同名的重载方法,会转换成最“接近”的“大”数据并进行调用。


        这些类型由“小”到“大”分别为 (byte,short,char)--int--long--float—double。这里我们所说的“大”与“小”,并不是指占用字节的多少,而是指表示值的范围的大小。
请看下面的示例:

 

①下面的语句可以在Java中直接通过:
byte b;
int i=b;
long l=b;
float f=b;
double d=b;

 

②如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,例如
char c='c';
int i=c;
System.out.println("output:"+i);

 

输出:output:99;

 

③对于byte,short,char三种类型而言,他们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。
short i=99 ;
char c=(char)i;
System.out.println("output:"+c);

 

输出:output:c;

 

④对象多态中若有方法:
f(byte x){……};
f(short x) {……};
f(int x) {……};
f(long x) {……};
f(float x) {……};
f(double x) {……};
又有:char y=’A’; 那么,语句f(y)会调用哪一个方法呢?答案是:f(int x) {……}方法,因为它的形参比实参“大”且是最“接近”的。

 

而对于方法:
f(float x) {……};
f(double x) {……};
又有:long y=123L; 那么,语句f(y)调用的方法则是f(float x) {……}。

 

⑵强制


致力于做河南最好

北大青鸟IT教育

郑州北大青鸟咨询
企业人才预定热线
北大青鸟地址
邮编

传真

乘车路线

豫icp备08003493号

版权所有2008-2013

0371-67938311
0371-67938377
郑州市建设路和嵩山路交叉口向西50米泰隆大厦十六楼
450000

0371-67938377

从火车站坐1.68.99.101西线到碧沙岗站下车;从北站坐9.88.909路到碧岗站下车;从东站和南站坐521路到碧沙岗站下车;从西站坐315.31到碧沙岗下车.

北大青鸟APTECH(郑州鸿博)授权培训中心