Java中的八大数据类型详谈

JAVA中的八大数据类型

Java的基本数据类型在任何操作系统上都具有相同的大小

1.int 取值范围-231~231-1 类型长度:4个字节(32位) 默认值:0
2.short 取值范围 -215~215-1 类型长度:2个字节(16位)
3.long 类型长度:8个字节(64位)
4.byte 类型长度:取值范围:-128~127 1个字节(8位)
5.float 类型长度:4个字节(32位)
6.double 类型长度:8个字节(64位)默认值:0.0
7.boolean:1个字节(8位)默认值:false
8.char:1个字节(8位)默认值:\u0000
特殊的数据类型:引用数据类型:数组 类 接口
String是一个引用数据类型,用来表示字符串,用" "表示,在Java中可以使用+连接两个字符串,并且只要使用了+时,也出现了字符串,则所有的数据类型(包括引用数据类型)都会变为String.
在Java中,一个整数默认是int型,若要定义为long型,需要在整数后加L(推荐)或l
一个小数默认是若要定义double型,若要定义为float类型,需要在小数后追加F或f
在Java中没有用0表示false,用非0表示true的概念。

十六进制类型表示时要以 0x 或 0X 开头
“A” 与 'A’的区别:前者是字符串常量,后者是字符常量,前者比后者需占用更多字节。

类型转换

小类型提升为大类型会自动转化。
大类型转换为小类型需要强转,并且可能会造成数据精度丢失

1.隐式的类型转换(自动类型转换)

各个基本类型之间的转换关系:

1)在整数之间进行类型转换时,数值不会发生改变.但将int或long型转换成浮点型时,由于存储方式不同,int和long包含的位数比float所能表达的位数多,有可能存在数据精度的缺失.

2)char、byte、short 3种类型之间 的转换

byte b = 1;
char c=1;
short s = 1;

以上情况是一种特例:虽然我们知道1是一个int型的整数,但却可以直接向数据类型低的转化,是因为编译时整型的字面常量赋值给比int类型低的变量类型,而字面常量又没有超过该变量类型的取值范围,则可以转换成功,编译器可以做隐式类型转换.这种特例只适用于对变量进行赋值,不适用于方法调用语句.
但即使是在取值范围里的整型变量赋给byte也需要强制类型转化。
3)当byte与short或char (或是三者的混合)参与运算时,结果为int型
4)使用符合运算符"+="时,复合运算符在赋值时可以自动将运算结果转化为左侧的操作数类型.
5)byte到char的类型转换比较特殊:称为扩展收缩转换
在这里插入图片描述

2.复合运算符 的特征
小数据类型与大数据类型做数值运算时,小数据类型会自动提升为大数据类型,eg:10+1L—>int+long–>long+long
3.强制类型转换
当取值范围大的数据类型向取值范围小的数据类型转换时有可能会损失精度
eg:byte b=300;
输出b的值为44;
这是因为编译器会直接截取300的二进制数(‭000100101100‬)的低八位(一字节byte的存储位数)再转换成十进制数输出。
当浮点型强制转换为整型,采用的是"去1法",也就是无条件的舍去小数点的所有数字,不会进行四舍五入计算.

任何类型的数据都可以向String转换

典型例题

byte b = 3,c = 5;
byte d =b+c;
System.out.println("d"+d);

以上程序编译不通过,byte b = 3,c = 5;有错误,不能这样定义变量。当两个数值进行计算时,运算结果至少是int型,若参与运算的两个数值有一个数值类型比int高,则运算结果与高级别的数据类型相同。

转义字符:
换行 \n
制表符\t
双引号"
单引号’
&& 和 || 都是短路运算符,即当只要有条件返回false,&&(短路与)就不再判断剩余条件,返回false;只要有条件返回true,||(短路或就不再判断剩余条件,返回true)
三目运算符:
数据类型 变量 = 布尔表达式?满足时赋值:不满足时赋值
eg:

      int a=3;
      int b=4;
      int c=5;
      int ret=a>b?a:(b>c)?b:c

典型例题:
1.存在使i+1<i的数吗?
答:MAX_VALUE,因为MAX_VALUE+1 == MIN_VALUE.(拓展:MIN_VALUE-1 ==MAX_VALUE)
2.System.out.println(“5”+2);的输出结果为:52
3.float f=3.5;是错误的,因为3.5是double类型比float类型大,需要强转。
改为:float f=3.5F;

猜你喜欢

转载自blog.csdn.net/weixin_42962924/article/details/83660990