Day02—数据类型
1、数据类型
分为基本数据类型和引用数据类型。
(1)基本数据类型(四类八种):
①整型:byte(1字节);short(2字节);int(4字节);long(8字节)
②浮点型:float(4字节);double(8字节)
③字符型:char(2字节)
④布尔型:boolean(1字节)———结果为true / false
(2)引用数据类型:数组、类(默认值为null)、接口、枚举、标注。
2、常量
在Java中不再改变的数据,用final修饰。常量一般用大写字母表示。
final double PI=3.14; //常量,值不能再改变
3、变量
①在程序运行过程中,它的值是可以改变的。
②本质上表示一块内存区域。
③变量加上final关键字修饰可以转换为常量。
(1)变量定义(三要素):数据类型 变量名 变量值
(2)语法:
① 定义时直接初始化:数据类型 变量名 = 变量值;
int age = 10;
②同时定义多个相同类型的变量:
数据类型 变量名1=变量值1, 变量名1 = 变量值1;
int age = 10,id = 001;
③先定义,再赋值(变量在数用前必须进行初始化操作):
数据类型 变量名;变量名 = 变量值;
int age;
age = 10;
(3)Java默认整数是int类型,小数是double类型的。
4、类型转换
(1)自动类型转换:小范围和大范围的数据进行运算,会自动把小范围的数据提升为大范围类型数据,然后和大范围数据进行运算。
short s = 1; int i = s+1; //会自动把s提升为int类型再和1进行运算
(2)强制类型转换:把大范围的数据赋值给小范围的数据,需要把大范围的数据先强制转化为小范围,再赋值(会丢失数据)
double d = 5; int i = (int)d;
(3)阿斯克码(ASCII)(字符和数字的对应关系,0—48;A—65;a——97)
5、运算符
(1)算术运算符:+ - * / % ++ –
①如果两个int类型相除结果是小数,直接砍掉小数部分,结果只取整数部分
②%取模,求余数,取模的结果的符号和被除数一致
③自增或自减单独使用时,++/--在前和在后没有区别
④和赋值运算符一起使用: ++/--在前,先自增或自减,然后再赋值; ++/--在后,先赋值,然后再自增或自减
(2)逻辑运算符
①&&:短路与(两边都为真结果为真,其余为假;若第一个为假,不会再看第二个条件,结果为假)
②||:短路或(两边都为假结果为假,其余为真;若第一个为真,不会再看第二个条件,结果为真)
③!:取反
(3)关系运算符:运算结果是一个逻辑值boolean类型,取值为true或者false
(4)赋值运算符:= 把右边的值赋给左边的变量
int i =1(把1赋给i)
+=(a=a+b) -= *= /= %=
(赋值运算符如果需要强制类型转换,会自动转换)
(5)位运算符:
①&:按位与(同真为真,其余为假)
②|:按位或(同假为假,其余为真)
③^:按位异或(两操作数相同,结果为0;两操作数不同,结果为1)
④~:按位非/取反(操作数为1,结果为0;操作数为0,结果为1)
⑤<<:左移(右边空位补0)
⑥>>:右移(左侧空位补最高位,即符号位)
(6)三目运算符:条件表达式?表达式1:表达式2
//运算规则:若条件表达式为true,值为表达式1,否则值为表达式2
class Test{
public static void main(String[] args){
int x = 3;
int y = 5;
int z = ((x > y)?x:y); //若x大于y,值为x,否则为y
}
}
6、运算符优先级
①单目运算符包括:! ~ ++ --,优先级别高。
②优先级别最低的是赋值运算符。
③可以通过()控制表达式的运算顺序,()优先级最高。
④算术运算符 > 关系运算符 > 逻辑运算符