本人新手刚接触java不久!求大神赐教。。
1.
java 虚拟机加载类后会对类的局部变量进行初始化!
是不是就是说
class hello{
public String a = "hello";
}
其实变量a此时已经有了字符串"hello"的地址!
2.
以下为猜测 希望大神指点下
如果1 中说的正确
那么就是说 其实 类和实例都差不多
在内存中他们都有各自的空间,并都初始化过 不同之处在于实例是经过构造函数修改过后的类
3.
如果2 正确
是不是类在实例化时!
首先是给出一个类的副本,
然后运行构造函数修改此副本
结果就是最后的实例java 实例化
1.
java 虚拟机加载类后会对类的局部变量进行初始化!
是不是就是说
class hello{
public String a = "hello";
}
其实变量a此时已经有了字符串"hello"的地址!
2.
以下为猜测 希望大神指点下
如果1 中说的正确
那么就是说 其实 类和实例都差不多
在内存中他们都有各自的空间,并都初始化过 不同之处在于实例是经过构造函数修改过后的类
3.
如果2 正确
是不是类在实例化时!
首先是给出一个类的副本,
然后运行构造函数修改此副本
结果就是最后的实例java 实例化
解决方案 »
- SSH企业产片宣传网站产品搜索问题
- ibatis注入的问题!不是##形式能解决的!
- sql优化问题
- 谁能给一个JAVA的TCP/IP协议通讯获取数据的思路??
- 网站前后台问题
- 有必要把javaScript搞的很清楚吗
- 高分求助!如何在Tomcat4.1.24下部署JNDI数据源?
- 怎么样取得hash表中的键?
- 求助:hibernate包下载下来怎么只有10来k?
- 大神们帮忙解答下添加在hashset中的元素为什么要实现hashcode和equals方法
- Virgo Tomcat Server :Archive for required library cannot be read or is not a val
- java执行oracle备份命令总失败, why
2,3就不用回答了吧
2.有各自的空间是对的,至于实例化,只有你new(包括各种……)它的时候,才会发生。将这个class的定义读入虚拟机的过程可以认为是load,而生成一个实例的时候才是initiate,一般第一次new这个class或者调用这个class的静态方法,会触发load。
3.没有副本一说
以下是我看后的理解:
1.把 .class文件加载到JVM内存中!此时每个.class文件就是一个类
2.当运行代码时 要new 哪个类的对象,就把该 .class文件解释为机器码,并分配地址等等!
3.机器码运行构造函数初始化对象属性。本来也想看看源码理解的,但是新手看码比较困难!
还是想先理解下大体框架!
以下是我看后的理解:
1.把 .class文件加载到JVM内存中!此时每个.class文件就是一个类
2.当运行代码时 要new 哪个类的对象,就把该 .class文件解释为机器码,并分配地址等等!
3.机器码运行构造函数初始化对象属性。本来也想看看源码理解的,但是新手看码比较困难!
还是想先理解下大体框架!
以下是我看后的理解:
1.把 .class文件加载到JVM内存中!此时每个.class文件就是一个类
2.当运行代码时 要new 哪个类的对象,就把该 .class文件解释为机器码,并分配地址等等!
3.机器码运行构造函数初始化对象属性。本来也想看看源码理解的,但是新手看码比较困难!
还是想先理解下大体框架!
谢谢啦! 怎么给分啊!
以下是我看后的理解:
1.把 .class文件加载到JVM内存中!此时每个.class文件就是一个类
2.当运行代码时 要new 哪个类的对象,就把该 .class文件解释为机器码,并分配地址等等!
3.机器码运行构造函数初始化对象属性。本来也想看看源码理解的,但是新手看码比较困难!
还是想先理解下大体框架!
谢谢啦! 怎么给分啊!
结贴给分啊