什么是 类初始化?

「已注销」 2012-10-31 09:15:58
小弟弟刚学JAVA,在自学看书。我有几个问题,希望大家帮我普及一下知识。
我的问题是: 1.什么是类初始化?
2.类在初始化时,内存中的运行机制?或 初始化与分配内存有什么关系?
3.创建一个对象与初始化有什么区别?
先谢谢大家。。希望大家说说个自的了解。
...全文
440 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
BadPattern 2012-10-31
  • 打赏
  • 举报
回复
如果你是初学java,先有个概念,会做一些笔试题就可以了,等以后想深入理解,就看<深入java虚拟机>这本书
BadPattern 2012-10-31
  • 打赏
  • 举报
回复
类被使用之前需要被装载进虚拟机,分以下阶段:类的加载,链接和初始化,你问的什么是类的初始化即是第三阶段,会初始化类的静态变量,执行类的静态初始化方法.

类在链接的过程中的“准备阶段”会为类变量分配内存,设置默认的初始值(字节全为0)。

创建一个对象和类的初始化有什么区别:
类的初始化只会在类被装载的时候执行一次,而创建一个对象执行的是"对象的初始化方法",这两者需要加以区别,对象的初始化方法包含了:成员变量初始化,初始化块和构造函数
「已注销」 2012-10-31
  • 打赏
  • 举报
回复
英文我的硬伤咧,,看不懂。
joyscsnd 2012-10-31
  • 打赏
  • 举报
回复
楼上英文挺厉害啊,学习啊。
liwenqiang758 2012-10-31
  • 打赏
  • 举报
回复
jvm lazy load class 机制, 下列情况会初始化类
1、T is a class and an instance of T is created.
2、T is a class and a static method declared by T is invoked.
3、A static field declared by T is assigned.
4、A static field declared by T is used and the field is not a constant variable
References to compile-time constants must be resolved at compile time to a copy of the compile-time constant value, so uses of such a field never cause initialization.

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧