书中这样说:
1、构造器实际上是静态方法,当首次创建类型为Dog的对象时候,或Dog的静态方法/静态域首次创建类型为Dog的对象时,java 解释器必须查找类路径,以定位Dog.class文件。
2、载入Dog.class,并静态初始化.
3、当用new Dog()创建对象的时候,首先将在堆上为Dog对象分配足够的存储空间。
我我疑问是:
因为1 和3中都说到Dog()构造器,然后又是不同的,所以我这样想:1 是还没有执行Dog()构造器里面的内容,而 3中是执行Dog()构造器里面的内容,这样想对吗?
我在这里不懂怎么去理解。求大神帮忙。谢谢
1、构造器实际上是静态方法,当首次创建类型为Dog的对象时候,或Dog的静态方法/静态域首次创建类型为Dog的对象时,java 解释器必须查找类路径,以定位Dog.class文件。
2、载入Dog.class,并静态初始化.
3、当用new Dog()创建对象的时候,首先将在堆上为Dog对象分配足够的存储空间。
我我疑问是:
因为1 和3中都说到Dog()构造器,然后又是不同的,所以我这样想:1 是还没有执行Dog()构造器里面的内容,而 3中是执行Dog()构造器里面的内容,这样想对吗?
我在这里不懂怎么去理解。求大神帮忙。谢谢
解决方案 »
- 在类中定义另外一个类的对象数组会出错,求解
- 关于timer类的疑问 100分!
- JAVA中一个值得去沉思的一个问题!!!
- 菜鸟朋友问菜鸟一个问题,菜鸟不知做,请java高手帮忙啊??否则菜鸟的牛就白吹了!!!
- 诚心请教如何去除action方法引起的deprecation编译提示?
- 一个类能不能同时implements A 并且 extends B
- java.io.Serializable 这个接口是干什么用的?
- 我想用setToolkitText实现工具提示功能
- 如何设置JCreator的JDK profiles?
- 为什么现在用SWING编程,程序中还经常有AWT,是不是两者必须全用?
- java 对静态初始化的疑问!!!
- main函数的代码放在一个构造函数中不能运行!
Interpreter(解释器)/(及时运行)JIT Code generator(经常找出运行的代码,转成cpu子令,无需再编译)-Hardwate,即环境变量classpath配的路径,这个应该是1的意思,3的意思是说对象都放在堆里,没觉得矛盾啊。
说实话,这段话说的好晦涩,翻译的问题吗?
目前市面上的书很多是垃圾的,并且针对技术这方面的说法也不规范..各说各的.我想告诉你的是 当你New的时候,这时还没启动构造器,而是在内存中开始做着一系列的工作,当在内存中的 空间 地址值 都分配好了之后 才会 启动构造器,, 构造器的左右是给类进行初始化的.