`

静态变量与非静态变量的区别

阅读更多
①java类的成员变量有俩种:
        一种是被static关键字修饰的变量,叫类变量或者静态变量
        另一种没有static修饰,为成员变量

    ②通俗点说:
        类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享。静态变量是 属于类的变量,而不是属于具体实例的变量。即:在同一个类的不同实例中对同一个 static 变量做变更的话,所有该类的实例中该变量的值都会被改变。
    静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期。
    而实例变量取决于类的实例。每创建一个实例,java虚拟机就会为实例变量分配一次内存,实例变量位于堆区中,其生命周期取决于实例的生命周期。

注意点:
    1.JAVA中初始化的顺序:
        加载类;
        静态变量初始化;
        静态块;【其只能调度静态的,不能调度非静态的】
        成员变量;
        构造方法;

    2.为显示静态块的优先级,我来显示一个没有Main方法的程序,javac后其是没有任何错误的。

    public class Test {
        static {
            System.out.println("static ");
            System.exit(0);
        }
    }

参考:http://blog.csdn.net/cason_xu/article/details/3546773
分享到:
评论

相关推荐

    静态变量和非静态变量的区别.xmind

    静态变量和非静态变量的区别

    java中静态与非静态的变量定义与使用

    在Java中定义变量时需要慎重考虑是静态还是非静态,因为静态拥有绝对优先权!

    静态变量与非静态变量获取配置文件application中变量值的区别.docx

    springboot引用静态资源static中变量常用方法,经常用到的是非静态变量,在需求类方法中引入比较容易配置,当遇到静态变量时常出现错误,本文档为手动操作样例与结构展示

    php中静态类与静态变量用法类.zip

    分析了php中静态类与静态变量用法类的区别,创建对象$object = new Class(),然后使用”->”调用:$object->attribute/function,前提是该变量/方法可访问。直接调用类方法量:class::attribute/function,无论是静态/...

    static静态变量使用@Value注入方式.md

    MarkDown文档,大家应该都知道,@Value注解可以给类中的非静态变量注入值,但是给静态变量注入值则会有警告,结果是失败的,本文档说明了如何使用@Value注解给类的静态变量赋值

    PHP静态成员变量和非静态成员变量详解

    数据成员可以分静态变量、非静态变量两种. 静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态...

    Java中的静态变量、静态方法与静态代码块

     可以将静态变量理解为类变量(与对象无关),而实例变量则属于一个特定的对象。  静态变量有两种情况:  ● 静态变量是基本数据类型,这种情况下在类的外部不必创建该类的实例可以直接使用  ● 静态变量...

    php中静态类与静态变量用法的区别分析

    本文实例分析了php中静态类与静态变量用法的区别。分享给大家供大家参考。具体分析如下: static是定义一个静态对象或静态变量,关于static 定义的变量或类方法有什么特性我们看完本文章的相关实例后就见分晓了. 1. ...

    Java 静态方法/变量,非静态方法/变量的区别

    静态/非静态 方法/变量的写法 大家应该都明白静态方法/字段比普通方法/字段的写法要多一个static关键字,简单写下他们的写法吧,了解的可以直接略过 class Test{ // 静态变量 public static int id = 1; // 普通...

    Kotlin使用静态变量与静态方法详解

    kotlin定义静态变量、方法可以采用伴生对象companion object的方式。 下面这篇文章主要给大家介绍了关于Kotlin使用静态变量与静态方法的相关资料,需要的朋友可以参考下

    C++非静态成员函数完全可以作为线程函数

    那非静态的成员函数呢?一般地方都说的是,不行,做不了。。。为什么不行?都是代码区的代码,static就行,我就不行,歧视我???本例就是自己的研究成果,使用非静态的成员函数作为线程函数,还能修改类的非静态的...

    springboot无法从静态上下文中引用非静态变量的解决方法

    主要介绍了springboot无法从静态上下文中引用非静态变量的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    php中static 静态变量和普通变量的区别

    static变量和普通变量的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内...

    关于Java静态成员变量和静态初始化块等的初始化顺序的详细介绍

    详细介绍了Java的静态成员变量、静态数据块、非静态成员变量和非静态成员变量等初始化顺序

    static全局变量与普通的全局变量的区别详细解析

    这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域,即只在定义该变量的源文件内

    C++ 中静态成员函数与非静态成员函数的区别

    静态成员函数与非静态成员函数的区别 数据成员: 静态数据成员是类的一部分,为类的所有实例共享(静态区);非静态数据成员,类的每个实例都有一份拷贝(动态区)。 静态数据成员的访问: 静态数据成员是类的一部分,在...

    C++静态成员变量和静态成员函数

    静态成员变量和静态成员函数 class ClassA { int a; int b; static int c; //静态成员变量 static void xxx_fun() //静态成员函数 { ... } } 普通成员变量每个对象都有各自的一份,静态成员变量所有对象...

    java 静态非静态 字段方法 子类父类构造_初始化顺序!

    java 静态_非静态 字段_方法_代码块 子类父类构造_初始化顺序! 三个class 让你清清楚楚 第一个class java代码如下: package initialOrder; class Parent { // 静态变量 public static String p_StaticField...

Global site tag (gtag.js) - Google Analytics