A:自动类型转换
以下两条线路可以自动从左到右的类型转换
byte-short-int-long-float-double
char-int-long-float-double
当把任何基本类型的值和字符串值进行连接运算时,基本类型的值将自动类型转换成字符串类型。
B:强制类型转换
若要想从右边转换成左边的类型,则只能用强制类型转换
其语法格式为:(targetType)value,进行强制类型转换时通常会发生溢出,从而引起数据丢失,如:
int value=233
byte bytevalue=(byte)value
Int类型是4个字节,占32位:
Int类型的233: 0000 0000 0000 0000 0000 0000 0000 0000 1110 1001
byte类型233: 0000 0000 0000 0000 0000 0000 0000 0000 1110 1001
可见此时的bytevalue的值是1110 01001
而负数在计算机里是以补码形式存在的,所以:
bytevalue补码:1110 1001
反码:1110 1000
原码:1001 0111
得到bytevalue的值为:1001 0111 换成十进制:-(16+4+2+1)=-23
通常,字符串类型不能直接转换成基本类型,但可以通过基本类型对应的包装类则可实现,java为八种基本类型都提供的了对应的包装类:
Boolean对应Boolean类,byte对应Byte类,short对应Short类
Int对应Intteger ,long对应Logn类,char对应Character类,float对应Float类,
double对应Double类
8个包装类提供了一个parseXxx(String str)的静态方法用于将字符串转换成基本类型,
如String str=“45”
int intvalue=Integer.parseInt(str);
C:表达式的自动提升
当一个算术表达式中包含多种数据类型的的值时,整个算术表达式的数据类型将发生类型自动提升,有如下规则:
1)所有byte型、short型char型数据将提升为int型
2)整个素数表达式的数据类型将提升到和表达式中最高等级操作数同意的类型
一个典型的错误:
Short s=5;//表达式中s自动提升为int类型,表达式右边类型为int
s=s-2;//s-2为int类型,不能把一个int类型赋值给short类型,除非进行强制类型转换
如果表达式中包含字符串,则“+”不再是加法运算符,而是链接运算符
如:“helloJava”+8+7 得到的是helloJava87
7+8+“hellJava”得到的是15helloJava
分享到:
相关推荐
Java 基本类型转换 Java 基本类型转换 Java 基本类型转换
java类型转换,字符串截取工具类,sql注入过滤工具类,基本类型转换可以设置异常时的默认值,字符串截取指定位置,长度,sql注入过滤
char short int long float double 转换成byte数组
Java 基本语法(三)——运算符和类型转换 Java 基本语法(三)——运算符和类型转换
java基本类型与byte数组互相转换.pdf
Json是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。本demo将基本java数据类型转换 JSON 格式.
Java的基本数据类型以及不同数据类型之间的转换以及转换方法。
java基本类型与byte数组互相转换
java基本类型与字节流的转换工具类
类型转换分为强制手动类型转换和隐式自动类型转换 (1) 基本数据类型 (2) 引用数据类型 (3) 强制类型转换 (4) 包装数据类型
Java 基本数据类型与包装类之间的转换的思维脑图
java基本类型与byte数组互相转换.doc
java基本类型与byte数组互相转换.rar
主要介绍了Java基本数据类型与类型转换,结合实例形式分析了Java基本数据类型分类、用法,类型转换及相关操作注意事项,需要的朋友可以参考下
Java 字符串和基本数据类型之间的转换
j2swift, 基本Java到快速语法转换器 j2swift@author Pat Niemeyer ( pat@pat.net )这是一个非常基本的Java 8到快速 1.2语法转换器。 它处理像翻转类型参数和重写方法签名和构造函数之类的事情。 这不是一个完整的...
java基本类型与byte数组互相转换文.pdf
主要整理了Java中byte数组与其他基本类型的转换