/*
运算符
A.算数运算符(+、-、*、/、++、--、%)
1.byte
short int long float double
char
byte short char之间相加自动升级为int,得到的结果为int型
demo:byte b=3; b=b+3;第二句编译出错,应为b=(byte)(b+3);
强制转换不适用于乘法分配律,只要有加号,则自动提升为int;
2.++、--
a.不参与运算,则符号在前在后结果一样;
b.参与运算时,符号在后则先把原值参与运算,然后再自增自减;
符号在前则先把原值自增自减,然后得到的值再参与运算;
demo:int a=3; a= a++ + ++a;System.out.println(a);得到的a=8;
a= ++a + ++a;System.out.println(a);得到的a=9;
3.%
取余数,%的值符号与被除数的符号一致;
4.考试题
分别取出123的个位十位百位的数值
个位:123%10-------------------3
十位:123/10%10----------------2
百位:123/100------------------1
B.赋值运算符(+=、-=、*=、/=、%=)
byte b = 3; b+=3;System.out.println(b);//b=6,b+=3相当于b=(byte)(b+3);
b=b+3;System.out.println(b);//第二句编译出错,应改为b=(byte)(b+3);
注:赋值运算符自动强转
C.比较运算符(==、!=、>、<、>=、<=)
比较运算符的值为boolean型,true or false
D.逻辑运算符(&、|、!、^、&&、||)
&:遇false则false
|:遇true则true
!:取反 !true=false
^:相同则为false,不同则为true
&&:短路与,左边为false,则右边指令不执行;
||:短路或,左边为true,则右边指令不执行;
运算结果也为boolean型
E.三目运算符(条件表达式?表达式1:表达式2)
条件表达式为true,则结果为表达式1;条件表达式为false,则结果为表达式2;
作用域(生命周期)——生命周期即指变量占用的内存在周期结束时被(释放)或(销毁);
1.父子作用域是包含关系,兄弟作用域是并列关系
2.子作用域可以使用父作用域定义的变量,兄弟作用域可以定义相同的变量;
3.全局变量生命周期长,占用内存时间长;局部变量生命周期短,有优化内存的效果,编程时尽量少定义全局变量,可以使程序占用的内存少,运行快; |
|