Java易错知识点

    也学了一段时间的Java了,本来觉得虽然学得不是太好,但也不会太差吧,结果一个小测验将自己打回原形,基础还是不牢固,总结下自己碰到的易错点吧。

    Java源文件经过编译,转换生成字节码文件然后再传入JVM经过解释器转换成机器语言,但是,源文件转换成机器语言的方式称为为编译方式!

Java注释:

        单行注释     //注释文本
        多行注释     /*注释文本*/
        文档注释     /**注释文本*/
    不存在什么/**注释文本**/这种类型,这其实是将第三个*号也当成了注释的文本了,所以实际写的时候也不会报错

    Java使用的字符集为Unicode,不是ASCII码

基本数据类型:

Java易错知识点_第1张图片

    在这张图中,除boolean类型之外,由上向下是自然转换的,而由上向下则需要强制转换。基本数据类型之间的转换最重要的是精度,浮点型都要比整形精度高,即使是long型转换为float型也要强制转换。

    在Java中,定义float类型的数据时,若是整数,则直接定义即可,可如果是小数,则需要加上f,或者强转型,否则会报错,因为默认的小数为double类型的,如下:
float i=3.14f;
float j=(float)3.14;
由此可知,double类型的数据初始化时不管是不是小数都不需要加上d,当然加上也不会报错。

    String不为基本数据类型,而是引用数据类型。

变量的声明:

    变量名 = 首字符 + 其余部分
    -首字符 :字母、下划线、$符号
    -其余部分:数字、字母、下划线、$符号
    此外,¥符号也和$符号一样,不管是作为首字符还是其余部分都不会报错
    除此之外,什么#号、*号、>号或<号等一些乱七八糟的符号都是不能有的,看选项时一定要看清。

修饰符:

final修饰符
    使用final修饰的对象不能修改,否则会编译报错,不能修饰抽象类和接口。

private修饰符
    不能作为类的修饰符。

运算符优先级:
Java易错知识点_第2张图片

当计算含有多种运算符的表达式时,一定要注意运算符的优先级,否则答案可能会离你很远。。。

算数运算符:

自增/自减运算符++/--
    这两个符号测验时真是让人头疼,有很多细节的地方要仔细思考,一不小心就会选错。
    当符号放在运算对象前面时,表示会先执行自增/自减运算,然后再用执行过运算的值带入表达式运算;当符号放在运算对象之后时,则表示先进行表达式的运算,之后再进行自增/自减运算,需要注意的是,放在运算对象之后的情况下,在之后再调用执行过的对象,即使是在同一句代码中,所显示的值也是执行过自增/或自减的值,例如:
int i=9,j=1;
i=i+++j+i;
System.out.println(i+++" "+i);
//打印输出的结果为 20 21
//在第二行代码中,其实相当于i=9+1+10,i++是执行后+j才自增的,再之后+i其实+的是自增后的结果,
//也就是10,所以结果为20,而在第三行也是同样的效果,先打印出i,再自增,第二个i的值就是21

位运算符:

非运算符(~):
    功能是对参与运算的数的二进位进行求反
例如:
int x = 1;          
int y = ~x+1;          
System.out.println(x+” “+y);
//这里输出结果为1 -1
//~1为~(0001) -> 1110(补码) -> 1010(原码) -> -2(十进制)
//运算时要注意符号位,~符号是操作符号位的

逻辑运算符:

与(&):当两边的条件都为真时才为真,但是当条件一为假时还需要判断条件二
短路与(&&):同样是两个条件都为真才为真,但是第一个条件为假时就不在需要判断条件二了

switch(表达式)条件语句

表达式的值为整型,字符型,枚举量值,但不能为长整型
注意每一个case Tag中是否有break关键字,如果没有的话,在与表达式值相同的Tag的case以及之后的case中的语句都会执行。break在switch语句中用于跳出switch代码块。

个人总结,仅供参考。
如果有错误或可以改进的地方,请各位大神多多指点。

你可能感兴趣的:(Java)