A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小小程序员 中级黑马   /  2014-10-14 22:06  /  1431 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

被static修饰的成员变量会随着类的加载而加载。
谁能告诉我这个加载到底是什么意思啊。是运行的意思吗??
困扰了我很久一直搞不懂

6 个回复

倒序浏览
JAVA虚拟机只为静态变量分配一次内存,在加载类的过程中完成静态变量的内存分配。其实就是分配内存。
回复 使用道具 举报
逍遥小seng 发表于 2014-10-14 22:56
JAVA虚拟机只为静态变量分配一次内存,在加载类的过程中完成静态变量的内存分配。其实就是分配内存。 ...

那加载的意思就是 实例化的过程吗
回复 使用道具 举报
静态的成员变量数据是随着类文件的加载而存在,随着类文件的消失而消失。
也可以理解为随着类文件的调用就存在了。你可以具体看看毕向东老师的基础教程讲解,他会用例子来演示,这样会理解更深刻一点!
回复 使用道具 举报
小小程序员 发表于 2014-10-14 23:27
那加载的意思就是 实例化的过程吗

不是的。实例化是针对实例变量的,每创建一个实例,就会为实例变量分配一次内存。static变量可以直接用类名调用,正是因为类加载就为static变量分配内存,可是类加载不一定会创建实例。所以static方法中不能调用实例方法,因为static加载时还没实例。不知道我说的够不够清楚。
回复 使用道具 举报
被static修饰的成员变量生命周期最长,加载是分配内存的意思,在没有实例化对象之前就可以进行直接调用。。。
回复 使用道具 举报
踏云 中级黑马 2014-10-15 00:13:31
7#
加载是,jvm将类文件加载到方法区的同时也会将静态的成员函数加载到方法区,把成员变量加载到方法区的静态数据共享区
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马