java变量的区别

原创 2013年12月05日 17:25:55

    引言:对于java的变量天天见到,但有时候别人问起它们的区别有时候也说不全,所以就找了些资料整理了整理...

类变量也叫静态变量,也就是在变量前加了static 的变量;
实例变量也叫对象变量,即没加static 的变量;

两者区别在于:
         类变量(静态变量)是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果,并且类变量是可以直接通过类名来调用的 如:A.xingS;
   而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象,实例变量顾名思义是属于实例的,所以只能通过实例来调用 如:A a=new A(); a.name;

   举个不太恰当的例子:类变量就好比一个人的姓氏,实例变量就相当于人的名字,如果它父亲把姓改了,那它所有的兄弟姐妹姓都得改,但是它们的名字还是各用各的。
例:

public class A{
   static  int xingS = 0; //类变量
   private int name = 0; //实例变量
   String id; //实例变量
   private String colorType; //实例变量
   private int size; //实例变量
   private static String depart; //类变量
   final String name="zwm"; //常量
} 

public class B{
   public void main (String[] args){
       A son1= new A();
       A son2= new A();
       son1.xingS = 3;  // 等同于 A.xingS = 3;
       son1.name = 4 ;
       System.out.println(son2.xingS); //结果为3
       //类变量是针对所有对象的,所以son1改变xingS,son2的a也改变
       System.out.println(son2.name); //结果为0
       //实例只改变自身的,所以son1对象的name改变,不影响对象son2的name变量
   }
}

 

类变量又叫静态成员变量,它不需要创建对象就可以已经在内存中存在了,而在创建实例对象的时候,
内存中会为每一个实例对象的每一个非静态成员变量开辟一段内存空间,用来存储这个对象所有的非静态成员变量值。
即使两个不同的实例对象是属于同一个class类,但是它们的同名非静态成员变量在内存中占用的空间是不同的,
而静态成员变量也就是类变量相同。所有的实例对象都共用一个类变量,内存中只有一处空间是放这个类变量值的。
因此,如果一个对象把类变量值改了,另外一个对象再取类变量值就是改过之后的了。

 

Java中的基本类型和引用类型变量的区别

[定义] 引用类型表示你操作的数据是同一个,也就是说当你传一个参数给另一个方法时,你在另一个方法中改变这个变量的值, 那么调用这个方法是传入的变量的值也将改变.值类型表示复制一个当前变量传...
  • TingBen
  • TingBen
  • 2017年11月22日 14:23
  • 45

java基础-ThreadLocal变量和普通变量的区别

java提供了ThreadLocal这个类型,具有该类型的成员变量,每个使用到该变量的线程都保留一份该属性的备份数据,在线程内部对该属性的操作都是自己备份的数据,所以声明为ThreadLocal类型的...

Java中静态变量与实例变量的区别

java类的成员变量有俩种:一种是被static关键字修饰的变量,叫类变量或者静态变量;另一种没有static修饰,为实例变量。   在语法定义上的区别:静态变量前要加static关键字,而实例变量...
  • xys_777
  • xys_777
  • 2011年11月08日 10:10
  • 769

Java中的static和volatile变量的区别?

在java中声明一个静态变量,意味着只有一个副本,无论创建了多少个类的对象,即使没有创建对象,变量也可以访问,但是线程可能具有本地缓存的值。 当变量volatile而不是静态时,每个object都有一...
  • wyy6713
  • wyy6713
  • 2017年03月30日 15:44
  • 988

Java千百问局部变量、类变量、实例变量有什么区别

Java千百问局部变量、类变量、实例变量有什么区别 局部变量、类变量、实例变量有什么区别 在聊局部变量、类变量、实例变量有什么区别之前,我们需要了解一下Java变量。 ...

Java中静态变量和实例变量的区别?&和&&

静态变量和实例变量的区别? 在语法定义上的区别:静态变量前要加static关键字,而实例变量前不加。 在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会...

Java final变量和普通变量的区别

Java final变量和普通变量的区别今天在查看以前在达内培训的笔记时候,发现了Final关键字的使用笔记,其中有一个是关于Java类中final变量和普通变量的区别。对于java开发人员来说,fi...

从对象深入分析 Java 中实例变量和类变量的区别

实例变量 和 类变量 局部变量 特点:作用时间短,存储在方法的栈内存中 种类: 形参:方法签名中定义的局部变量,由方法调用者负责为其赋值,随方法结束而消亡方法内的局部变量:方法...

JAVA和C++ 交换两个变量的值的函数 区别

在程序开发的过程,要交换两个变量的内容,是一种比较常见的事情。在排序算法中,就有一种就叫做“交换排序法”。在所有的排序算法,交换要排序的集合中的两个元素,几乎是必须的过程。在Java中交换两个元素的内...

java中如何去理解 类,对象(实例),方法,类变量,对象(实例)变量的区别与联系

创建一个类时就创建了一种新的数据类型,使用这种类型来声明该类型的对象。 然而要获得一个类的对象需要两步, 第一, 必须声明该类类型的一个变量,这个变量没有定义一个对象,它只是一个能够引用对象的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java变量的区别
举报原因:
原因补充:

(最多只允许输入30个字)