java复习-3
基础类型转换
运算中要先将不同类型的转换成同一类型再进行计算;
int i=128;
byte b=(byte)i; //内存溢出
double c=i;
System.out.println(i);
System.out.println(b);
System.out.println(c);
//强制类型转换--高--》低
//自动转换 低--》高
/*
* 1不能转换成boolean
* 2不能把对象类型转换为不相干类型
* 3把高容量转换为低容量时,强制转换
* 4转换的时候可能出现内存溢出,或者精度问题
* */
System.out.println("============");
System.out.println((int)23.7);
System.out.println((int)-45.89f);
System.out.println("============");
char d='a';
int e=d+1;
System.out.println(e);
System.out.println((char)e);
System.out.println("============");
//操作大数时注意溢出问题
int money=10_0000_0000;
int year=20;
int total=money*year;//默认是int
System.out.println(total);
long total2=money*year;
System.out.println(total2);
long total3=money*(long)year;
System.out.println(total3);
变量
java变量是程序中最基本的存储单元,其要素包括***变量名,变量类型和作用域。***
变量作用域:首字母小写,驼峰原则
局部变量:方法内两个大括号之间,生命周期就在其中,并且要先声明和初始化值
实例变量:类内方法外,从属于对象
类变量 static
所有的数值类型初始化一般是0
boolean值默认为false
除了基本类型其他都是null
常量
final 常量名=值;
修饰符不存在先后顺序
final static double PI=3.14; //大写字母和下划线
运算符
算数运算符
赋值运算符
关系运算符
逻辑运算符&&与 ||或 !非
运位运算符
条件运算符 ? :
扩展运算符 += -= *= /=
自增++ 自减--
int a=3;
int b=a++;//执行完代码后,先给b赋值在自增
//a++ a=a+1
System.out.println(a);
//a=a+1
int c=++a;//执行完代码后,先自增在给b赋值
System.out.println(b);
System.out.println(c);
&& 两个都为真结果才为真
|| 两个都为假结果才为假
! 如果为真则变假如果为假则变真
短路运算
a&&b
如果第一个a为假则不会计算b
位运算
A=0011 1100
B=0000 1101
A&B =0000 1100 //同一位都是1才1
A|B=0011 1101 //同一位都是0才为0
A^b=0011 0001 //同一位相同为0不相同为1
~B=1111 0010 //取反
2*8怎么运算最快 2*2*2*2
<<左移 >>右移
2<<3 2左移3位 *2^3
右移 /2
0000 0010 2
0001 0000 16
a+=b; --》 a=a+b;
a-=b; --》 a=a-b;
+号两侧如果有字符串,则都为字符串
细节
System.out.println("ss"+1+2);
System.out.println(1+2+"aa");
结果
ss12
3aa
如果数在左边会先相加
三元运算符
x ? y : z
如果x为true 值则为y否则为z