摘要:
3 GC概念Gc的职责:1) 分配内存2) 保证被引用的对象驻留内存3) 对象不可达后将其占用内存回收被引用对象被称为 “存活对象”。不再被引用的对象称为“垃圾对象”。找到垃圾对象并将其占用内存释放的过程被称为垃圾收集。垃圾收集耗费的时间取决于选择的垃圾收集器。大多数动态内存分配算法需要面临的问题是在搞笑分配和回收内存时如何避免碎片。期望的垃圾收集器特征垃圾收集器必须保证安全和全面。不能错误地将存活对象释放,垃圾对象也要保证在几个回收轮次内回收掉。垃圾回收要非常搞笑,不能停顿过长时间而导致应用无法运行。一般需要在时间、空间、频率几个方面做一个权衡。垃圾回收要限制碎片产生。通过压缩来消除碎片。可
阅读全文
posted @ 2014-02-23 13:36
pangdachong
阅读(366)
推荐(0)
摘要:
产生式为: CallExpression : MemberExpression Arguments,步骤:1、对MemberExpression求值得到引用ref2、调用GetValue(ref)得到引用的值func3、对Arguments求值得到argList4、func类型如果不是Object类型,抛异常5、如果IsCallable(func)为false,抛异常6、如果ref的类型为引用类型 a、如果IsPropertyReference(ref)为true thisValue = GetBase(ref) b、否则ref的Base是一个Environment Record 环境记录 t
阅读全文
posted @ 2013-03-16 07:28
pangdachong
阅读(184)
推荐(0)
摘要:
产生式: A,B 的求值步骤如下:1、对A求值获得引用lref2、调用GetValue(lref)3、对B操作数求值获得引用rref4、返回 GetValue(rref)注:GetValue()必须调用。=======逗号操作符会对每一个操作数都求值,但只返回最后一个表达式的 值
阅读全文
posted @ 2013-03-13 14:50
pangdachong
阅读(96)
推荐(0)
摘要:
赋值运算符包括:*= /= %= += -= <<= >>= >>>= &= ^= |=一、简单赋值(=)赋值表达式 A = B的求值步骤:对A求值得到引用lref对B求值得到引用rref调用GetValue(rref)得到右侧操作数引用值rval如果下面几个条件全部满足则抛出一个SyntaxError异常: 1)Type(lref)为引用类型 2)IsStrictReference(lref)为true 3)Type(GetBase(lref)) 是一个环境记录 4)GetReferencedName(lref)是‘eval’或'ar
阅读全文
posted @ 2013-03-13 14:45
pangdachong
阅读(138)
推荐(0)
摘要:
一、产生式 A && B的求值步骤对A求值得到 引用lref调用GetValue(lref)获取引用值lval调用内部函数ToBoolean(lval),如果结果为false,返回 lval对B求值得到 引用rref返回GetValue(rref)二、产生式A || B的求值步骤对A求值得到引用lref调用GetValue(lref)获得引用值lval调用ToBoolean(lval),如果结果为true,返回lval对B求值得到引用rref返回GetValue(rref)二元逻辑操作符表达式的值并不一定是个boolean值,它的返回值是两个操作数之一。
阅读全文
posted @ 2013-03-13 14:08
pangdachong
阅读(196)
推荐(0)