数据类型(数值型的数据范围表示规则如下:整数的范围都是-2ⁿ-¹~2ⁿ﹣¹-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;
java数据类型
最新推荐文章于 2024-06-10 12:24:26 发布