精华内容
下载资源
问答
  • 静态变量和实例变量

    2018-09-15 15:47:00
    首先,静态变量是static修饰的,而实例变量没有static修饰; 其次是,静态变量属于类变量,不需要创建实例就能使用,而实例变量需要创建实例对象; 还有就是,静态变量的类对象是共有的,只要有一个对象改变它的值...

    首先,静态变量是static修饰的,而实例变量没有static修饰;

    其次是,静态变量属于类变量,不需要创建实例就能使用,而实例变量需要创建实例对象;

    还有就是,静态变量的类对象是共有的,只要有一个对象改变它的值,值就改变,而实例对象是私有的,不影响其他对象。

     

    举个栗子:

    public class LeiBianLiangTest {

    public static void main(String[] args) {
    God god = new God();
    God god1 = new God();
    }
    }

    class God {
    static int i = 1; //类变量(静态变量)
    int j = 1; //实例变量

    public God() {
    i++;
    j++;
    System.out.println(i + ":" + j);
    }

    }

    结果截图:

     

    转载于:https://www.cnblogs.com/GGboy-wu/p/9651124.html

    展开全文
  • 一、静态变量在之前我们学习了变量可以分为局部变量(方法中定义的)和成员变量(成员变量是在类中定义的),其中成员变量又可以细分为两种:静态变量和实例变量。静态变量是使用static 修饰的成员变量(属性)就是静态变量...

    一、静态变量

    在之前我们学习了变量可以分为局部变量(方法中定义的)和成员变量(成员变量是在类中定义的),其中成员变量又可以细分为两种:静态变量和实例变量。

    静态变量是使用static 修饰的成员变量(属性)就是静态变量,静态变量保存在一块共享空间(方法区),这个区叫做全局数据区,保存在这个区的数据是共享的。,到目前为止我们见过了哪些内存空间啊?堆、栈、方法区(保存static修饰的变量或者方法信息)

    0b75d1ef9a6798c54cf94b67ffec2dd6.png

    DEMO:观察代码

    packagecom. bai . demo;public classStudent {//为 了我们方便操作数据暂时不定义为私有属性(严格来说是要定义为私有属性的)

    String name;intage ;

    String school;

    }packagecom. bai . demo;public classHello {public static voidmain(String[] args) {//创建第一个学生对象

    Student s1=newStudent();

    s1. name="李四";

    s1. age=19;

    s1. school="南京大学";//创建第二个学生对象.

    Student s2=newStudent();

    s2. name="张三";

    s2. age=20;

    s2.school1="南京大学";//创建第三个学生对象

    Student s3=newStudent( );

    s3. name="赵柳";

    s3.age=17;

    s3. school="南京大学";

    System. out. println("第- -个学生信息:名字---》 "+s1.name+" ,年龄---》"+s1.age+"学

    校----》"+s1. school);

    System. out . println("第二个学生信息:名字---》"+s2.name+", 年龄---》"+s2.age+"学

    校----》"+s2. school);

    System. out . println("第三个学生信息:名字---》"+s3. name+",年龄---》"+s2. age+"学

    校----》"+s3. school);

    }

    }

    459ddaa693342a3c7c7ca1021562ae25.png

    思考:假如有一千个学生对象,但是所有学生的学校信息都是一样的,此时如果要将所有学生的学校信息进行修改,则要在每个对象中修改,要修改1000次。这样的就增大了工作量,不方便代码的维护,此时最好的做法是将学校信息声明为静态变量,之后静态变量是每个对象共享的,只需要在一个地方进行修改其他对象也会共享到修改的数据。

    DEMO:声明为静态变量

    packagecom. bai . demo;public classStudent {//为了我们方便操作数据暂时不定义为私有属性(严格来说是要定义为私有属性的)

    String name ;intage ;staticString school;

    }packagecom. bai. demo;public classHello {public static voidmain(String[] args) {//创建第-一个学生对象

    Student s1=newStudent();

    s1. name="李四";

    s1.age=19;

    s1. school="北京大学";//创建第二个学生对象

    Student s2=newStudent();

    s2. name="张三";

    s2. age=20;//创建第三个学生对象

    Student s3=newStudent();

    s3. name="赵柳";

    s3. age=17;

    System. out. println("第- -一个学生信息:名字---》"+s1. name+",年龄---》"+s1. age+"学

    校----》"+s1. school);

    System. out . println("第二个学生信息:名字--》"+s2.name+" ,年龄---》"+s2.age+"学

    校----》"+s2. school);

    System. out. println("第三个学生信息:名字---》 "+s3.name+", 年龄---》"+s2.age+"学

    校----》"+s3.school);

    9ff2047c431504a7de364e0060a903c0.png

    此时只需要修改一个对象的学校信息就可以影响到其他使用Student类创建学生对象的学校信息。说明了静态变量是每个使用该类创建的实例对象共享的变量。

    DEMO:观察代码

    07c33aafda392d1f388e0c0eed45c9f0.png

    发现了静态属性(静态变量)可以使用“类名.属性名”的方式引用(所以还被叫做类变量),还可以使用“对象名.属性名”的方式引用,但是普通的属性(实例变量)不能使用“类名属性名”的方式引用。

    静态变量没有实例化对象(创建对象)也可以访问,所以我们把静态变又叫做类变量,非静态属性需要实例化对象之后才能访问,所以他叫做实例变量。

    DEMO:记住

    packagecom. bai . demo;public classStudent {//为了我们方便操作数据暂时不定义为私有属性(严格来说是要定义为私有属性的)

    String name;//实例变量 需 要先创建对象之后才能通过“对象名.属性名”方式访问

    int age; //实例变量 需要先创建对象之后才能通过“对象名.属性名”方式访问

    static String school;//静态变量,属于类的,使用该类创建的对象共享,可以使用“类名.

    属性名”的方式访问

    }

    总结:

    1、静态变量的概念:使用static 修饰的变量就是静态变量,静态变量保存在,方法区(全局数据区)

    2、静态变量可以使用“类名.属性名”和“对象名.属性名”的方式访问,所以静态变量又叫做类变量

    3、非静态变量只能使用“对象名.属性名”的方式访问,依赖于对象(实例)存在,所以叫做实例变量。

    ef3b724c82a7dbc7ea64208a0cd48a01.png

    有完整的Java初级,高级对应的学习路线和资料!专注于java开发。分享java基础、原理性知识、JavaWeb实战、spring全家桶、设计模式、分布式及面试资料、开源项目,助力开发者成长!

    欢迎关注微信公众号:码邦主

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

    静态变量属于类,该类不生产对象,通过类名就可以调用静态变量。

    实例变量属于该类的对象,必须产生该类对象,才能调用实例变量。

    在程序运行时的区别:

    实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。

    静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。

    总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。

    例如,对于下面的程序,无论创建多少个实例对象,

    永远都只分配了一个 staticInt 变量,并且每创建一个实例对象,这个staticInt就会加1;但是,每创建一个实例对象,就会分配一个random,

    即可能分配多个 random ,并且每个random的值都只自加了1次。

    请看如下代码:

    private static int staticInt=2;//声明静态变量,并赋值

    private int random=2;//声明实例变量,并赋值

    //静态变量属于类,该类不生产对象,通过类名就可以调用静态变量。

    //实例变量属于该类的对象,必须产生该类对象,才能调用实例变量。

    public static void main(String[] arges){//定义main方法

    System.out.println(staticInt);

    StaticTest test=new StaticTest();//创建对象

    System.out.println(test.random);//通过test调用变量

    }

    展开全文
  • 这里简单做一下笔记,区分Java全局变量里的静态变量实例变量。1、Java里的全局变量首先了解Java里的全局变量,也叫成员变量。特点:(1)、一个类中既不在方法体内,也不在程序块内定义的变量;(2)、类中所有的方法...

    这里简单做一下笔记,区分Java全局变量里的静态变量与实例变量。

    1、Java里的全局变量

    首先了解Java里的全局变量,也叫成员变量。

    特点:

    (1)、一个类中既不在方法体内,也不在程序块内定义的变量;

    (2)、类中所有的方法和代码块都可以访问成员变量;

    (3)、对于没有初始化的成员变量,系统会指定默认的值。

    2、全局变量包括静态变量与实例变量

    字面理解:

    静态变量也叫做类变量,独立于方法之外的变量,有static修饰。

    实例变量同样独立也是独立于方法之外的变量,但没有static修饰。

    private static int num1= 100;  //静态变量

    private int num2= 100;      //实例变量

    3、举个栗子:

    public classDemo_variable {private static int static_variable = 100; //静态变量

    private int Instance_variable = 100; //实例变量

    publicDemo_variable() {

    static_variable++;

    Instance_variable++;

    System.out.println("静态变量 ="+static_variable+"实例变量 ="+Instance_variable);

    }public static voidmain(String[] args) {

    Demo_variable test1= newDemo_variable();

    Demo_variable test2= newDemo_variable();

    }

    }

    运行时结果如下:

    静态变量 = 101 全局变量 = 101静态变量= 102 全局变量 = 101

    4、区别总结如下:

    实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。

    结合上述给出的例子。每创建一个实例对象,就会分配一个Instance_variable,实例对象之间的Instance_variable是互不影响的,

    所以就可以解释为什么输出的两个Instance_variable值是相同的了。

    静态变量不属于某个实例对象,而是属于整个类。

    只要程序加载了类的字节码,不用创建任何实例对象,静态变量就回被分配空间,静态变量就可以被使用了。

    结合上述给出的例子,无论创建多少个实例对象,永远都只分配一个static_variable变量,并且每创建一个实例对象,static_variable就会加一。

    总之,实例变量必须创建对象后,才可以通过这个对象来使用;

    静态变量则可以直接使用类名来引用(如果实例对象存在,也可以通过实例对象来引用)。

    其实,这也可以解释,为什么static修饰的方法不用在实例对象创建后,可以调用。

    而没有static修饰的方法必须要与对象关联在一起,必须创建一个对象后,才可以在该对象上进行方法调用。

    展开全文
  • 来喽~~~~在语法定义上的区别静态变量前要加static关键字,而实例变量前则不加。在程序运行时的区别实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量静态变量...
  • 1、语法定义上的区别:静态变量:需要加static关键字实例变量:不需要加static关键字修饰2、程序运行时的区别:静态变量静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,...
  • 类的成员变量可以分成静态变量和实例变量,下面的文章主要为大家介绍的就是静态变量,主要包括了概念以及作用,以及静态变量与实例变量的区别,一起通过文章内容来进行详细的了解吧。1、什么是静态变量?静态变量又被...
  • 本篇文章介绍了,java中静态变量和实例变量的区别。需要的朋友参考下
  • 在之前我们学习了变量可以分为局部变量(方法中定义的)和成员变量(成员变量是在类中定义的),其中成员变量又可以细分为两种:静态变量和实例变量。 静态变量是使用static 修饰的成员变量(属性)就是静态变量,静态变量...
  • 静态变量和实例变量的区别 看下面这个代码 class Demo1{ //静态变量 public static int a = 1; //实例变量 public int b = 1; public Demo1(){ a++; b++; System.out.println("静态变量: "+a+"实例变量b: ...
  • [ 个人的总结1 静态变量只有一份被类的所有实例...叫类变量或静态变量,一种是没有被static修饰的,叫做实例变量静态变量和实例变量的区别在于:类静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变...
  • 有关静态变量和实例变量的资料,有详细的说明,大家可以看一下。我这里 有大量的关于c#的资料 要的话可以私信我
  • Java 中静态变量和实例变量区别 静态变量属于类,该类不生产对象,通过类名就可以调用静态变量。 实例变量属于该类的对象,必须产生该类对象,才能调用实例变量。 在程序运行时的区别: 实例变量属于某个...
  • 静态变量和实例变量的区别? 语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。 程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用...
  • 静态变量和实例变量的区别? 静态变量存储在方法区,属于类所有。实例变量存储在堆当中,其引用存在当前线程栈。 转载于:https://www.cnblogs.com/hplsharenote/p/10466501.html...
  • 静态变量和实例变量的区别? 答:静态变量是被 static 修饰符修饰的变量,也称为类变量,它属于类,不 属于类的任何一个对象,一个类不管创建多少个对象,静态变量在内存中有 且仅有一个拷贝;实例变量必须依存于某一...
  • 静态变量和实例变量的区别有哪些? 静态变量和实例变量可能大多数同学用的比较多,但是相关阐述并不是很常见,尤其对新手同学可以不能清楚表达。 静态变量和实例变量也是最经常遇到的一个基础java面试题,不管原来...
  • 实例变量:只有在创建了实例对象之后才会被分配空间,才可以使用静态变量:不需要创建实例对象就可以直接使用类名进行引用public class Different {public static int staticInt = 0;//静态变量public int insInt = ...
  • 一、静态变量在之前我们学习了变量可以分为局部变量(方法中定义的)和成员变量(成员变量是在类中定义的),其中成员变量又可以细分为两种:静态变量和实例变量。静态变量是使用static 修饰的成员变量(属性)就是静态变量...
  • Java中静态变量和实例变量的区别

    万次阅读 多人点赞 2018-07-30 15:24:21
    小编打算利用暑假的时间重新系统的学习一下Java,以前也写了一部分关于Java的博客,但是写的很糟糕,打算重新写一下,就主要写一下学习...在Java中,静态变量和实例变量可以统称为成员变量。首先,明白什么是静态变...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,961
精华内容 4,784
关键字:

静态变量和实例变量