注: 本文原载于 My Personal Blog:, CodeSheep · 程序羊 !
还是有必要学习一下关于·一切都是对象
说Java是一种纯粹的面向对象的语言,可能这话主要是针对和C++的比较而言,毕竟C++提供了向C的后向兼容的能力,致使C++好像面向对象得不那么纯粹,这话我大概同意吧。
Java均是在用reference来操作对象
比较安全的做法是:创建引用的同时对其进行初始化
对象由我们来创建但却不需要我们来销毁
-
对于基本类型
- 无需用new,java视其为非引用的自动变量,并置于stack之中
- 基本类型有其包装器类,这才允许将其创建于heap之中,当然包装完之后也不能叫基本类型对象了
- java所有数值都有正负,不支持无符号
- BigInteger和BigDecimal是Java支持的两大高精类型
-
对于数组
- java在每个数组上用了一点内存开销以及运行时的下标检查为代价,带来了收益是:java确保数组会被初始化(对象数组元素初始化为null,基本类型数组元素初始化为0),且不会越界访问
-
对于class
- 基本数据类型成员会确保有默认值(但该条款不适用与局部变量)
- 称呼上惯用方法来取代函数;方法名和参数列表成为方法签名;调用方法的行为称为发消息给对象
-
关于作用域
- java不允许覆盖一个较大作用域的变量,如下:
{
int x = 12;
{
int x = 96; // 这在Java里是不合法的
}
}
- 关于Static对象
- 一份存储空间
- 直接使用类名来引用static成员更常见
- 关于一个java程序
- java.lang肯定会被自动导入到每一个java文件中
- 一个java源码文件 = 一个编译单元
- java源文件名 = 源文件中仅有的一个public类名,且该类必须包含一个main()方法(当然一个java文件中无public类也是ok的!)
- 每个java类都有一个main()方法是OK的,这样还便于单元测试!