Thinking in Java: 2.对象

1.java对象存储在什么地方?

堆:用于存放所有Java对象,堆不同于堆栈的好处是:编译器不需要知道存储的数据在堆里存活多长时间。当需要对象时new一个就行,当然灵活性的代价是:存储分配和清理需要更多时间。

2.基本类型

boolean、char、byte、short、int、long、float、double,new将对象存放于堆里,但以上不用new来创建,而是创建一个并非是引用的自动变量,这个变量直接存储值,并置于堆栈中。高精度数字:BigInteger和BigDecimal。

3.java靠什么防止对象填满内存空间?

java垃圾回收器,用来监视用new创建的所有对象,并分辨哪些不会再被引用的对象,随后释放这些对象的内存空间。消除了内存泄漏的问题。

4.类

关键字:class,类包含字段(数据成员)和方法。若类的某个成员是基本数据类型,即使没有进行初始化,java也会给他一个默认值,注意:当变量作为类的成员使用时,java才确保给定其默认值,并不适用于“局部”变量(即并非某个类的字段),若在某个方法中定义:int x,此x是没有默认值的。

                     基本类型               默认值

                     boolean                 false

                      char                       null

                   byte、short               0

                   int、long

                   float                           0.0f

                   double                      0.0d

5.static关键字:

即使没有创建对象,也能够调用,要用static。满足两方面需求:当声明一个事物是static时,意味着:1.这个域或方法不会与包含他的那个类的任何对象实例关联在一起。2.为某特定域分配单一存储空间,而不去考虑究竟要创建多少对象,甚至根本就不创建任何对象。例如:

class StaticTest{

       static int i=47;

}

即使创建两个对象,StaticTest.i也只有一分存储空间,两个对象共用一个i.在看下面代码:

StaticTest st1= new StaticTest();
StaticTest st2= new StaticTest();

这里,st1.i与st2.i指向同一存储空间,因此具有相同的值47.

引用static变量的方法:1.通过对象引用,例st2.i;也可以通过类名直接引用,StaticTest.i++(推荐)静态方法同静态变量类似,不再多述。

6.public static void main(String[] args){}

我们程序中并未用到args,但java编译器要求必须这么做,因为args用来存储命令行参数。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值