随笔-159  评论-114  文章-7  trackbacks-0
变量

1.对局部变量,要先赋值,后使用。
2.一个局部变量,作用域,是定义它的代码块

public class Test{
   public static void main(String[] args){
        {
            int a = 4;
         }
         System.out.println(a);          
   }   
}

a的作用域在main里面的两个括号之间。所以,此程序编译不通过。cannot resolve symbol

3.对于两个局部变量,在同一作用域内不允许两个同名变量出现。

public class Test{
   public static void main(String[] args){
      int a = 6;
      {
         int a = 4;
      }
      System.out.println(a);
   }

}

在小代码块,重了。Duplicate local variable a。

------------------------------

命名规范

1.语义
2.包,所有字母小写
3.类,所有单词首字母大写
4.变量、方法,首字母小写,其余单词首字母大写
5.常量,所有字母大写


byte b=1;
b=b+1;报错,因为b+1运算后,系统转为int,无法隐式转换
b+=1;不报错。请查看JVM,字节码差异。



>>   右移  除2,左补符号位
<<   左移  乘2,右补0
>>>  右移,左永远补0

虽然比乘除运算符快,但是有问题。

12>>32

回变为12。

12&9    按位与
12|9    或
12^9   异或

(a>b)&(c>d)
非短路方式,都判断,并不会因为a>b为假而不进行后面表达式的判断。

(a>b)&&(c>d)
短路方式,a>b为假,后面不执行,直接返回false。

int i = 3;
int count = (i++)+(i++)+(i++);
count = 3 + 4 + 5
            i=4  i=5  i=6

int i =3;
i = i++;
那么流程如下

i++这个表达式的值是3。然后执行i自加1,变为4(因为++操作比赋值优先级高),最后i 再次被赋值为3。



不记运算符优先级,最好用括号老解决,很明白,否则像这样的b+++a表达式,实际上(b++)+a。

posted on 2005-11-24 23:26 北国狼人的BloG 阅读(380) 评论(0)  编辑  收藏 所属分类: 达内学习总结

只有注册用户登录后才能发表评论。


网站导航: