Java变量和运算符
java变量
变量的三要素:数据类型 变量名 变量值
格式: 数据类型 变量名 = 变量值;
注意事项:
1)在{},变量名不能相同
2)定义变量,不能不赋值就使
命名规则
所有变量、方法、类都要做到"见名知意";
小驮峰命名法:除了第一个单词首字母小写,后面的单词首字母大写
类的成员变量 --- 首字母小写+小驮峰规则 dogName
局部变量 --首字母小写+小驮峰规则
常量 --- 大写字母加下划线 MAX_NUM
类名 --- 首字母大写 DemoTest
方法名 --- 首字母小写+小驮峰规则 printArray()
包名 --- 全部小写
运算符
算术运算符 + , - , * , / , % , ++ , -- ;
关系运算符 == , != , > , < , >= , <= ;
逻辑运算符 && , || , ! ;
位移运算符 & , | , ~ , ^ , << , >> ;
字符串相加 + String
int a = 10;
int b = 20;
System.out.println("aa" + a + b);
System.out.println(a + b + "aa");
自增++ 参与运算需要看其位置
1)前++ (++a) 先自增,后赋值
2)后++ (a++) 先赋值,后自增
例:
int a = 10;
int b = 10;
int c = 10;
a = b++;
c = --a;
b = ++a;
a = c--;
请分别计算a,b,c的值
a = 9 b = 10 c = 8
自减一样
三目运算符
格式
(表达关系式)?表达式1:表达式2;
如果表达关系式为true,结果为表达式1
false 表达式2
面试题
1、
int a = 4;
int b = (a++)+(++a)+(a*10);
4 6 60
a=5 a=6 a=6
b= 4+6+60 =70;
2、
short s=1,;
s = s+1;
short s=1;
s+=1;
上面两个代码有没有问题,如果有,那里有问题
有问题,short参与运算,会自动将类型提升为int
short s=1,;
s = s+1; // 这段代码会报错,需要强制转换
//改为 s=(short)(S+1);
//S+=1;包含强制转换 ---> s=(short)(S+1);
3、
单与(&) 和单或(|) 都需要运算
逻辑双与(&&) 和 逻辑双或(||)具有短路效果
(条件1) && (条件2) 如果条件1为flase,条件2不会运算
(条件1) || (条件2) 如果条件1为true,条件2不会运算
4、
请用最有效的方式写出2乘以8 的结果
int c = 2<<3; //左移3位 << 左移 >> 右移
请自己实现两个整数变量的交换
使用中间变量的方式,
int a = 10;
int b = 20;
int temp = a ; // 中间变量
a= b; //20
b=temp; //10