一、基本数据类型
1、数值型:
(1)、整型
1、byte:一个字节
2、short:2个字节
3、int:4个字节
4、long:8个字节
(2)、浮点型
1、float:4个字节
2、double:8个字节
2、字符型
char:2个字节
3、布尔型
boolean:1个字节
二、引用数据类型
1、string
2、数组
3、类(Scanner)
4、接口
5、对象
等
变量和常量
1、变量:一个变化的量,它是在内存中存储
定义(三要素):数据类型 变量名=变量值;
注意:
1、没有赋值的变量不能直接使用
2、在同一作用域中变量不能重复定义(后续:成员变量,局部变量)
3、变量在使用前必须声明数据类型
4、变量的值在声明之后是可以改变的
变量内存图
理解变量:内存中变量好比旅馆的房间,内存中的常量好比住旅馆房间的人
2、常量
1、 字面常量
2、整形常量:10、11…默认类型为int类型
3、浮点常量:3.15,315e2,默认类型是double类型
4、‘a’:字符常量
5、true,false:布尔常量
数据类型转换
1、自动类型转换
大类型转小类型
2、强制类型转换
小类型转大类型(小类型 变量=(小类型)大类型值)
Java运算符
1、算术运算符
+:求和,正数,连接
-:求差,负数
:求积
/:求商(数学)如:13.0/2=6.5,13/2=6
%:求余数(整数)符号和被除数要一致
++:后加:代表先运算后自加,先加:代表先自加后运算
– :后减代表先运算后自减,先减:代表先自减后运算
2、赋值运算符
=:赋值
扩展赋值运算符(其实是算数运算符和赋值运算符的结合)
+=,-=,=,/=,%=
好处:
1、自动强制类型转换
2、简单
3、编译速度快
3、关系运算符1、>,<,>=,<=主要用于数值型运算:整形。浮点型,字符型2、==,!=;主要用于基本数据类型和引用数据类型结果的布尔值优先级(>,<,>=,<=)大于(==,!=)4、逻辑运算符1、&,|,^,!2、&&,||操作数:布尔值;结果布尔值优先级:!>&>^>|逻辑与(或):&,|;短路与(或):&&,||;相同点:两者运算规则一致不同点:&&:如果左边为false,则右边不计算了结果为false||:如果左边是true,右边就不计算了,结果是true&,|还可以做位运算5&6优先级:关系>逻辑5、位运算符(位移)1、&,|,^,~2、<<:左移动>>:右移动>>>:无符号位右移
public class TestOperator5{
public static void main(String[] args){
System.out.println(5&6);//4;
System.out.println(5|6);//7;
System.out.println(5^6);//3;System.out.println(~6);//-7
System.out.println(~(-7));//如果一个数和另外一个数异或两次,还是原来的数;可以用作加密解密;
System.out.println(5^6^6);
System.out.println(5^3^3);System.out.println("=================================");
/*
<<:左移,左移n位,相当于乘以2的n次方,右边空位补0;
>>:右移,右移n位,相当于除以2的n次方,左边空位补符号位;
16:000…0001 0000;
16<<1: 000…0010 0000;右边空位补0;
16>>1: 000…0000 1000; 左边空位补符号位;
*/
System.out.println(16<<1);//32;
System.out.println(16<<2);//64;
System.out.println(16<<3);//128;
System.out.println(16>>3);//2
/*
:无符号右移,右移n位,相当于除以2的n次方,左边空位补0;
-7: 111…1111 1001;
-7>>>1: 011…1111 1100;
*/
System.out.println(-7>>>1);//2147483644;
}
}
6、条件运算符x?y:z,三个操作数x表示布尔表达式,如果是true,表达式的值就是y,如果是false,表达式的值是z
运算符的结合性
表达式的运算符优先级相同,从右往左算
例:
5>6?‘a’:‘b’>‘c’?‘c’:‘d’:从右往左
int x=y=z=10;从右往左
运算符的优先级
赋值<条件<关系<算数<单目