分享
 
 
 

java中的类型转换

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

一天看了o'relly的书,突然之间有一种莫名其妙的冲动,自己也相当一名

技术作家。

技术作家自然要技术过硬才行,然而自己的技术实在是无法入得了高手之列

。唯有自己多加练习、勤奋读书才能实现这一远大的理想。

这次发表文章也就是为了试试自己能不能行,如果某位专家实在看不过去我

在这里胡说八道,您可以指正批评(最好给在下留一点面子,不要把我说的一文

不值)。

如果写一些极为简单的问题我想不会有多少人看,在这里就坎一坎java中的

类型转换好了,这个论题看似很基础,但我想你也会从中有所收获的。

要说类型转换,首先要说一说java的数据类型。java中的数据类型分为两种

:基本类型、引用类型。基本数据类型没有什么好说的byte char short int

long float double boolean,这些类型除了boolean之外,其他的与C语言中的类

型没有太大的区别。因为这篇文章的论题是类型转换,所以在此不讨论boolean

值的用法。

下面要说的是引用类型。引用在有的书里也叫做句柄,它很类似C/C++中的

指针,但要注意引用和指针并不是同一个概念。指针是一个存放地址的变量,他

使C/C++程序员能够灵活地访问内存,但这也给程序的安全性带来了很大的隐患

,由于程序员可以对指针随意的运算操作,所以一不留神就会破坏其他的存储单

位,导致程序中出现意想不到的结果。引用继承了指针节省内存的优点,又限制

了对地址的操作,所以他是安全的。引用类型包括所有类生成的实例和数组(不

管是对象数组还是基本类型数组都实现Cloneable接口,所以他也是一个对象实

例),所有引用类型都继承自Object这个类。要说明一点的是java中的所有变量

都是一个引用,不管是引用类型还是基本类型。

现在要正式讨论类型的转换了。用过C/C++的人对基本类型的转换都会很清

楚,基本类型转换分为类型提升和强制转换。

例如:

int a=100;

long

b=a+100;//这个地方就用到了类型提升,a+100从int提升到了long

a=(int)b;//这个地方用到了强制转换

强制类型转换在某种情况下会丢失精度,如:

byte b;

int a=200;

b=(byte)a;//虽然这里用到了强制转换,但因为byte的范围是-127到127

//所以强制转换后宽度会被截短

在java中除了这些转换之外基本数据类型还可以被隐式的转换成String,例如:

System.out.print("转换"+100);//如果在数据前面有字符串用+连接

//就会隐式的转换成String

引用类型的转换实现起来要比C++简单的多,如果一个对象与另一个对象没

有任何的继承关系,那么他们就不能进行类型转换。如果要把一个派生类对象赋

值给基类对象这个称为上溯造型。如果要把基类对象赋值给派生类对象就需要强

制类型转换,这称为下溯造型,下溯造型有一些危险,要安全的进行下溯造型有

一个前题,基类对象必须是从派生类对象中上溯过来的。

例如:

class Base{}

class Child extends Base{

public static void main(String[] args){

Base base=new Child();//上溯造型

Child child=(Child)base;//下溯造型

Child child1=(Child)new

Base();//抛出ClassCastException异常

}

}

最后,谈一谈String与引用类型的转换。前面已经说过,所有的对象都是从

Object继承过来的,Object中有一个toString方法。这个方法是所有的对象都可

以转换成String,如果想把自定义的类转换成String,最安全的做法是重写toStr

ing方法。和基本类型一样如果对象前有String对象用+连接,对象就会隐式转换

成String,这种情况实际上是隐式调用了toString方法。

在此,所有关于类型转换的话题都说完了,这是我的首篇文章,希望大家喜

欢。

2004.6.15

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有