一、变量(type varName)
1、变量:可以变化的量;
2、Java是一种强类型语言,每个变量都必须声明其类型;
3、Java变量是程序中最基本的存储单元,要素包括变量名、变量类型和作用域;
4、变量作用域:
类变量:static int a = 0
;写在方法的外面,类的里面,加了static关键字;
实例变量:写在方法的外面,类的里面,从属于对象;如果不进行初始化,这个类型为默认值;String str = "sssss";
局部变量:写在方法里面,必须声明和初始化值
public void method(){
int i = 0;
}
二、常量
1、常量:初始化之后不能再改变的值,不会变动的值;可以理解为一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
要加关键字:final>>修饰符,不存在前后顺序,final MAX_A = 10; 命名一般要大写
static final double PI = 3.14;
final static double PI = 3.14;
三、变量的命名规范
- 所有变量、方法、类名:见名知意;
- 类成员变量:驼峰原则,除了第一个单词首字母小写,后面的单词首字母大写;monthSalary;
- 局部变量:首字母小写和驼峰原则;
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan;
- 方法名:首字母小写和驼峰原则;run(),runRun();
四、运算符
- 算术运算符:+、-、* 、/ 、%(取余)、++(自增)、–(自减);
- 赋值运算符:=;
- 关系运算符:>、<、>=、<=、==,!=、insatnceof(通过返回一个布尔值来标识该对象是否为特定类或者它的子类的一个实例)
- 逻辑运算符:&& 、|| 、!
- 位运算符:&,|,^(异或),~(非),>>,<<,>>>
- 条件运算符:? :(三目运算符)
- 扩展赋值运算符:+=,-=,*=,/=;
- 幂运算:java里面没有2^3,用Math.pow(2,3);
优先级:
单目乘除为关系,逻辑三目后赋值。
单目:单目运算符+ –(负数) ++ – 等
乘除:算数单目运算符* / % + -
为:位移单目运算符<< >>
关系:关系单目运算符> < >= <= == !=
逻辑:逻辑单目运算符&& || & | ^
三目:三目单目运算符A > B ? X : Y
后:无意义,仅仅为了凑字数
赋值:赋值=
位运算面试
A = 0011 1100;
B = 0000 1101;
//A与B按位比较,个位与个位比,十位与十位比,a&b两个都为1,才为1,否则都为0,所以
A & B = 0000 1100;
//A或B按位比较,个位与个位比,十位与十位比,a|b两个其中一个为1,就为1;
A | B = 0011 1101;
//A异或B按位比较,如果两个位置相同,则为0,两个位置上的数不相同,则为1;
A^B = 0011 0001;
//取反B
~B = 1111 0010
**面试会问:2乘以8=16在java中怎么运算最快?**按位运算,效率高,2<<3,得16;
<<:左移; 2<<3相当于2*2的三次方
>>:右移 ;相当于原数/2的几次方
二进制中:
0000 0000 0
0000 0001 1
0000 0010 2(左移三位得16)
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
三元运算符
x ? y : z
如果x==true,为y,否则为z;
五、包机制
1、域名倒写
2、package:必须在第一行
3、import