类加载的时间问题
静态成员是在类加载的时候开辟空间的,那么类加载是我程序写好了,编译过程中发生的还是运行中发生的呢,如果我运行完了,只是吧静态成员的代码删除了,但是不运行,那么这片空间还有吗,还是第二次运行的时候,因为没有这个静态成员,才把空间释放了呢
6
收起
正在回答
1回答
你这理解不太对呀
你(javac)编译一个.java文件只是生成一个.class字节码,这个程序还没有运行呢,只是在硬盘里的字节码
你(java)解释运行时,这个代码才执行呢,然后才有什么加在到内存里的事
就是你有一本外文工作指南,这工作指南是放在书架上的.java文件(书架相当于硬盘)
你开始执行javac命令编译这本指南,就相当于你把指南从书架上拿下来,逐条翻译成汉语并写在一个.class的文件中,这个文件又放在书架上。
然后你开始执行java解释运行命令,那么你才把翻译好的指南里的任务记在脑子里,当你任务完成了,你的注意力下降了,刚刚的任务你就逐渐都遗忘了。
你脑子里记不记得任务和书架上书中的内容已经没有关系了
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星