think in java

今天拿了本 think in java第四版 英文版 看了一下:顺便做了一下笔记! 

 

 

List 类是容器 用来存放序列 。 Maps 是容器,它是关联数组 。 Sets 类 也是容器,保存每种类型对象的一种 。
List的两种数组:
ArrayList :访问数组里阿妈的任何一个数组的时间都是一样的 。然而LinkedList:越深的所以访问所需的时间越长。
插入一个元素到数组里。使用ArrayList的时间较长,LinkedArray的时间较短 。
具体化的数组有利于回收: ArrayList<Shape> shapes = new ArrayList<Shape>();
相应的as里 var shapes :Vector.<Shape> =new Vector.<Shape>();
局部变量都是保存在stack里!
动态创建的对象都保存在堆里(heap也就是a pool of memory <记忆池>),动态对象一般都是运行时创建的
堆heap分配给动态变量所需的时间比在栈stack里分配内存要的时间长.堆heap内存分配依赖于它的存储机制。动态分配机制更复杂和多变化 。

Java只用动态(dynamic)分配存储 :即:我们创建新的对象(动态对象)需要new 构造器。他们都存储在堆heap里 。

在栈里创建的对象(局部变量),编译器能决定它存在多长的时间,然后自动的销毁它 。
然而堆里heap里的对象,编译器不知道它的生命周期(即不知道什么时候它该销毁),在C++里,我们要人为的编程去销毁它(堆heap里的对象)。在java里存在GC(垃圾回收器)能很好的防止内存泄露 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值