Java数据类型及运算符
1.Java数据类型分为基本数据类型和引用数据类型
(1).基本数据类型:8种
a).boolean:在java中boolean 只能去true 或者false
b).byte:1个字节,八位。取值范围:-2的7次方~2的7次方-1。也就是(-128~127)
c).short:2个字节,16位。取值范围:-2的15次方~2的15次方-1
d).int:4个字节,32位。取值范围:-2的31次方~2的31次方-1
e).long:8个字节,64位。取值范围:-2的63次方~2的63次方-1
f)字符型:char:是单引号中的内容,且只能有一个字符。2个字节,16位。char类型可以作为一个无符号的整数,取值0-65535.有数字和字符的双重特性,能够参与数学运算。
g).浮点型:java中小数默认为double类型。Double和float
h)float:4个字节
i)double:8个字节
j)整数类型:byte、short、int、long
(2).引用数据类型:数组、类、接口、枚举等
(3)java中采用了Unicode编码
2.switch中的变量只能是byte、short、char、int、枚举类型
3.if和switch的区别
If可以取范围值,可以去固定值。Switch只能取固定值,且取值类型固定。
4.基本数据类型之间的转换:
(1).char-->int
(2).byte-->short-->int-->long-->float-->double
a).表示数的范围之内的自动转换
b).小范围到大范围能自动转换
c).子类到父类的转换
d)基本数据类型和包装类(Integer、Double、Float等)之间的转换
(3).如果不能自动转换,只能强制类型转换。语法:(要转换的类型)要转换的变量。
5.运算时几点注意的地方:
a).对于多种类型的混合运算,都是先转换为大范围的之后在运算
b).所有小于int(char、byte、short)的运算,都是先转换为int在运算
c).基本数据类型和字符串用+相拼接,都是先转换为字符串在拼接。拼接完之后就是字符串。
运算符
1.算数运算符:+、—、*、/、%
2.自增自减运算符:++、--
(1).后++:先计算,在自增。前++:先自增,在运算。
(2)注意:常量不能自增。
3.赋值运算符:=、+=、-=、*=、/=等
(1).注意+=是一个运算符,内置强制转换。
4.逻辑运算符:&&、||、!
5.位运算符:&、|、^、~
6.逻辑运算符只能位运算符之间的区别:
(1).逻辑运算符只能操作boolean表达式,会产生短路
(2)位运算符除了~之外也可以操作布尔表达式,还可以操作整形数据。且不会产生短路
(3)三目运算符:布尔表达式?结果1:结果2。如果布尔表达式的值为true,得到了结果1,为false得到了结果2。
7.移位运算符:>> 、<<等。
下面一段代码介绍部分运算方法
package day10;
public class TestInt {
public static void main(String[] args) {
byte b1 = 1;
byte b2 = 2;
//小于int 转换为int在计算
int ni1 = b1+b2;
System.out.println("ni1:"+ni1);//ni1:3
long l1 = 2;
int ni2 = 2;
//int与long相加,先转换为大范围long在计算
long l2 = l1+ni2;
System.out.println("l2:"+l2);//l2:4
int ni3 = 2;
String str1 = "asd";
//基本数据类型和字符串用+相拼接,都是先转换为字符串在拼接,拼接后是字符串
String str2 = ni3+str1;
System.out.println("str2:"+str2);//str2:2asd
//基本数据类型和包装类之间的转换
int ni4 = Integer.parseInt("123");
System.out.println("ni4:"+ni4);//ni4:123
int ni5 = 2;
int ni6 = 2;
//赋值运算符,内置强制类型转换
ni6 += ni5;
System.out.println("ni6:"+ni6);//ni6:4
//位运算
int ni7 = 8|2;
System.out.println("ni7:"+ni7);//ni7:10
//逻辑运算符
boolean f = b1>b2||b1<0;
System.out.println("f:"+f);//f:false
//三目运算符
int ni8 = b1>b2?b1:b2;
System.out.println("ni8:"+ni8);//ni8:2
}
}