最近有空,开始重新研读Bruce Eckel的经典之作--think in java。发现很多东西值得注意,现在就记录些
自己值得认为记录并去搞清楚的问题。
-------------------------------------无敌分割线----------------------------------------------------------------------
Q1: java中 除基本类型外的其他类型,即对象都存放在堆中,而一个对象都会有个 引用 去指向它,那么这个 引
用存放在哪里?栈?(当然,在java中 一个引用可以不用指向一个对象,比如:Stirng s; 当发送消息时会报错。)
A1:引用类型的变量存放在堆栈中。引用类型变量和它所指向的对象,分别存储在堆栈(stack)和堆(heap)中,
不同的引用类型变量可能指向同一个对象,但是相同的两个对象,指向它们的引用类型变量却不一定相同。
Q2:java中,基本类型变量都存储在堆栈中,堆栈中的存取速度是很快的,仅次于寄存器,但是操作堆栈是通过
移动上下指针来完成的,这就需要java系统知道存储在堆栈中所有变量确切的生命周期,那么它是如何去获知各
变量的生命周期的呢?
A2:堆栈中的变量,出了它的作用域,我们就可以说它的生命周期已经结束。
Q3:java有几种基本类型?8种?9种?
A3:java中有8种基本数据类型,9种基本类型。boolean,char,byte,int,float,double,short,long
还有种基本类型是 void 。9种基本类型都有自己对应的包装类型。void的包装类型是Void。所有的数值类型都有
正负号,不存在无符类型。