变量是有名字的一连串的存储空间,java通过定义变量来申请内存空间,并通过变量名来获取和改变变量值
变量的定义:
访问控制符 修饰符 数据类型 变量名 = 变量值
成员变量分为实例变量和类变量,实例变量需要由类定义一个对象,再由对象名调用,类变量由 static修饰 ,可以由类名直接调用
局部变量分为在方法括号中定义的参数,方法体中定义的变量,和代码块中定义的变量,作用范围是从定义的位置开始到语句块结束
成员变量是直接在类中定义的变量,又叫做全局变量,作用范围是定义它的类的全体
如果局部变量的名字和成员变量的名字相同,则在局部变量的作用范围类,调用的是局 部变量,如果要调用成员变量,需要用this.成员变量
局部变量定义时不能有访问控制符,和 static ,因为局部变量定义完,他的作用范围 就已经确定了,所以不用访问控制符
this不能用在静态方法中,因为调用静态方法是用类直接调用,而this代表的是这个对 象,和类冲突
成员变量有默认值,局部变量没有默认值但是成员常量也没有默认值,需要在声明时给 他赋初值
逻辑运算符和位运算符的区别:逻辑运算符有短路 的情况,比如逻辑或,如果第一个 值是true则不会运行第二个表达式,而位运算符则会运行两边的表达式;
逻辑运算符的值是boolean型,而位运算符还可以是数值型(把数值转换成二 进制的补码进行运算)
java按照运算符两边最高精度进行保留结果
位运算符有按位与&,按位或|,按位非~,按位异或^
按位与:全一则一,否则为零
按位或:全零则零,否则为一
按位异或^:相同为零,不同为一 (对一个值连续异或两次,还是原来的值)