基本数据类型(四类八种):不能为null
一、整数型
byte----2的8次方
short----2的16次方
int----2的32次方
long----2的64次方
二、浮点型
float----4个
double---8个字节
三、布尔型
boolean(true, false)
四、字符型
char(可以是一个字母, 也可以是一个汉字)
int a = 5;
全部存到栈
引用类型:String s = "abc";
所有的类、数组、接口
运算符 字符串连接字符串需要注意的地方:在输出的时候,只要有一个参数是字符串,整个输出结果都是字符串。
异或运算符:转换成二进制的形式来对比每一位数,不一样的为1,一样的为0
类型转换的优先级:double float long int chcar short byte
char short byte进行运算的时候,取值默认为int
隐式转换(低--》高) 显示转换(高--》低)
分支
if(表达式_布尔值) {
...
}
if(表达式_布尔值) {
...
} else {
...
}
if(表达式_布尔值) {
...
} else if(表达式_布尔值) {
...
}
if(表达式_布尔值) {
...
} else if(表达式_布尔值) {
...
} else {
...
}
int a = 2;
switch(a) {
case 1
...
break;
case 3
...
break;
case 5
...
break;
default
...
}
if和switch的区别
1、switch:必须用break结束循环,不然会无限循环;if如果不满足条件自动结束循环。
2、if:针对的结果是布尔型的判断
3、能用switch的可以用if,反过来则不行
public class kehouzuoye1{
public static void main(String args[]){
int a = 3;
int c = 5 - (a--); //c=5-(3-1)=2
boolean b = a == c; //b=false
b = b && (a < c--) ? false : true; //b=false
int d = b ? 7 : 9; //d=9
int e = d - 3; //e=6
c *= 3; //c=3
int f = ((++e == c) ? 25 : 35) + (++a); //f=38
System.out.println("f的值:" + f);
}
}
public class kehouzuoye2{ public static void main(String args[]){ int a, b, c; a = c = 8; b = a++; //b=8;a=9; short d = 3; long e1 = d++ + a; //e1=12;d=4; long e2 = d++ + a++; //e2=13;d=5;a=10 boolean b1 = false; boolean b2 = !b1; //b2=true float g = b2 ? a : b; //g=10 double h = g -= 1; //h=g=9 boolean b3 = g == 10; //b3=false char s = b3 ? 'a' : 'b';//s='b'=98 int i = 2 * s; //i=2'b'=186 } }
循环
for(int i=0;i<10;i++) {
...
}
while(表达式_布尔值) {
}
do {
} while(表达式_布尔值);