1.容器:
① 不同的容器提供不同类型的接口和外部行为。
②不同的容器对于某些操作具有不同的效率。
例如:ArrayList和LinkedList。这两个具有相同的接口和外部行为,但是在某些操作上花费的代价却是天壤地别。
1.ArrayList,随机访问元素是一个花固定时间的操作。而LinkedList,随机选取的元素需要在列表中移动,这种代价就会非常昂贵。
2.另一方面,如果再序列中间插入一个元素,LinkedList花费的却比ArrayList时间少。
2.存储
在程序运行时,有5中不同的地方可以储蓄数据。
①寄存器
这是最快的存储器区,它存在于处理器内部。但是寄存器数量有限,所以需要根据需求分配。
②堆栈
位于通用的RAM(随机访问存储器)中,这是一种快速有效的分配存储方法,仅次于存储器。一般对象的引用存储在堆栈中,而java对象不存储在这之中。
③堆
一种通用的内存池(也位于RAM)中,用于存放所有的java对象。
④常量存储
常量值通常直接存放在程序代码内部,这是安全的。但有时,在嵌入式系统中,常量本身会和其他部分分隔离开,而在这种情况下,可以选择将其存放在ROM(只读存储器)中。
⑤非RAM存储
3.高精度数字
java提供了两个用于高精度计算的类:BIgInteger 和 BigDecimal,前者支持任意精度的整数,后者支持任何精度的定点度。