您的位置:首页 > 编程语言 > Java开发

Java编程思想学习笔记(一)

2014-02-02 18:31 78 查看

对象导论

1、面向对象程序设计方式:

万物皆为对象;
程序是对象的集合,它们通过发送消息来告知彼此所要做的;
每个对象都有自己的由其他对象所构成的存储;
每个对象都拥有其类型;
某一特定类型的所有对象都可以接受同样的消息。

2、对象:对象具有状态、行为和标识。每个对象都可以拥有内部数据(给出了该对象的状态)和方法(它们产生行为),并且每个对象都可以唯一的与其他对象区分开来,具体说来,就是每个对象在内存中都有一个唯一的地址。

3、在Java中,动态绑定是默认行为,不需要添加额外的关键字来实现多态。

4、Java的垃圾回收器可以自动发现对象何时不再被使用,并继而销毁它。和所有对象都是继承自单根基类Object以及只能以一种方式创建对象(在堆上创建)这两个特性有关。

一切都是对象

1、尽管一切都看作对象,但操纵的标识符实际上是对象的一个“引用”,且不一定需要有一个对象与它关联。
2、存储数据区域:

寄存器:最快,但在处理器内部,寄存器数量极其有限。
堆栈:在通用RAM中,堆栈指针若向下移动,则分配新的内存;若向上移动,则释放那些内存。Java的对象引用存储与堆栈中。
堆:一种通用的内存池(也在RAM区),用于存放所有的Java对象。堆中存储分配和清理可能比堆栈进行存储分配需要更多时间。
常量存储:常量值通常直接存放在程序代码内部,其永远不会被改变。
非RAM存储
3、对于基本类型,Java不用new来创建类型,而是创建一个“自动”变量,直接存储“值”,并置于堆栈中。Java确定每种基本类型所占存储空间的大小,不会随机器硬件架构的变化而变化。

基本类型大小包装器类型
boolean Boolean
char16 bitsCharacter
byte 8 bitsByte
short16 bitsShort
int32 bitsInteger
long64 bitsLong
float32 bitsFloat
double64 bitsDouble
void Void
所有数值类型都有正负号,所有不要寻找无符号的数值类型。boolean类型所占存储空间的大小没有明确指定,仅能取字面值true或false。
4、高精度数字:Java提供了两个用于高精度计算的类BigInteger和BigDecimal。
5、创建一个数组对象时,实际上就是创建一个引用数组,并且每个引用都会自动被初始化为null。一旦Java看到null,就知道这个引用还没有指向某个对象,在运行时将会报错。当创建用来存放基本数据类型的数组,编译器也能确保这种数组的初始化,将数组所占内存全部置零。
6、若类的某个成员是基本数据类型,即使没有进行初始化,Java也会确保它获得一个默认值。仅适用于作为类的成员时,当用于“局部”变量时则可能是任意值。
7、static关键字:当声明一个事物是static时,意味这个域或方法不会与包含它的那个类的任何对象实例关联在一起。即使从未创建某个类的任何对象,也可以调用其static方法或访问static域。

操作符

1、赋值:对于基本数据类型,直接将一个地方的内容复制到另一个地方;但对于对象“赋值”,真正操作的是对对象的引用。意味着指向了同一个对象,改变一个另一个也会改变,因为它们指向相同的对象。
2、生成随机数:通过Random类的对象,可生成不同类型的随机数字。调用nextInt(),nextFloat(),nextLong()和nextDouble()。
3、两个对象内容相同但是使用==返回结果是false,因为对象的引用是不同的,即==和!=比较的是对象的引用;比较两个对象的实际内容是否相同,使用方法equals()。但是不适用与基本类型,基本类型使用==和!=即可;
4、移位操作:>>为“有符号”右移位操作符,>>>为“无符号”右移操作符。
5、foreach可以用于任何Iterable对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: