一、数据类型
1.java中默认的整数类型就是int型;但一个数值很小在byte、short的取值范围内时,可以通过赋值来改变数据类型,比如:byte=12;short=15;如果数值过大超过了int的取值范围,java不会把它默认成long类型,需要在数据后面加"L"来声明数据为long类型数据,比如:long = 254564894654849L ;
2.java中默认的浮点类型为double类型,声明float常量的时候需要在数据后方加”F“或”f“;
3.char类型数据的表现形式有三种:1)用单引号括起来的单个字符,如char c1 =’a‘、char c2 = ’中‘、char c3= ’9‘;2)用转义字符\将其后的字符转换为特殊的字符常量,如char b1 = ’\n‘ 此处\n表示换行符;3)直接使用Unicode值来表示字符常量;
4.布尔类型 boolean的值只有两个,一个是true一个是false,适用于逻辑运算,一般用于流程控制,不可以用0或者非0来代替true和false。
二、数据类型的转换
1.自动转换:容量小的类型自动转到容量大的类型。
byte、short、char之间不会互相转换,他们之间转换时会先转换到int类型在进行转换。浮点型转换为整数型小数部分全部去掉。
注:”+“在碰到字符串后将进行重载,起连接符的作用,如System.out.println("5+5="+5+5),此时输出为5+5=55,System.out.println(5+5+”=5+5“)此时输出为10=5+5.
2强制类型转换;自动转换的逆过程,将容量大的数据转换成容量小的数据,用的时候需要加强制转换符”()“,但可能造成精度损失或溢出。基本数据中除boolean类型其他类型之间都可以先换转换,只不过有的是强制有的是自动。
三、进制
1.进制的表现形式:
二进制:0、1 满2进1,以0b或0B开头
八进制:0-7 满8进1,以0开头’
十进制:0-9 满10进1
十六进制:0-9 a-f 满16进1,以0X或0x开头
2.进制之间的相互转化:
十进制转换为任意进制就除进制数,取余数倒着排
任意进制转换为十进制,用相应的位上的数乘以权(权=进制数的觅)
二进制转换为八进制,将二进制的每三位转换为八进制上的一位
二进制转十六进制,将二进制的每四位转换为十六进制上的一位
八进制转换到十六进制需要将八进制先转换为二进制再转换为十六进制
3.负数在计算机中的表现形式
例:求-13在计算机里的表现形式,先找到13的二进制表现形式为 0000 1101,求其补码1111 0011,这就是-13在计算机中的表现形式
总结规律:负数的补码:右边数第一个不为0的数保留,其余全部取反。
4.根据二进制求对应的整数
1)若二进制数为正数,则直接利用二进制转换十进制方法转换;
2)若二进制为负数,则需要利用上面规律求出补码,再利用二进制转换十进制转换为十进制。
四、算数运算符
五、赋值运算符
1.”=“用在给变量赋值使用,也可以用在两个变量之间赋值,当两边数据类型不一致时可以使用自动转换或强制转换原则进行转换; 并且支持连续赋值,如 int a; int b; int c;a+b+c=20;
2.扩展赋值运算符:”+=“”-=“”*=“”/=“”%=“,a+=10的含义为a=a+10,保持操作数据左边数据类型不变。
六、比较运算符
七、逻辑运算符
1逻辑运算符的种类
2.短路与,短路或的含义
短路与(&&):如果左边为真,右边参与运算,如果左边为假,右边不参与运算;
短路或(||):左边为真时右边不参与运算;
八、位运算符
1.位运算符的种类
2.有符号右移的含义>>:将二进制数整体向右移,移前最高位是0则移后在空位补0,如果移前最高位是1则移后在空位补1,保持前后数据符号不变
有符号的右移>>>:将二进制数整体向右移,无论二进制数最高为0或1,都用0来补齐空位。
对于一个正数,有符号右移,无符号右移相同的位数,结果相同。无符号右移的结果总是正数。
对于一个负数,有符号右移,无符号右移相同的位数,结果肯定不相同。
3.^异或运算符的用法:
总结规律:
异或操作之后的结果和原来任意一个数再进行异或,都能得到另一个值。
如:12^5^12=5