Java常量、变量和运算符

  根据程序中的数据在运行过程中是否会发生改变,可以将数据分为常量和变量。

1.常量

  常量是程序中不能被改变的量,在Java中用final来定义常量,表示该常量只能够被赋值一次,习惯上要求全部大写。

final double CM_PER_INCH = 2.54;  //CM_PER_INCH常量被赋值为2.54

  类常量:表示用static final修饰的常量,表示该常量可以在一个类中的多个方法中使用,若其被声明为public,则其他类中的方法也可以使用该类常量。

public class Constants{
      public static final double CM_PER_INCH = 2.54;
  
      public static void main(String[] args){
           double paperWidth = 8.5;
           double paperHeight = 11;
           System.out.println("Paper size in centimeters:" + 
                     paperWidth * CM_PER_INCH + "by" + paperHeight * 
                    CM_PER_INCH);  
    }        
}        

  const是java中预留的关键字,为以后扩展使用。

2.变量

  变量的值可以在程序中多次赋值,一般需要声明变量、初始化变量后才能使用该变量。

  1.声明变量

  声明变量时,需要先声明变量的数据类型,变量名在数据类型之后,与内存中的某个位置(内存)相对应。变量名的命名规则有:

  • 第一个字符必须是大写字母(A-Z),小写字母(a-z),下划线(_),美元符号($)
  • 第二个及后续字符为上述字符,数字(0-9)
  • 关键字不能作为变量名

  2.初始化变量

  在声明完变量后,必须要用赋值语句对变量进行显示初始化,否则不能使用。一般情况下,建议在声明变量时就进行初始化,如:

int a = 10;

  3.实例变量、类变量和成员变量、局部变量

  • 成员变量:定义在类中但却在方法之外的变量,该变量整个类中都可以访问,有默认初始值,该变量存在与对象的堆内存中。如:
public class Clock{
    private int Hour;
    private int Minute;
    private int Second;   //Hour、Minute和Second都为成员变量,也为实例变量,Clock类消失后便会释放其所占内存

    public ShowTime(int hour,int minute,int second){   //ShowTime 在Clock类中,可以使用该类的成员变量
          this.hour = Hour;
          this.minute = Minute;
          this.second = Second;  
    }
}

  

  • 局部变量:定义在方法或者方法的形参中,该变量只能在定义方法或者定义语句中才能使用,无默认初始值,该变量存在栈内存中。
public void test(){
    int temp = 10; //temp为局部变量,只能在test()里面才能用,test()方法完成后便会释放其所占内存
}
  • 实例变量:没有用static修饰的成员变量。
  • 类变量:也称为静态变量,是用static修饰的成员变量,存储在方法区里的静态区,其他类可以通过类名+变量名获取类变量的值。

3.运算符

  算数运算符:+、-、*、/、%、++、--。

  关系运算符:>, <, >=,<=,==,!=.关系表达式永远是布尔类型。

  逻辑运算符:&&,||,!

  位运算符:其原理是将操作数转为二进制值,然后对二进制中的每一位进行操作。操作类型有&(按位与),|(按位或)^(按位异或),~(按位非),<<(按位左移),>>(按位右移),>>>(按位右移补零)。

  赋值运算符:=,+=,-=,*=,/=,(%)=,<<=,>>=,&=,|=,^=

  条件运算符:判断布尔表达式的值来决定赋值给变量的值。格式为:

    variable x = (expression) ? value if true : value if false
  类型比较运算符instanceof:检查该对象是否是一个特定类型(类类型或接口类型)。格式为:
   
( Object reference variable ) instanceof (class/interface type)
  这些类型的优先级为:
  
括号 ()、[]
单目运算符(从右到左) !、+、~、++、--
算数运算符 *、/、%、+、-、<<、>>、>>>
关系运算符 <、<=、>、>=、instanceof、==、!=
位运算符 &、^、|
逻辑运算符 &&、||
条件运算符 ?=
赋值运算符(从右到左) =、+=、-=、*=、/=、%=、&=、|=、^=

猜你喜欢

转载自www.cnblogs.com/thwyc/p/12233290.html