2.一切都是对象

1.对象存在什么地方。
a.寄存器
c和c++允许操作,java不允许。
b.堆栈
java的引用存这里,java知道堆栈里所有项的生命周期,以便上下移动。c和c++在此创建对象。
c.堆
存放java对象,编译器不知道对象的存活周期。
d.常量存储
直接存代码内部。
e.静态存储区
static的字样的数据存在这里,ram,java对象则不存这里。
f.非ram存储
存活在程序之外,如流对象,对象转化为字节流发送给另一台机器。
持久化对象,对象被放在磁盘上。

2.基本类型

new 的对象都在存在堆里。基本类型由于简单,所以存在栈里,高效。

boolean
char    16bits
byte     8bits  -128  +127
short   16bits  from -32768 to 32767
int     32bits  from -2147483648 to 2147483647
long    64bits  from -9223372036854775808 to 9223372036854775807
float   32bits
double  64bits
void    

3.高精度数字
BigInteger 任意精度整数
BigDecimal 任意精度定点数。
速度换精度。

4.java数组
java数组确保初始化,且有范围检查,以少量内存开销和运行时下标检查为代价换来安全性和效率提高。
java数组存基本类型的话,编译器确保数组初始化为零。

5.作用域
{
  int x=1;
 {
   int x=2;
 }
}
为防止混乱,java认为重复定义,c++则会隐藏较大作用域变量。

6.对象作用域

{
 String s = new String(“a string”);
}
作用域外 s引用失效。但是对象仍存在。

7.类的基本成员

当类的成员是基本类型,即使没有初始化,也会确保有个默认值。
当变量作为类的成员使用,java才确保给定默认值。(c++没有这样)
如果在某方法里定义 int x;  x没有初始化,可能范围任意值。

8.方法名和参数列表 合成 方法签名  唯一标识出某个方法。

实验 public String method()
     private int  method()
被java认为是同一方法,报错。

9.注释

常见的注释 /*   */  或者//

注释文档  类,域,方法
//: object/Documentation1.java
/** A class comment */
public class Documentation1 {
  /** A field comment */
  public int i;
  /** A method comment */
  public void f() {}
} ///:~
 
还有一些标签,如@author,@param,@return ,@Deprecated

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章