变量和常量

在程序中存在大量的数据来代表程序的状态,其中有些数据在程序的运行过程中值会发生改变,有些数据在程序运行过程中值不能发生改变,这些数据在程序中分别被叫做变量和常量。

在实际的程序中,可以根据数据在程序运行中是否发生改变,来选择应该是使用变量代表还是常量代表。

变量

变量代表程序的状态。程序通过改变变量的值来改变整个程序的状态,或者说得更大一些,也就是实现程序的功能逻辑。
    为了方便的引用变量的值,在程序中需要为变量设定一个名称,这就是变量名。
    由于Java语言是一种强类型的语言,所以变量在使用以前必须首先声明,在程序中声明变量的语法格式如下:
    数据类型 变量名称;
    例如:int x;
   
在该语法格式中,数据类型可以是Java语言中任意的类型,包括基本数据类型和复合数据类型。变量名称是该变量的标识符,需要符合标识符的命名规则,在实际使用中,该名称一般和变量的用途对应,这样便于程序的阅读。数据类型和变量名称之间使用空格进行间隔,空格的个数不限,但是至少需要1个。语句使用“;”作为结束。
    也可以在声明变量的同时,设定该变量的值,语法格式如下:
    数据类型 变量名称 = 值;
    例如:int x = 10;
    在该语法格式中,前面的语法和上面介绍的内容一致,后续的“=”代表赋值,其中的“值”代表具体的数据,注意区别“==”代表为判断是否相等。在该语法格式中,要求值的类型需要和声明变量的数据类型一致。
       在程序中,变量的值代表程序的状态,在程序中可以通过变量名称来引用变量中存储的值,也可以为变量重新赋值。例如:
    int n = 5;
    n = 10;
    在实际开发过程中,需要声明什么类型的变量,需要声明多少个变量,需要为变量赋什么数值,都根据程序逻辑决定,这里列举的只是表达的格式而已。

    常量

常量代表程序运行过程中不能改变的值。
    常量在程序运行过程中主要有2个作用:
         1. 代表常数,便于程序的修改(例如:圆周率的值)
         2. 增强程序的可读性(例如:常量UP、DOWN、LEFT和RIGHT分辨代表上下左右,其数值分别是1、2、3和4)
    常量的语法格式和变量类型:只需要在变量的语法格式前面添加关键字final即可。在Java编码规范中,要求常量名必须大写。
    则常量的语法格式如下:
    final 数据类型 常量名称 = 值;
    final 数据类型 常量名称1 = 值1, 常量名称2 = 值2,……常量名称n = 值n;
    例如:
    final double PI = 3.14;
    final char MALE=‘M’,FEMALE=‘F’;
    在Java语法中,常量也可以首先声明,然后再进行赋值,但是只能赋值一次,示例代码如下:
 final int UP;
    UP = 1;

变量类型

局部变量

局部变量声明在方法、构造方法或者与语句块中;在方法、构造方法或者语句块中被执行的时候创建,当它们执行完成后,

变量将被销毁;访问修饰符不能用于局部变量;只在声明它的方法、构造函数或者语句块中可见;局部变量是在栈上分配的;

局部变量没有默认值,所以被声明后,必须经过初始化,才可以使用。

成员变量(实例变量)

成员变量声明在一个类中,但在方法、构造方法和语句块之外;当一个对象被实例化之后,每个实例变量的值就跟着确定;

成员变量在对象创建的时候创建,在对象销毁之时销毁;实例变量的值应该至少被一个方法、构造方法或者语句块引用,

使得外部能够通过这些方式获取实例变量信息;成员变量可以声明在使用前或使用后;访问修饰符可以修饰成员变量;

成员变量对于类中的方法、构造方法或者语句块是可见的,一般情况下应该把它们设为私有,

通过使用访问修饰符可以使实例变量对子类可见;成员变量具有默认值,数值型变量默认值是0,布尔型变量默认值是false,

引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;实例变量可以直接通过变量名方法。

类变量(静态变量)

类变量也称为静态变量,在类中以static关键字声明,但必须在方法、构造方法和语句块之外。无论一个类创建了多少个对象,

类只拥有类变量的一份拷贝,类变量是类的资源。静态变量除了被声明为常量之外很少使用,常量使之声明

为public/private,final和static类型的变量,常量初始化后不可改变。静态变量存储在静态存储区,经常被声明为常量,

很少单独使用static声明变量。静态变量在程序开始时创建,在程序结束时销毁。与实例变量具有相似的可见性,但为了对类

的使用者可见,大多数静态变量声明为public类型。默认值和实例变量相似,可以在声明时赋值也可以在构造方法中指定,

此外,静态变量还可以在静态语句块中初始化。静态变量可以通过:ClassName.VariableName的方式访问。

类变量被声明为public static final类型时,类变量名称必须使用大写字母,如果静态变量不是public和final类型,

其命名方式与实例变量以及局部变量的命名方式一致。

【Java学习笔记之三】java中的变量和常量的更多相关文章

  1. 0013 Java学习笔记-面向对象-static、静态变量、静态方法、静态块、单例类

    static可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静 ...

  2. 【Java学习笔记之三十一】详解Java8 lambda表达式

    Java 8 发布日期是2014年3月18日,这次开创性的发布在Java社区引发了不少讨论,并让大家感到激动.特性之一便是随同发布的lambda表达式,它将允许我们将行为传到函数里.在Java 8之前 ...

  3. 【Java学习笔记之三十四】超详解Java多线程基础

    前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们来说极其重要,下面跟我一起开启本次的学习之旅吧. 正文 线程与进程 1 线程:进程中负责程序执行的 ...

  4. 疯狂java学习笔记之面向对象(二) - 成员变量与局部变量

    Java变量按其作用域可分为:成员变量和局部变量.注意:在Java中是没有全局变量这个概念的 一.成员变量: 成员变量是在类中定义的变量,具体可分为类变量与实例变量--有无static修饰 实例变量的 ...

  5. Java学习笔记(基本数据类型和变量命名规则)

    java基本数据类型 变量 1.变量就是可变的量. 2.常量就是不可变的量. 3.字面量:Java的变量和常量中存放的具体的数据成为字面量. 变量 命名规则: (1)首字母是英文字母.$或下划线,由字 ...

  6. java学习笔记(六):变量类型

    java一共三种变量: 局部变量(本地变量):方法调用时创建,方法结束时销毁 实例变量(全局变量):类创建时创建,类销毁时销毁 类变量(静态变量):程序启动是创建,程序销毁时销毁 public cla ...

  7. Java学习笔记五:Java中常用的运算符

    Java中常用的运算符 运算符是一种“功能”符号,用以通知 Java 进行相关的运算.譬如,我们需要将变量 score 的值设置为 20 ,这时候就需要一个“=”,告诉程序需要进行赋值操作. Java ...

  8. Java学习笔记三:Java的变量、常量、变量的类型及使用规则

    Java的变量.常量.变量的类型及使用规则 每一种语言都有一些具有特殊用途的词,Java也不例外,它们被称为关键字.关键字对 Java 的编译器有着特殊的意义. 一:Java中的关键字: 注:Java ...

  9. Java 学习笔记(1)——java基础语法

    最近抽时间在学习Java,目前有了一点心得,在此记录下来. 由于我自己之前学过C/C++,而Java的语法与C/C++基本类似,所以这一系列文章我并不想从基础一点点的写,我想根据我已有的C/C++经验 ...

随机推荐

  1. 【java】打印一个对象即打印出该对象toString()返回值

    public class TestToString { public static void main(String[] args){ Node node1=new Node("东邪&quo ...

  2. 深入理解java虚拟机_前言

    2.JVM虚拟机 2.1  概述 java获得广泛认可主要是因为: (1)  java是一门结构严谨.面向对象的编程语言; (2)  java摆脱了硬件平台的束缚,实现了“一次编写,到处运行”的理想; ...

  3. 深度优先搜索(DFS)——部分和问题

    对于深度优先搜索,这里有篇写的不错的博客:DFS算法介绍 .总得来说是从某个状态开始,不断的转移状态知道无法转移,然后回到前一步的状态.如此不断的重复一直到找到最终的解.根据这个特点,常常会用到递归. ...

  4. bzoj 3996: [TJOI2015]线性代数

    Description 给出一个N*N的矩阵B和一个1*N的矩阵C.求出一个1*N的01矩阵A.使得 D=(A*B-C)*A^T最大.其中A^T为A的转置.输出D Input 第一行输入一个整数N,接 ...

  5. 自定义tab吸顶效果一(原理)

    PS:问题:什么是吸顶,吸顶有什么作用,吸顶怎么使用? 在很多app商城中,介绍软件的时候就会使用吸顶效果, 吸顶有很多作用,一个最简单粗暴的作用就是,让用户知道此刻在浏览哪个模块,并可以选择另外的模 ...

  6. Appsacn 定期自动化扫描

    appscan提供了计划扫描的选项,配合windows的计划任务,可以按需设定. 操作流程如下: 1.打开Appsacn--工具---扫描调度程序---新建 2.新建后显示如下窗口 3.填写好相应的设 ...

  7. java基础->循环

    while循环 格式:   while(条件表达式) { // 条件表达式其实就是一个结果为boolean类型的代码 循环体; } 执行流程: 先判断条件表达式的值, 如果为true就执行循环体,执行 ...

  8. centos 命令

    1.查看占用端口的进程 netstat -lnp|grep 3000(3000为端口号) Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statis ...

  9. 使用Word进行文档修订版本的比较

    项目经理在实际的工作过程中,比如要写文档方案,就需要对文档的修订版本进行管理和控制.在以前的工作中,笔者使用的是UltraEdit这个软件工具中的Ultra Compare这个子工具来进行的文档版本的 ...

  10. python实现二分查找算法

    二分查找算法也成为折半算法,对数搜索算法,一会中在有序数组中查找特定一个元素的搜索算法.搜索过程是从数组中间元素开始的 如果中间元素正好是要查找的元素,则搜索过程结束:如果查找的数大于中间数,则在数组 ...