java数据类型,数据类型(数值型的数据范围表示规则如下:整数的范围都是-2?-1~2?﹣1-1 *和C、C++不同,Java中没有无符号的整数,而且明确规定了各种数据所占内存字节数,保证了数据类型的长度与平台的无关性 boolean(true、false) byte(1字节 -128~127) short(2字节 -32768~32767) char(2字节,Unicode码和ASCII码是兼容的,如字母a的ASCII吗为0x61,则对应的Unicode码就是0x0061) int(4字节 -2147483648~2147483647) float(4字节±3.4*10^38) long(8字节) double(8字节 ±1.8*10^308) 整数的最大值+1,得到的值都是负的最小值 如byte类型的127+1就会变成-128。 字符型数据在内存中的存储方式:将一个字符存储到内存中,实际是将该字符的Unicode码存放到内存单元中,如字符A的的Unicode码为0x0061,它会以二进制的形式存放到内存中,java将字符变量作为无符号的短整型数据来处理的,所以java中的字符数据和整形数据之间可以通用,可以对字符型数据进行算数运算。 如: char ch = 65; char c = 1; ch = ch + 1;//在eclipse中编译不过,因为ch+1时会将数据自动向上转化为int类型,而后又直接赋值给char类型,所以程序会报错 ch = (char) ch + 1; System.out.println(ch);//输出B System.out.println(ch+c);//这句也自动转成int了,估计是只要进行加减运算就默认转成int了。输出67 System.out.println(ch+1);//输出67 //大写字母转小写 char ch = 'A'; ch = (char)(ch + 32); System.out.println(ch)//输出a 各个数据类初始化不给值时的默认值:除了boolean是false,字符是'\u0000'以外,其余的类型都是对应值的0。 数据类型转换一般有两种:扩展转换和缩减转换 扩展转换:小转大,一般不需要程序员干预。 缩减转换:大转小,需要强制转换,有可能会损失精度或者超出范围而得到意料之外的值。 亦或(不同为1):如位运算交换两个变量的值 int a=3,b=5; a = a^b; b = a^b; a = a^b; System.out.println(a+"\t"+b); //方式2 a = a + b; b = a - b; a = a - b;