JAVA编程思想---基本数据类型总结(byte,char)
2014-12-19 16:08
381 查看
一直不是很了解Byte和char的。查找了很多资料之后终于对java的基本数据类型有可一个大致的总结
一、数据之间的转换
按照java类型之间的转换顺序如下
byte---->short(char)---->int---->long---->float---->double
按照上述顺序总结如下:
1、数据类型可以从左边自动转换到右边的类型
2、数据类型从右边转换成左边的类型时,必须要进行强制转换,且转换时会丢失部分信息
1、Char是无符号型的,可以表示一个整数,不能表示负数;而byte是有符号型的,可以表示-128—127 的数
出现上述结果是因为在java里面很重要的一个特性就是多态,这里System.out.pringln();虽然看上去都是调用同一个方法,但是在实际情况下,System.out.pringln()实现了方法的重载,于是就出现了:
System.out.pringln(c),调用的是System.out.pringln(char c);
System.out.println(+c1)和System.out.println(' '+c2),调用的是System.out.println(int x);
这样调用同一个方法,同一个变量值但不同类型,可能出现不同的值。因为它们实际调用的是不同的方法。
总结
1、char是无符号型的,可以表示一个整数,不能表示负数,而byte是有符号型的,可以表示-128至127的一个数
2、char可以表示中文,byte不可以
3、字符型的常量也可以用16进制编码方式表示,范围是'\u0000'-'\uFFFF',一共可以表示65536个字符,其中前256个字符('\u0000'-' \uFFFF')和ASCII码中的字符完全重合。
不仅如此,字符型的值也可以作为整数型来使用,但它是无符号整数,但他是一个16位的无符号整数,表示范围0----65535,
如果把一个0----65535内的int型整数赋值给char类型的变量,系统会自动把这个int型整数当成char类型来处理。
4、如果对基本数据类型执行算术运算或按位运算,大家会发现只要类型比int小(即char,byte,或者short),那么在运算之前,这 些值会自动转换成int, 这样一来,最总生成的结果就是int类型。如果想把结果赋值给较小的类型,就必须使用类型转换(既然 把结果赋值给了较小的类型,那就可能出现信息丢失)。
通常,表达式中出现的最大的数据类型决定了表达式最终结果的数据类型。
如果将一个float值与一个double值相乘,结果就是double;如果将一个int和一个long值相加,则结果为long
一、数据之间的转换
按照java类型之间的转换顺序如下byte---->short(char)---->int---->long---->float---->double
按照上述顺序总结如下:
1、数据类型可以从左边自动转换到右边的类型
2、数据类型从右边转换成左边的类型时,必须要进行强制转换,且转换时会丢失部分信息
二、Byte和char之间的区别
byte 是字节数据类型 ,是有符号型的,占1 个字节;大小范围为-128—127 。char 是字符数据类型 ,是无符号型的,占2字节(Unicode码 );大小范围 是0—65535 ;char是一个16位二进制的Unicode字符,JAVA用char来表示一个字符 。1、Char是无符号型的,可以表示一个整数,不能表示负数;而byte是有符号型的,可以表示-128—127 的数
char c = (char) -3; // char不能识别负数,必须强制转换否则报错,即使强制转换之后,也无法识别 System.out.println(c); byte d1 = 1; byte d2 = -1; byte d3 = 127; // 如果是byte d3 = 128;会报错 byte d4 = -128; // 如果是byte d4 = -129;会报错 System.out.println(d1); System.out.println(d2); System.out.println(d3); System.out.println(d4);
结果为: ? 1 -1 127 -128
2、char可以表中文字符,byte不可以,如
char e1 = '中', e2 = '国'; byte f= (byte) '中'; //必须强制转换否则报错 System.out.println(e1); System.out.println(e2); System.out.println(f);
结果为: 中 国 45
3、对于同一种类型,输出结果不一样
public class Print_Test { public static void main(String[] args) { char c = (char) 2354; System.out.println(c); char c1 = (char) 2354; System.out.println(+c1); char c2 = (char) 2354; System.out.println(' '+c2); } }
输出结果: ? 2354 2386
出现上述结果是因为在java里面很重要的一个特性就是多态,这里System.out.pringln();虽然看上去都是调用同一个方法,但是在实际情况下,System.out.pringln()实现了方法的重载,于是就出现了:
System.out.pringln(c),调用的是System.out.pringln(char c);
System.out.println(+c1)和System.out.println(' '+c2),调用的是System.out.println(int x);
这样调用同一个方法,同一个变量值但不同类型,可能出现不同的值。因为它们实际调用的是不同的方法。
4、char的算术运算结果和字节型运算结果不一样
char firstChar='中'; int intChar=firstChar+1; char LastChar=(char) intChar; System.out.println("char:"+LastChar);以上的运行结果如下
char:丮firstchar+1,获取的是Unicode表中的下一个字符,所以输出的是一个字符型的字符,这和字节型的数据+1是完全不相同的两个结果
总结
1、char是无符号型的,可以表示一个整数,不能表示负数,而byte是有符号型的,可以表示-128至127的一个数2、char可以表示中文,byte不可以
3、字符型的常量也可以用16进制编码方式表示,范围是'\u0000'-'\uFFFF',一共可以表示65536个字符,其中前256个字符('\u0000'-' \uFFFF')和ASCII码中的字符完全重合。
不仅如此,字符型的值也可以作为整数型来使用,但它是无符号整数,但他是一个16位的无符号整数,表示范围0----65535,
如果把一个0----65535内的int型整数赋值给char类型的变量,系统会自动把这个int型整数当成char类型来处理。
4、如果对基本数据类型执行算术运算或按位运算,大家会发现只要类型比int小(即char,byte,或者short),那么在运算之前,这 些值会自动转换成int, 这样一来,最总生成的结果就是int类型。如果想把结果赋值给较小的类型,就必须使用类型转换(既然 把结果赋值给了较小的类型,那就可能出现信息丢失)。
通常,表达式中出现的最大的数据类型决定了表达式最终结果的数据类型。
如果将一个float值与一个double值相乘,结果就是double;如果将一个int和一个long值相加,则结果为long
相关文章推荐
- java byte、short、int、long、float、double、char基本数据类型范围
- java----基本数据类型精度的研究与使用(char,byte,int等)
- Java核心编程第三章java的基本数据类型及运算符的总结
- C的无符号数据类型int,short,byte 转为 Java对应的数据long,char,short
- JAVA基础学习总结---原码、补码、反码以及基本数据类型
- Java bit / byte 基本数据类型
- Java 中八种基本数据类型占用字节空间总结
- 黑马程序员 Java自学总结十二 String类和基本数据类型包装类
- 【Java编程】Java基本数据类型
- 【Java编程】Java基本数据类型
- Java基本类型转换(Primitive Data Type Casting) int/byte & char
- java中byte char short类型数据的操作说明
- Java数据类型之byte、char
- linux编程--基本数据类型unsigned char/int
- Java语法总结 - 基本数据类型
- java语法总结01--基本数据类型
- Java语法总结 - 基本数据类型
- C的无符号数据类型int,short,byte 转为 Java对应的数据long,char,short
- java基础:八种基本数据类型占用字节空间总结
- JAVA语法总结 - 基本数据类型