028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

《Java架构筑基》从Java基础讲起——深入理解Static-创新互联

1. static的作用和特点

可以用来修饰:成员变量,成员方法,代码块,内部类等。具体如下所示

仙游ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!

修饰成员变量和成员方法

静态代码块

静态内部类(static修饰类的话只能修饰内部类)

静态内部类与非静态内部类之间存在一个大的区别:

静态导包(用来导入类中的静态资源,1.5之后的新特性):

static关键字的特点

static的注意事项

2. static变量存储位置

static变量存储位置

3. 用static静态变量潜在性问题

用static静态变量潜在性问题

4. 静态变量的生命周期

静态变量的生命周期

5. 静态变量何时销毁

静态变量何时销毁

6. 静态引用的对象回收

静态引用的对象回收

7. 静态方法变量内存图

描述Dog对象:

public class Dog {
    public static String name;

    public static int age;

    public static void showNameAge() {
        System.out.println("name:" + name + " age:" + age);
    }
}

main测试方法:

public class Demo01 {
    public static void main(String[] args) {
        Dog.name = "阿白";
        Dog.age = 98;

        Dog.name = "李双";
        Dog.age = 90;

        Dog.showNameAge();
    }
}

//执行结果:name:李双 age:90

大概流程就是

  1. 执行 java Demo01 是给JVM发送指令,和JVM说:把这个 Demo01.class 去执行;
  2. JVM就去执行 Demo01.class 文件里面的字节码,首先第一步 是把 Demo01.class字节码加载进内存;
  3. 第二步把Demo01.class放入字节码存放区;
  4. 第三步把Demo01里面的静态数据(静态变量 与 静态方法)分配到 静态区;
  5. 第四步main方法进栈,如何进栈的,是把静态区里面的main方法拿到运行区(栈) 然后就进栈了;
  6. 第五步main方法执行 Demo. 的时候,就在此时 才把Dog.class加载进内存;
  7. 第六步把Dog.class放入字节码存放区;
  8. 第七步把Dog里面的静态数据(静态变量 与 静态方法)分配到 静态区;
  9. 第八步 在main方法中执行 Dog.name 是向静态区去找到 Dog.name 拿来使用,由于是共享的 name 只保持最后修改的数据;

8. 静态变量和成员变量的区别

A:所属不同

B:内存中位置不同

C:内存出现时间不同

D:调用不同

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


标题名称:《Java架构筑基》从Java基础讲起——深入理解Static-创新互联
当前网址:http://www.tsicrk.com/article/dopjpd.html

其他资讯

让你的专属顾问为你服务

1.5467s