Java基础语法易犯错误(1)

来源:互联网 发布:ros通过ip绑定mac地址 编辑:程序博客网 时间:2024/06/08 12:23

基础语法易犯错误

一、数据类型的隐式强制转换。

Java是强类型语言,对于每一种数据都定义了明确的具体数据类型和内存空间。其中详细如下:

byte:1个字节;short:2个字节;int:4个字节;long:8个字节

                char:2个字节;float 4个字节;double:8个字节;

整数默认int,小数默认double。

当所占字节少的碰上字节多的时候,会被强制提升到字节多那种数据类型。而不管哪种数据类型,碰上字符串的时候,都要变成字符串,这一点在System.out.println()的参数里常要用到。

关于这个易犯错误点,有个经典例子,和赋值运算符结合的,挺说有时候会被一些不懂技术的面试官拿来问我们。如下:

1.  short a=3; a+=5;(true)       2.  short a=3; a=a+5;(false)

分析:5默认为int型,a+5为int型,不能将int赋予short型的a;1之所以对,是因为

+=为一次赋值运算,没有发生类型转换。

二、比较运算符==

  好吧,稍有点编程知识的人都知道比较是否相等用的是==,而不是=。可我们(至少是我)还在if的括号里不自觉的写了=。纵然有时候有eclipse之类的编程平台提醒了,那还是匆匆没看啊。

  其实,这是一种精神层面的自我提醒。不注重这种细微的地方,会浪费很多时间。而效率就是生命,也是金钱,有时候甚至是一种能力。人生苦短,不要忽略了==。

三、位运算符:>>和>>>

 >>为带符号右移,高位根据符号补,是1补1,是0补0;

 >>>为不带符号右移,高位补0.

当涉及到负数的位运算时,一定要注意是否要带符号进行位运算

至于左移,就简单了,只有<<,左移时只管在末位补0就好。

四、switch语句

  switch选择语句格式不再赘述,其只有遇到break或执行到switch语句结束这两个方式要重点理解和掌握。但我想谈下为何感觉编程时switch语句应用不多的原因以及因此带出的小细节。

  if、while或者for循环之所以用的很多,关键是其够开放,能应用变量做很多表达,而switch语句之所以应用不多,在我看来,是因为case后的取值只能是常量,不能是变量,这也是请各位注意的地方,当你想用switch在判断取值时做更灵活的选择时,case后的取值是只能为常量的,会限制很多。

  有一个疑惑我还没有找到答案:switch语句不够灵活,功能上也完全可以用if语句代替,写起来也不够简便,难道就仅凭在某些情况下执行效率高而一直活到现在吗?我想switch语句在将来是会被改造的,要么书写简洁,要么应用灵活。

五、数组

  数组是同一种类型数据的集合。

⑴常见有三种定义格式。

  ①元素类型[] 数组名=new 元素类型[元素个数或数组长度];

eg: int[] arr=new int[5];

这种格式要注意的是元素个数或数组长度,数组的第一个角标是0,最大角标是数组长度-1,数组长度这个数是不能出现在角标位置上的,要避免角标越界的情况发生。

②元素类型[] 数组名=new元素类型[]{元素1,元素2,...};

      eg: int[] arr=new int[]{1,3,5,8,9};

  这种格式有两个易错点,一个是[]是不能有数字的,另外一个是{}后面要记得带分号。

③元素类型[] 数组名={元素1,元素2,...};

      eg: int[]arr={1,3,5,8,9};

      这个格式是第二种格式的简写,要记得在{}后写分号。

⑵二维数组的定义。

  二维数组其实就是上面数组定义中中的元素类型为一个一维数组而已。其定义格式主要有两种。

①元素类型[][] 数组名=new 元素类型[一维数组个数][一维数组长度(可不写)];

   eg: int[][] arr=newint[3][2];

  建立了一个名称为arr的二维数字,他有3个一维数组,且三个一维数组均有2个元素。

  这里有两个要要注意的地方,第一个就是这个格式,有几个等同的书写格式,如下:

int [][] arr=int[] arr[]=int arr[][]=new int[3][2];(这只是在这里说明等同,不要在编程时出现这样的连等式)。

另外就是一维数组长度可不写,因为允许一维数组的长度是不相同的。看第二种格式会更明白。

②元素类型[][] 数组名={{元素1,元素2,...},{元素1,元素2,...},{元素1,元素2,...},..};

  eg: int[][] arr={{1,2},{1,2,3},{1}};

  记得在最外面的{}后加上分号。

 

0 0
原创粉丝点击