Java语言支持的变量类型有:

  • 类变量:独立于方法之外的变量,用 static 修饰。
  • 实例变量:独立于方法之外的变量,不过没有 static 修饰。
  • 局部变量:类的方法中的变量。

类变量

类变量,也叫静态变量,在类中用static关键字声明,但是它在方法、构造器或者块之外。

每个类只有一个类变量,不管这个类有多少个对象。除了作为常量被声明之外,类变量很少被应用。常量是被作为public、private、final和static被声明的变量。实例变量的初始值不会被改变

静态变量存储在静态内存中,很少采用静态变量而不是声明结束或者用常量public或private之一。静态变量随着程序的开始而开始,随着程序的结束而结束。

可见性和实例变量类似。然而大多数静态变量被声明为public由于他们必须为类的使用者所用。默认值和实例变量类似,除此之外,可以在特殊的静态初始化区赋值,静态变量可以用类的名称访问ClassName.VariableName

当静态变量被作为public static final声明时,变量(常量)名称都要用大写字母。如果静态变量不是public和final,它的命名方法和实例变量和本地变量相同。

类变量不仅可以直接通过类名+点操作符+变量名来操作,也可以通过类的实例+点操作符+变量来操作,大多数情况下,采用前者操作方式,一来不能够有效地使用该变量,二来能够表示该变量就是类变量。

实例变量

实例变量:在类中声明,但是它在方法、构造器或者块外,当堆中的对象被分配了一个空间时,每个实例变量的位置就被创建了。

当对象采用关键字“new”创建时实例变量就被创建了,当对象被销毁时它也就被销毁了。

实例变量的值必须被一个以上的方法、构造器或者块,或者类中必须出现的对象的状态的重要部分所引用。实例变量可以使用访问描述符,并且有默认值。数字的默认为0,boolean的默认为false,对象引用默认值为NULL。

实例变量可以直接采用在类中叫名字方式访问。然而在静态方法和不同的类中应当使用完全限定名称。

ObjectReference.VariableName

实例变量是归属于类的实例的变量,又称为成员变量,没有经过static修饰。实例变量只能通过类名的实例+点操作符+变量来操作。

局部变量

局部变量就是本地变量,在方法、构造器或者块中使用,在方法、构造器或者块进入时被创建,一旦退出该变量就会被销毁,局部变量没有默认值,因此本地变量必须被声明并且在第一次使用前要给它赋值

示例

-

java中常量和变量的区别_Java中三种变量相关推荐

  1. java中为什么需要常量和变量的区别_Java中的变量和常量

    1.变量(variable) 变量,顾名思义,就是变化的量. 我们可以通过变量来操作存储空间中的数据,变量就是指代这个存储空间,一旦你定义了一个一个变量,那么空间的位置就确定了,虽然空间位置是确定的, ...

  2. java中为什么需要常量和变量的区别_Java中常量和最终变量之间的区别?

    Java中的常量 常量变量是其值固定的变量,程序中仅存在一个副本.声明常量变量并为其分配值后,就无法在整个程序中再次更改其值. 与C语言不同,Java(直接)不支持常量.但是,您仍然可以通过声明变量s ...

  3. java中string 和stringbuffer的区别_Java中的String,StringBuilder,StringBuffer三者的区别...

    最近在学习Java的时候,遇到了这样一个问题,就是String,StringBuilder以及StringBuffer这三个类之间有什么区别呢,自己从网上搜索了一些资料,有所了解了之后在这里整理一下, ...

  4. Java传统的io和nio区别_Java中IO和NIO的本质和区别

    简介 终于要写到java中最最让人激动的部分了IO和NIO.IO的全称是input output,是java程序跟外部世界交流的桥梁,IO指的是java.io包中的所有类,他们是从java1.0开始就 ...

  5. JAVA中重写和实现的区别_Java中重载和重写的区别

    Java中重载和重写的区别 1.1重载是什么 Overloading   方法重载是让类以统一的方式处理不同类型数据的一种手段,多个同名函数同时存在,具有不同的参数个数/类型 1.2为什么用重载 重载 ...

  6. java静态变量和实例变量的区别_Java 中静态变量和实例变量区别

    静态变量属于类,该类不生产对象,通过类名就可以调用静态变量. 实例变量属于该类的对象,必须产生该类对象,才能调用实例变量. 在程序运行时的区别: 实例变量属于某个对象的属性,必须创建了实例对象,其中的 ...

  7. java中堆与栈的区别_java中堆和栈的区别分析

    堆和栈是Java数据结构里非常重要的概念,本文较为详细的分析了二者之间的区别.供大家参考.具体如下: Java的堆是一个运行时数据区,类的(对象从中分配空间.这些对象通过new.newarray.an ...

  8. java静态类和非静态类的区别_Java中静态内部类和非静态内部类到底有什么区别?...

    内部类(Inner Class)和静态内部类(Static Nested Class)的区别: 定义在一个类内部的类叫内部类,包含内部类的类称为外部类.内部类可以声明public.protected. ...

  9. java可比较的和比较器的区别_Java中Compareable和Comparator两种比较器的区别

    对于JDK8而言,有三种实现对象比较的方法: 1.在需要比较的对象类中覆写Object类的equals()方法: 2.需要比较的类继承Comparable接口,然后在其类内部实现compareTo() ...

  10. java中break和return的区别_java 中return和break的区别

    在java的方法中,分为带返回参数和无返回参数两种方法.在带返回参数的方法体中,需要用return来返回该参数并表示该方法体执行完毕,该方法体中return后的语句将不会被执行.在无返回参数的方法中, ...

最新文章

  1. Hat’s Words(字典树)
  2. c# 大数据量比较时-方案
  3. React 组件学习
  4. 最长上升子序列(LIS)长度
  5. YBTOJ:字符匹配(KMP)
  6. 【hue】Bad status: 3 (PLAIN auth failed: Error validating LDAP user)
  7. 我现在在乡镇上班,但是是事业编,我该怎么办?该放弃这份工作吗?
  8. Clion添加Posix消息队列的-lrt连接
  9. 如何解决金山词霸与卡巴斯基的冲突问题
  10. webstorm破解方法
  11. 绘制自己的人际关系图_如何系统的绘制自己的人际关系网络图?
  12. OV2640摄像头模块
  13. 电脑模拟收银机_机场收银模拟器下载
  14. 如何批量将多个 Excel 文档快速合并成一个文档
  15. 电流探头的主要指标及应用场合
  16. 神经网络模型(TensorFlow)
  17. Spring OAuth2 授权服务器配置详解
  18. 【技巧】EXCEL如何按行找出最大三个数并标记
  19. 图像识别-纯数字识别
  20. 基于肌肉骨骼模型的预测仿真

热门文章

  1. Yii2的redis扩展
  2. C#数组和list集合的区别
  3. ubuntu phpmyadmin 404 not found
  4. SVN,HG,GIT 命令说明
  5. [转]前向纠错(FEC)的RTP荷载格式
  6. c语言二级考试题型2016,2016年计算机二级《C语言》操作试题及答案
  7. Zookeeper 客户端 Curator 使用详解
  8. 请求示例代码_新版云效:代码托管初体验
  9. 使用Requests+xpath实现简单的数据爬取
  10. WPF 设置TextBox为空时,背景为文字提示。