在JAVA中,变量使用前必须声明,格式如下:

  1. int a;           //单个变量声明
  2. int b, c, d;        //多个变量一起声明
  3. int e = 1, f = 2, g = 3; //声明时同时赋值(初始化)

JAVA的变量类型:1. 类变量(静态变量) & 2. 实例变量

  都在类中函数外语句块外声明,但是类变量需要static修饰,实例变量没有

  

  1. private static double salary;              //声明私有静态变量salary,类型为双精度浮点
  2. public static final String DEPARTMENT = "开发人员";  //声明公有静态变量DEPARTMENT,类型为String,final表示不可修改
  3. public String name;                    //声明公有实例变量name,类型为String
  4. private double salary;                   //声明私有实例变量salary,类型为double

  无论生成了多少个实例,类变量只有一个,但是实例变量在每次实例化时都会生成一个;

    例如:若定义了如下的类

  1. public class StaticTest {
  2. private static int staticInt = 2;
  3. private int random = 2;
  4.  
  5. public StaticTest() {
  6. staticInt++;
  7. random++;
  8. System.out.println("staticInt = "+staticInt+" random = "+random);
  9. }
  10.  
  11. public static void main(String[] args) {
  12. StaticTest test = new StaticTest();
  13. StaticTest test2 = new StaticTest();
  14. }
  15. }

    则在每次生成一个新的StaticTest实例时,staticInt都会+1,因为类变量只有一个,每次调用的staticInt都为那一个;但是每次实例化一个新的对象时, 都会生成一个新的random,random的值为3(初始化为2,自动调用构造函数+1)。

  类变量主要用于声明常量,常量(声明为public/private,final和static,不可变),储存在静态存储区,很少单独用static声明为变量,声明为常量时用全大写字母命名

  1. public static final String DEPARTMENT = "开发人员";    //声明静态变量DEPARTMENT,final表示为常量

  

  静态变量第一次被访问时创建,程序结束时销毁;实例变量在对象创建的时候创建,在对象被销毁的时候销毁;

  为了对类的使用者可见,大多数静态变量声明为public类型,大多数实例变量设为private,仅用于类中方法、构造方法或者语句块引用;

  如果声明后没有初始化,则数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null,char默认值为\u0000。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化; 

  静态变量访问方式:ClassName.VariableName;实例变量访问方式:用完全限定名ObejectReference.VariableName;

  实例变量可以声明在使用后

  借鉴自菜鸟教程  http://www.runoob.com/java/java-variable-types.html

一、JAVA变量类型:①类变量与实例变量的异同点的更多相关文章

  1. java入门---变量类型&类变量&局部变量&实例变量&静态变量

        在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下:     type identifier [ = value][, identifier [= value] ...] ; ...

  2. Java中的类变量、实例变量、类方法、实例方法的区别

    类变量:形如static int a; 顾名思义,类变量可以理解为类的变量,类变量在类加载的时候就已经给它分配了内存空间,不同于实例变量(int a; ),实例变量是在该类创建对象的时候分配内存的.并 ...

  3. Java易混淆的概率:成员变量、类变量、实例变量、局部变量

    先看代码 public class Variable{ int b=0; //实例变量 static int a=0; //类变量 final String c="wws"; // ...

  4. Python类变量与实例变量及成员函数修饰方式说明(与Java定义方式进行类比)

    Python类中的变量有类变量和实例变量之分. 类变量:变量绑定在类上,同一个类之间的共享变量,类比于Java中的静态变量static 公有变量定义 Java 的定义方式 class Test{ pu ...

  5. Java千百问_03基本的语法(001)_局部变量、类变量、实例变量有什么差别

    点击进入_很多其它_Java千百问 局部变量.类变量.实例变量有什么差别 在聊局部变量.类变量.实例变量有什么差别之前,我们须要了解一下Java变量. 1.Java变量是什么 在数学世界中,我们知道有 ...

  6. java 类方法和实例方法 以及 类变量和实例变量 各种区别

    我们已经知道类体中的方法分为实例方法和类方法两种,用static修饰的是类方法.二者有什么区别呢?当一个类创建了一个对象后,这个对象就可以调用该类的方法. 当类的字节码文件被加载到内存时,类的实例方法 ...

  7. 牛客网Java刷题知识点之全局变量(又称成员变量,分为类变量和实例变量)、局部变量、静态变量(又称为类变量)

    不多说,直接上干货! 定义类其实就是在定义类中的成员.成员:成员变量<-->属性,成员函数<-->行为. 局部变量在方法内部声明,并且只能在方法内部使用,在外层的方法被调用时被 ...

  8. java 类方法和实例方法 以及 类变量和实例变量

    类体中的方法分为实例方法和类方法两种,用static修饰的是类方法 类方法: 对于类中的类方法,在该类被加载到内存时,就分配了相应的入口地址.从而类方法不仅可以被类创建的任何对象调用执行,也可以直接通 ...

  9. Java 局部变量、实例变量、类变量(静态变量)区别

    1. 局部变量: 局部变量是类的方法中的变量: 2. 实例变量: 实例变量也是类中独立于方法之外的变量,不过没有static修饰,也叫 对象变量 3. 类变量(静态变量): 类变量是类中独立于方法之外 ...

随机推荐

  1. [macOS] Cannot find libz when install php56

    After upgraded to 10.12 and xcode8.2, when updating php with homebrew, i got these errors: /usr/loca ...

  2. flask重要点

    django与flask的区别 django: 大而全的框架,包含了很多组件,例如:ORM.form.ModelForm.session... flask: 轻量级的可扩展强的框架.有丰富的第三方组件 ...

  3. C#调用endtask

    原文最早发表于百度空间2009-03-23 写这个小工具主要是因为自动化测试那边反馈了一个问题和endtask有关,结果写完之后发现这个问题从程序外部测试不了……c#调endtask主要也是用DllI ...

  4. Java的程序执行过程与编译原理

    百度云:https://pan.baidu.com/s/16FVPI8PSqk5O8qufljCNHg 提取码:a2vr 一,文字步骤 1.编写源代码 2.进入cmd 3.输入javac将文件编译转换 ...

  5. Learning-Python【28】:基于TCP协议通信的套接字

    什么是 Socket Socket 是应用层与 TCP/IP 协议通信的中间软件抽象层,它是一组接口.在设计模式中,Socket 其实就是一个门面模式,它把复杂的 TCP/IP 协议族隐藏在 Sock ...

  6. webpack4入门

    前提 已安装node(版本号>4.0,已自带NPM) mac机器 有一个空目录 无webpack.config.js配置打包 快速构建package.json文件. npm init -y 安装 ...

  7. _skill,_skill_category

    _skill,_skill_category -- 自定义商业技能-- 小技巧:配合增加自定义商业技能._add skill [ID _skill `skillId`商业技能ID `skillIcon ...

  8. 缺陷管理工具Jira安装参考

      1安装简介 1.1方案/流程简介 需要依赖安装数据库,可以是mysql,orace或sqlserver.以mysql为例说明. 各模块各阶段安装任务说明如下: 安装模块 说明 jira 项目与事务 ...

  9. liunx存储管理之基础知识

    存储基础知识 ====================================================================================主要知识点: 基本 ...

  10. android -------- Retrofit + RxJava2.0 + Kotlin + MVP 开发的 WanAndroid 项目

    简介 wanandroid项目基于 Retrofit + RxJava2.0 + Kotlin + MVP 用到的依赖 implementation 'io.reactivex.rxjava2:rxj ...