一、变量
1、命名规则
①以字母、_、$开头,后面可以是字母、数字、下划线(_)和美元符号($)的组合。不过建议不要使用下划线和美元符号开头,它们有特殊的含义。
②变量名字长度没有限制,大小写敏感。
③不能够使用Java关键字和保留字。例如:保留字const、goto。面试有时候会问goto是Java关键字吗?要注意区分关键字和保留字,保留字在Java中不会使用到的。
2、声明
①Java中不区分变量的声明与定义。面试可能会问Java中变量可以重复声明吗?答案当然是不可以的,首先Java中不区分声明与定义,可以重复声明的话那就是
重复定义了。Java中不像C++那样可以使用extern关键字进行重复声明。
②可以在同一行声明多个变量,但是不建议那么做。例如:int num1,num2。
③应该在就近声明,变量的声明尽可能靠近变量第一次使用的地方,这是一种良好的编程习惯。长期写惯C的程序员可能很不习惯。
3、变量的初始化
变量分为局部变量和类成员变量。一般不说全局变量,Java是完全面向对象的。
①局部变量在方法内,一个方法不可以访问到另一个方法内的局部变量。局部变量不会进行默认的初始化工作,使用局部变量之前一定要进行初始化。
②成员变量在类体内方法体外。成员变量会进行默认的初始化。但是注意,千万不要依赖这种行为!!!
二、常量
1、常量使用关键字final定义。
①常量名一般用全大写表示,也有在每个单词之间加下划线分隔的写法。例如 final MAXSIZE = 5; final MAX_SIZE = 5;
②只能初始化一次,之后就不能够再改变它的值。使用static final设置一个类常量。
③在开发中经常会把所有的共同变量放在一个类里面,该类作为一个保存常量的类。
例如:
public class ConstanCodes{
private ConstanCodes(){
}
public static final MAX_SIZE = 5;
}
三、运算符
1、加减乘除模
普通的四则运算没太多知识点,下面提几个注意点:
①整数被0除产生一个异常,而浮点数被0除则会得到无穷大或者NaN。
②四则运算符包括取模操作可使用使用将运算符放在赋值号的左边; 例如 x += 4; 结果上等价于 x = x+4;
要说明是,上面的两个算数式只是结果上等价,它们的运行过程原理是有区别的:
首先,+=号会进行隐式转换,在Java基础一数据转换的时候有一个例子,short s1 = 1;s1+=1;//编译通过,s1+=1等价于s1=short(s1+1);进行了隐式转换。
short s1 = 1;s1 = s1+1;//编译失败,s1+1结果是int型,向更低精度的short转换的时候需要加上强制转换符short,s1= short(s1+1);//编译正确。
其次,s1+=1;直接在左操作数地址上操作,直接在s1上进行+1操作,不用再开辟其它空间。而s1 = s1+1;是先将s1+1运算结果保存在一个新开辟的空间上,在
赋值给s1后,再将该空间回收。这么分析从效率上+=效率更高。两者的差别在日常开发中其实可以完全忽略的。
③取模操作长用在取步长上。
2、自增运算符与自减运算符
①前置与后置的区别
前置是先使用,后加减1.后置是先加减1再使用。
例如:
int m = 7;
int n = 7;
int a = 2 * ++m;// now a is 16, m is 8
int a = 2 * m++;// now a is 14, n is 8
②不建议在表达式内部使用该种运算符,容易造成混乱。这会儿想起C++和++C的调侃。
3、&与&&
这两个运算符经常拿来做比较。面试的时候有可能会问到,当然大牛完全可以忽略这种小儿科的问题。&是位运算符,&&是关系运算符。
①&表示按位与,得到的结果是布尔值。不会进行短路求值。
②&&表示逻辑与,会进行短路求值,如果一个操作数可以确定表达式的值,第二个操作数就不必进行计算了。
4、唯一的三元操作?:
condition ? expression1: expression2;// 如果condition为true,那么表达式的值就是exprssion1的值,否则死exprssion2的值。
5、其它
关系运算符:==(相等) !=(不相等) >(大于) >=(大于等于) <(小于) <=(小于等于) ||(或) &&(并)
位运算符:& | ^ ~ >> << >>>
>>和<<运算符将二进制数进行左移或者右移操作。当需要建立位模式屏蔽某些位时十分方便。
>>>运算符将用0填充高位;>>用符号填充高位。没有<<<运算符。
注意:对移位运算符右侧的参数需要进行模32(int型占4字节32位)的运算,除非左边的操作数是long型,这时应该对右侧进行模64取值。
例如1>>35与1>>3的结果是一样的,都是8.
原文:http://www.cnblogs.com/yuanhaha/p/6657602.html