6.变量

一、变量

  • 变量是什么:可以变化的量!在Java中,变量是内存中的一个小盒子(容器),可以用来存储各种各样的数据。
  • java是强类型语言,每个变量都必须声明其类型。
  • java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
type varName = value;
//数据类型 变量名 = 值;可以使用逗号隔开来声明多个同类型变量。但是不建议这么做。
  • 注意事项:
    • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
    • 变量名必须是合法的表示符。
    • 变量声明是一条完整的语句,因此每个声明都必须以分号结束。
  • 变量的类型:基本数据类型和引用数据类型

二、变量作用域

6.变量

public Class Var{
	//类变量
	static int allC=0;
	//实例变量:如果不初始化,会给默认值。从属于对象
    //布尔值:默认是false
    //除了基本数据类型,其余类型默认值都是null
	String str = "Hello World";
    
    public void method(){
        //局部变量:必须声明和初始化值。作用于方法中
        int i = 0;
    }
    
    {
       //代码块局部变量
    	int age = 3;
    	String name = "www.weixueyuan.net";
    	// 正确,在块内部可以访问 age 和 name 变量
    	System.out.println( name + "已经" + age + "岁了");
	}
}

三、常量

  • 常量是通过数据直接表示的。可分为字符串常量、整形常量、浮点型常量、字符常量、布尔常量、空常量。
  • 常量在定义了以后,在程序执行中其值不可以发生改变的。
  • java中常量定义语法如下:
//可以有多个修饰符,例如public,static。修饰符的顺序是没有要求的,可以随意排列。
//修饰符 数据类型 常量名 = 常量值
final dataType VAL_NAME = value;
  • final关键字:

    1. 修饰类
      ​ 当用final修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰。final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法。

    2. 修饰方法

      ​ 下面这段话摘自《Java编程思想》第四版第143页:
        “使用final方法的原因有两个。第一个原因是把方法锁定,以防任何继承类修改它的含义;第二个原因是效率。在早期的Java实现版本中,会将final方法转为内嵌调用。但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升。在最近的Java版本中,不需要使用final方法进行这些优化了。“

        因此,如果只有在想明确禁止该方法在子类中被覆盖的情况下才将方法设置为final的。

    3. 修饰变量

      ​ 对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。

  • static关键字

    1. static方法

      ​ static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了。并且由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。
      ​ 但是要注意的是,虽然在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成员方法/变量的。

    2. static变量

      ​ static变量也称作静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。
        static成员变量的初始化顺序按照定义的顺序进行初始化。

    3. static代码块

      ​ static关键字还有一个比较关键的作用就是 用来形成静态代码块以优化程序性能。static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。
        为什么说static块可以用来优化程序性能,是因为它的特性:只会在类加载的时候执行一次。
      总结:因此,很多时候会将一些只需要进行一次的初始化操作都放在static代码块中进行。

      二.static关键字的误区

四、命名规范

注:驼峰规则:除第一个字母意外,后面每个单词的首字母大写。例:haveGoodTime。

  • 所有变量、方法、类目:见名知意。
  • 类成员变量:首字母小写和驼峰规则。
  • 局部变量:首字母小写和驼峰规则。
  • 常量:所有字母大写,多个单词通过下划线分割。例:MAX_VALUE。
  • 类名:首字母大写和驼峰规则。
  • 方法名:首字母小写和驼峰规则。
上一篇:6、Hive数据仓库——Hive分桶


下一篇:c#-根据输入序列的元素将IObservable转换为另一个故障或完成的序列