黑马程序员----java-----类型转换及类型之间的一些桥梁。

------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------


Java数据类型及之间的转换


基本的数据类型:

基本类型有以下四种:

1)int  长度数据类型有:byte(8bits),short(16bits),int(32bits),long(64bits)

2)float长度数据类型:单精度(32bits foat) ,双精度(64bits double),java中将小数默认为double类型,若要定义float需在数据后面用f声明。float v=64.0f

3)boolean类型变量的取值有:false,true。

4)char数据类型有:unicode字符,16位(2个字节)


对应的数据类型:Integer,Float,Boolean,Character,Double,Short,Byte,Long。

基本面的数据类型由低级到高级分别为:(byte,short,char)---int----long----(float----double


数据类型之间的转换

分为以下几种情况

1)低级到高级的自动类型转换

2)高级到一级的强制类型转换(会导致溢出或丢失精度

3)基本类型向类类型转换

4)基本类型向字符串的转换

5)类类型向字符串转换。


基本数据类型之间的转换规则

1.在一个双操作数以及位运算等算术运算式中,会根据操作数的类型将低级的数据类型自动转换为高级的数据类型,分为以下几种情况:

1)只要俩个操作数中有一个是double类型的,另外一个将会被转换成double类型,并且结果也是double类型。

2)只要俩个操作数中有一个是float类型的,另一个将会被转换成float类型,并且结果也是foat类型。

3)只要俩个操作数中有一个是long类型的,另一个将会被转换成long类型,并且结果也是long类型。

4)俩个操作数(包括byte,short,int,char)都会被转成int类型,并且结果也是int类型。



2,如果低级类型为char型,向高级类型(整型)转换时,会转换为对应的ASC||码值,再做其他类型的自动转换。


3,对于byte,short,char三种类型而言,他们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。如:

short i = 99,char c = (char) i;  System.out.println("output:"+c);


4,不能在布尔值和任何数字类型之间强制转换。


5不同级别数据类型间的强制转换可能导致溢出或精度的下降。


6当字节类型变量参与运算,java作自动数据类型的提升,将其转换成int类型。例如:

byte b ;b=3;b=(byte)(b*3);//必须声明byte


包装数据类型和基本数据类型之间的转换:

  简单类型的变量转换为相应的包装类,可以利用包装类的构造函数,即:

Boolean(boolean value), Character(char value),    Integer(int value),    Long(long value),      Float(float value),     Fouble(double  value)

而在各个包装类中,总有形为xxValue()方法,来得到其对应的简单类型数据。利用这种方法,也可以实现不同数值型变量间的转换,例如:对于一个双精度的实型类,intValue()可以得到其对应的整型变量,而doubleValue()可以得到其对应的双精度实型变量。




1,字符串与其他类型间的转换

(1)其他类型向字符串的转换

1)调用类的串转换方法:x.toString();

2)自动转换:x+"";

3)使用String的方法:String.valueOf(x);



(2)字符串作为值,向其他类型转换

1)先转换成相应的封装器实例,再调用对应的方法转换成其他类型

例如:字符中"32.1”转换成double类型的值的格式为:new Foalt("32.1").doubleValue().  也可以用:Double.value("32.1").doublevalue();

2)静态parsexxx方法

String s ="1";

byte b = Byte.parseByte(s);

short t = Short.parseShort(s);

int i = Integer.parseInt(s);

long i = Long.parseLong(s);

Float f  =Float.parseFloat(s);

Double d = Double.parseDouble(s);


3)Character 的 getNumericValue(char ch)方法。


其他类型转换:

Reader(字符读取流) r = new InputStreamReader(new inputstream(字节读取流)

Writer(字符输出流) w = new OutputStream(new OutputStream(字节输出流))


待续。



























  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值