zoukankan      html  css  js  c++  java
  • java中的常量和变量

    变量

    含义:在程序过程中变量的值会发生变化,直白来说就是用来存储可变化的数据

    变量的好处:使内存空间的得到重复利用

    举个例子:

    1 System.out.println(10);
    2 System.out.println(10);
    3 System.out.println(10);

    这三个10都是字面量,每一个字面量占用的都是不同的内存空间,就算这几个字面量相同,占用的也是不同的空间,字面量的内存是无法重复利用的,这样就浪费了空间,但是使用变量之后,内存空间就得到了重复利用。

    变量的三要素:

    1. 变量的数据类型(数据类型决定了内存空间的大小)
    2. 变量的名字(方便程序访问这个数据)
    3. 变量保存的值(保存的数据)

    注解:变量必须先声明,再赋值才能访问(没有赋值不能访问, 不然会报错),直白来说变量就是一个存储数据的一个盒子

    注意:在同一个域中,变量名不能重名

    1 int a = 102 double a = 10.01
    3 //重名了 不能编译成功

    变量的分类

    变量分为局部变量、成员变量。成员变量又分为实例变量(属性)和静态变量

    在方法体内声明的变量为:局部变量(在方法结束后,局部变量的内存空间就释放了)

    在类中,方法外声明的变量为成员变量,对于实例变量来说,声明了没有手动赋值,调用的时候系统默认赋值

     

    类型默认值
    byte、short、int 0
    long 0L
    float 0.0F
    double 0.0
    boolean false
    char ' '
    引用数据类型 null

    注解:实例变量不能通过"类名."来访问

    实例变量前加上修饰列表符static就成为了静态变量,static是不允许用来修饰局部变量的。

    原因:被static关键字修饰变量随着类的加载而加载,被static修饰的变量成为了类变量 ,可以用类直接调用, 即作用域为全局,而局部变量在方法内,它的作用域在方法内,作用域变了,所以不允许用来修饰局部变量。

    静态变量: 在类加载时初始化,分配空间

    局部变量:在方法执行过程中分配空间

    实例变量:构造方法执行、对象创建时分配空间

    常量

    定义:常量就是在程序中固定不变的值,是不能改变的数据

    注解:Java中的常量,其实就是特殊的变量,也是固定不变的量,有且只能进行一次赋值。Java中定义常量的 语法只需要在"定义变量的语法基础"上加上一个final关键字修饰即可

    常量有三种类型:静态常量、成员常量、局部常量、字面值常量

    字面值常量:

    1. 整数型常量

      1 System.out.println(222);
      2 System.out.println(-111);
    2. 浮点型常量

      1 System.out.println(3.14);
      2 System.out.println(3.1f);
    3. 字符常量

      System.out.println('a');
      System.out.println('f');
    4. 字符串型常量

      1 System.out.println("zhangsan");
      2 System.out.println("123456");
    5. 布尔类型常量

      1 System.out.println(false);
      2 System.out.println(true);
    6. 空常量(null)

    定义常量时需注意:

    1. 在定义常量时就需要对该常量进行初始化,常量的值是不可改变的量、一次赋值,永不改变,也可以不用在声明时就初始化,但是初始化后必须在使用这个常量之前初始化。
    2. final修饰的实例变量必须手动初始化,不能采用系统默认值
    3. 为了与变量区别,常量取名一般都用大写字符

    静态常量:被static和final修饰的成员变量

    注解:在定义静态常量时,就必须初始化,不然会报错

    例如下面的代码:

    1 public class Test {
    2     final static int i = 100;
    3     public static void main(String[] args) {
    4         System.out.println(i);
    5     }
    6 }

    成员常量:被final修饰的成员变量

    注解:当常量是成员常量时,在定义的时候必须初始化,不然编译会报错

    例如下面的代码:

    1 public class Test {
    2     final int i = 100;
    3     public static void main(String[] args) {
    4         Test test  = new Test();
    5         System.out.println(test.i);
    6     }
    7 }

    局部常量:被final修饰的局部变量

    例如下面的代码:

    1 public class Test {
    2     public static void main(String[] args) {
    3         final int i = 100;
    4         System.out.println(i);
    5     }
    6 }
  • 相关阅读:
    模块之datetime
    模块之time模块
    模块之相对路径导入
    模块之包跨模块导入
    模块
    迭代器
    leetcode234 回文链表(Easy,不简单)
    leetcode543 二叉树的直径(Easy 不简单)
    leetcode538 把二叉树转换为累加树(Easy,不简单)
    leetcode136 只出现一次的数字(Easy)
  • 原文地址:https://www.cnblogs.com/thesky-wfei/p/13368653.html
Copyright © 2011-2022 走看看