那我又请教如果 int a=0;的啊是引用或者是变量的话?那要是实例化一个基本类型呢?如何实例化,实例化后和上面的有区别吗?
解决方案 »
- 线程问题求思路
- 打拢了!Struts+Java分页问题,实在是找不出错在哪里了?先谢谢了
- Unhandled Exception thrown: class java.lang.NullPointerException
- Jtree大问题
- Calendar疑问
- 初学java,弱弱问下如何用正则表达式判断日期格式?
- 各位大哥,救救小弟,给小弟我一点信心吧!我真的快要失去学习JAVA的信心了!
- 如何将JTree与JTable组和在一起?将JTree作为JTable的一列?
- 咋回事:SQL Server Driver for Jdbc ?
- 一个有意思的BUG 分析疑惑
- 还是概念不清楚,望牛人路过此处一解!
- 修正下前面的小问题
Integer a = new Integer(10);
不就完了么
a是一个变量。用C语言描述,无非就是
struct Variable
{
char* name;
union {
int ivalue;
double dvalue;
bool bvalue;
};
};*value保存了变量的值。在Java语言中算不得对象。
Integer a = new Integer(10);
这里a依然是变量,但是指向了一个对象。你可以看成是:
struct Variable
{
char* name;
union {
int ivalue;
double dvalue;
bool bvalue;
java.lang.Object* p;//NOTICe HerE!.
};
};这个p会指向Integer对象。这个就是JVM里面一个变量的实现示意。
而对象的存储分为2个部分,一个是堆中存储对象真正的内容,而把这些内容的地址存储在栈中。
所以两个对象,例如obj1 == obj2进行比较,实际比较的是这两个对象存储在栈中的内容,也就是内存地址。
而8中基本类型的包装类,则和String类情况相同.