sxt6.24

来源:互联网 发布:魔女的心脏知乎 编辑:程序博客网 时间:2024/05/17 22:43

java数据类型:
一、基本数据类型
1、数值类型:
(1)整数类型:

byte;short;int;long;

(默认int)


(2)、浮点类型:

float :单精度、4个字节;

double :双精度、8个字节;(范围大)

默认double,除非注明“float f=1.1f”


(3)、字符型:

编码:Unicode   2个字节

char 例:char c=‘c’;(只能放一个)

0——65536,从0开始,没有负数;


*2、布尔类型:

true,false(开、关)

逻辑判断,一个字节只用一位


二、引用数据类型:
1、数组
2、类
3、接口

三、运算符:
1、算术运算符:
+,-,*,/,++(自增),--(自减),%(余数)

2、赋值运算符:
=

3、扩展赋值运算符:
+=,-+,*=,/=,%=(取余)

4、关系运算符:
<,>,<=,>=,==(等于),!=(不等)
返回值用:Boolean,判断真假

5、位运算符:

四、类型转换:

·两数运算时,类型一致
1、自动类型转换:
*(1)byte b=10;     只要在-128——127之间,就可以自动转换成byte
(2)int c=a+10;   数值运算时,往精度高的方向提升:byte+int=int;int+float=float;
*(3)byte b=10+7; 可以编译成功,右边是都是常量
*(4)byte b=10;byte c=5;b=b+c     失败,右边是变量,不能确定在byte范围内
(5)char c=‘a’;c+1        根据unicode编码表
(6)b+=(b+10)      成功,“扩展赋值运算符”
*(7)b=b+10;编译失败,右边是变量
          b+=10;编译成功,扩展运算符编译器底层自动类型强转;
2、强制类型转换:
(1)b=(byte)(b+10)     精度丢失,出现负数
*(2)char c='a'; (char)(c+1)  根据ascii码值去相应的unicode码表找相应的字符
(3)byte b=10; byte c=20;byte d=c+b;      失败,因为右边是变量,不能确定是否在byte内;
        byte d=(byte)(c+d)