在理解JAVA对象这个概念的时候,去看了下,使用对象应该注意的地方。发现有一点是这样说的
尽量使用基本数据类型代替对象
对于这句话我不太理解。
还有一点就是,我创建一个拥有三个属性的对象,实例化这个对象之后,我只赋了两个属性给这个对象,第三个属性为空。理论上这就属于内存浪费了。
但是我如果定义一个只有两个属性的构造函数,这样的话。在实例化对象并赋值的时候,第三个为空的属性,还会占用内存吗?

------解决思路----------------------
第一个问题:
两个原因,一个是慢,一个是费内存。比如int和Integer,int是基本数据类型,它只占用32位的空间;Integer是对象,它占用了一个指针的空间和一个至少具有一个int成员的对象的空间。这样算下来浪费不少空间吧,而且访问要慢得多(要多走两次寻址,第一次找对象的位置第二次找数据成员的位置)。但是Integer比int的好处是它符合对象的标准格式,可以用在泛型上,而int不行的。
第二个问题:
会的。一个数据成员在声明时就确定了它在对象中占有一席之地。无论你是否赋值,它占用的空间不会变,因为Java不能确定你以后会不会用它。。
------解决思路----------------------
第一点说不好,应该是为了减少装箱操作和复用方法区常量吧
第二点,不将实例属性初始化的话因为总体上少了一个对象,所以可以减少内存占用,但对实例本身的内存占用应该影响不大,有影响也是不同类型的引用之间的区别。可以看看这个
------解决思路----------------------
赞一个
------解决思路----------------------
1楼正解, 另外基本数据类型可以和一些类进行转换啊
------解决思路----------------------
第1个很好理解啊,能节省内存空间,另外,基本类型提供了丰富的方法调用,可以很方便的对数据进行操作。
第2个虽然没有通过构造方法赋值,但变量空间会开辟,另外,你用不着的变量留着干嘛?