变量是我们经常使用的类型之一。刚学Java的时候,经常被各种变量的概念折磨。挖坑,不过之前在写类似文章的时候,想简单描述一下变量作为副标题,但是发现变量的概念还是比较繁琐。本文将带你深入了解Java中的这些变量。概念。变量总结那么,变量有哪些概念呢?到目前为止,已知的变量主要有:实例变量全局变量静态变量类变量局部变量成员变量常量。实例变量实例变量又称为I??nstancevariables。没有使用static关键字并且在任何方法、构造函数或块之外定义的变量是实例变量。实例变量是基于特定实例的,实例变量在实例之间不共享,即对象的每个实例都有自己的实例变量。下面是实例变量classFruits{publicStringfruitName;//具有公共访问权限的fruitName;publicstaticvoidmain(String[]args){Fruitsfruits=newFruits();fruits.fruitName="strawberry";fruits.fruitNum=100;}}1.如何识别实例变量那么我怎么知道一个变量是一个实例变量?以下是实例变量的一些定义规则。可以使用四种访问修饰符修改实例变量:public、protected、default和private。可以使用transient和final关键字修改实例变量。实例变量不能用abstract,synchronized,strictfp,native,static关键字来修饰实例变量为默认值,即实例变量可以不用初始化。以下是常用实例变量的初值2.实例变量的特点上面我们了解了实例变量的基本特征,以及如何区分实例变量,下面说说实例变量的特点。实例变量只能在类内部声明,但在方法、构造函数或任何块之外。在为堆中的对象分配空间时,会为每个实例变量分配一个区域。实例变量只能通过创建对象来使用。当使用new关键字创建对象时,实例变量也同时创建。当对象被垃圾回收器回收时,实例变量也被销毁。可以使用访问修饰符修改实例变量。实例变量不必初始化,它们有自己的默认值。每个对象都有自己的实例变量副本,因此修改一个对象中的变量不会影响其他对象中的实例变量。实例变量只能通过创建对象引用来使用。二、全局变量全局变量又称为全局变量。如果你有其他语言的编程经验,比如C和C++,你会接触到全局变量的概念,你可以使用下面的代码创建全局变量#include//globalvariableintA;intB;intAdd(){returnA+B;}但在Java中,没有全局变量。因为Java是一种面向对象的编程语言,所以一切都是类的一部分。Java这样做的原因是为了防止数据和类成员被程序的其他部分有意或无意地修改。所以在Java中,为了全局访问目的使用静态变量。三、静态变量静态变量又称为Staticvariables。静态变量的定义比较简单。静态变量就是属于这个类的变量,通过static关键字修饰。static修饰的变量是静态变量,只能定义在类内部,方法外部。静态变量的特点:静态变量只能用static关键字修饰,不能在方法中声明,无论是静态方法还是非静态方法。静态变量在程序运行前被初始化,而且只初始化一次。静态变量会有一个初始化顺序,这个我们后面会讲到。静态变量的所有实例共享同一个副本。也就是说,静态变量只有一个,不会随着对象实例的创建而被复制。可以通过类名访问静态变量。变量名,无需创建任何对象即可访问。publicclassFruits{publicStringfruitName;privateintfruitNum;staticStringfruitType;publicstaticvoidmain(String[]args){Fruits.fruitType="apple";//类名。变量名System.out.println(fruitType);}}在非静态方法中可以使用static变量4.类变量类变量也称为Class变量在Java中,类变量是静态变量,都用static关键字,所以再听到静态变量,也是类变量。五、局部变量还有一种说法,Java中只有类变量、实例变量和局部变量。这样划分是没有问题的。可能有人会问,你把成员变量和常量放在哪里?别着急,我们稍后再说。首先说一下什么是局部变量:局部变量也叫Localvariables。它指的是在方法、构造函数或代码块中定义的变量。当方法、构造函数和代码块执行完成时,局部变量的生命周期被破坏。不管上面的一些变量概念如何变化,局部变量,立如松,坐如钟,行如风,卧如弓,从容应对各种文章的比较。多么简单的变量。那么我们就需要仔细研究一下这么个好东西的特点:根据定义,局部变量定义在方法、构造函数或代码块中;然后局部变量的生命周期跟随方法、构造函数和代码块的执行而销毁;局部变量不能使用访问修饰符,例如,以下代码中的局部变量仅在方法声明、构造函数或块中可见,局部变量只能在对这些方法、构造函数或块的调用内部使用。局部变量没有默认值,所以局部变量在第一次使用或声明时就应该初始化。6、什么是成员变量?成员变量是Java中的实例变量?这个结论正确吗?不断的验证过程为了验证这个结论,我们求助于stackoverflow网站上搜索了java成员变量和实例变量,帮助我们定位到这个题目。大致意思就是:什么是成员变量?成员变量和实例变量一样吗?下面我们有一个答案,就是在第一句给出了,实例变量和类变量称为成员变量,然后给出了JDK官网手册中变量的定义。这意味着在Java中,只有三种类型的变量。在类中定义的成员变量——称为属性在方法(包括构造函数)或代码块中定义的变量——称为在方法定义中的变量中定义的局部变量——称为参数。..也许这不是解决我们问题的好方法。问题再次求助JDK官网手册,看到Variables的定义。官网还靠谱吗?)实例变量(非静态属性):大致意思是非静态属性也叫实例变量,因为它们的值是相对于每个实例的。也就是说,对于每一个对象,实例变量的值都是唯一的;类变量(静态属性):类变量是用static修饰符声明的字段,它告诉编译器:该变量只存在一个副本,这取决于它被实例化了多少次。此外,可以添加关键字final来表示常量。局部变量:没有特殊的关键字将指定变量声明为局部变量,其声明的确定完全取决于声明变量的位置。参数:想想我们平时用的最多的方法是什么?当然是main方法了,main方法是怎么定义的呢?publicstaticvoidmain(String[]args){}其中args是String数组的变量,我们也称它为形参,所以没有关键字来声明形参,只是通过它的声明位置来标识它作为参数。总结所以我写了一篇文章给大家说清楚,现在大家应该知道Java中的变量是什么了。如果用static来定义一个变量,它只能是一个类变量,或者静态变量,它的定义位置只能在类中,方法或代码块之外,而且变量只有一份。如果不使用static来声明变量,那么变量名有3种。在构造方法、代码块和方法之外定义的变量称为实例变量,实例变量的副本数与实例数相同。在方法、构造函数和代码块中定义的变量称为局部变量;在方法参数中定义的变量称为参数。也就是下面代码中描述的[]){}//范围}