您的位置:首页 > 编程语言 > Java开发

java(1)-java的数据转换类型详解 -万万没想到系列(2)

2014-08-11 23:17 726 查看
原创作品,欢迎阅览

转载注明 csdn.blog.net/loadingsong

Java中数据转换类型分为自动类型转换和强制类型转换,在这里再添加点基本数据类型与字符串转换。其中各类型特点是:

1、自动类型转换

 (1)两种类型兼容

 (2)目标类型大于源类型

2、强制类型转换

(1)两种类型不兼容

(2) 目标类型小于源类型

(1)通俗点来说,就是自动类型转换必须是类型间能够转换,而且要转换过去的类型必须范围大于现在的类型;强制类型转换就是两种类型间不是通常能理解的转换,需要手动强制性解决,同时要转换过去的类型范围较小。当然,在这里,强调一点,强制类型转换必须是目标类型能够存储的下源类型,要是超出了目标类型的范围,就会丢失部分信息。例:float f = 3.14159f;

                              int i=(int)f;  输出结果为 3

切记!

这里,看一下转换关系图:

 


(实线为无损转换、虚线可能丢失精度)

注意:char类型转换

如果char类型向高级类型(一般为整形)转换时,会将转换成其相应的ascii码.

例:char c=‘A’;

        int i=c;  那么输出结果就是A对应的ascii码,查表得 65 

 

(2)基本数据类型与字符串转换

1、基本数据类型与字符串拼接就会变成字符串

如:

int a=5;

String b=“10”+a;

2、 字符串转换成基本数据类型

在这里必须强调,只有能够转换成相应的基本数据类型的值才可以转换,如

public static void main(String[] args) {

String s="100";

//String s="100.56";错误

String s2="3.14";

//String s2="1232";错误

String s3="true";

//String s="heihei";错误

int i=Integer.parseInt(s);

float f=Float.parseFloat(s2);

boolean b=Boolean.parseBoolean(s3);

System.out.println(i);

}

 

(3)数据类型间的运算

技巧:

表达式子中有double类型,结果为double。

表达式中在没有double类型的情况下,如果有float类型,结果为float类型。

表达式中在没有double、 float类型,结果与表达式中的最大数据类型一致。

特例:

byte 和short比较特殊,它们运算后结果会自动提升为int类型。

举例:

byte a=10;

        byte b=20;

        int  c = a+b;

        System.out.println(c);、

//输出结果为30 ,如果更改为   byte c = a+b;则报错;

原因是:运算符+ 最低要求是int 

所以必须强制转换,byte c = (byte)(a+b);这样正确,输出为30

数据类型间的运算会有许多需要注意的细节,以后还会讲到的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 数据类型