一、所需储备的知识点 要理解宽放大模式,需要先储备两个知识点。 1、匿名函数和闭包 匿名函数就不说了,闭包我的理解是在内部作用域返回一个包含内部作用域引用的对象给外部作用域,这样的话,就能保证内部作用域中的引用不会被垃圾回收器回收的一种机制。 由此发展出来的一种类的构建方式如下 这样可以很好的保护私 ...
分类:
其他好文 时间:
2017-05-03 11:33:59
阅读次数:
253
闭包:有权访问其他函数内部变量的函数,在一个函数内部创建一个函数,就形成了闭包,闭包的参数和变量不会被垃圾回收机制回收。闭包可以避免全局变量的污染。 使用场景: 1.闭包的经典应用:绑定事件 假如页面上有5个div,我们通过for循环来给每个div绑定一个事件,每点击一次输出它的索引值。如果没有使用 ...
分类:
其他好文 时间:
2017-04-26 11:52:26
阅读次数:
235
内存泄漏简单介绍 java能够保证当没有引用指向对象的时候,对象会被垃圾回收器回收。与c语言自己申请的内存自己释放相比,java程序猿轻松了非常多。可是并不代表java程序猿不用操心内存泄漏。当java程序发生内存泄漏的时候往往具有隐蔽性。因此要借助一些专业的平台资源去保证安全性,比如能够通过加密实 ...
分类:
移动开发 时间:
2017-04-26 11:48:39
阅读次数:
290
一、Java中的强、软、弱、虚引用在JDK中我们能够看到有一个java.lang.ref的包。这个包中就是Java中实现强、软、弱、虚引用的包,例如以下:PhantomReference虚引用:假设一个对象持有虚引用,就和没有持有引用一样,在不论什么时候都可能被垃圾回收器回收。虚引用主要用来跟踪对象 ...
分类:
编程语言 时间:
2017-04-24 23:11:14
阅读次数:
293
Java垃圾收集(Garbage Collection,GC) 某一个时点,一个对象如果有一个以上的引用(Rreference)指向它,那么该对象就为活着的(Live), 否则死亡(Dead),视为垃圾,可被垃圾回收器回收再利用。 垃圾回收操作需要消耗CPU、线程、时间等资源,所以容易理解的是垃圾回 ...
分类:
编程语言 时间:
2017-04-23 19:32:59
阅读次数:
258
1.赋值 别名现象: 1)对象别名:对象a,b a = b; a的原引用丢失,被垃圾回收,a的新引用指向b的对象内容; 避免方式: a.name = b.name; 彼此对象独立; 2)方法别名: f(Letter y){y.c = '2';} class Letter{char c;} { Let ...
分类:
其他好文 时间:
2017-04-09 09:56:46
阅读次数:
161
本文与个人博客 zhiheng.me 同步发布,标题: Java中的不可变类。 Java中的不可变类 不可变类(Immutable Objects):当类的实例一经创建,其内容便不可改变,即无法修改其成员变量。 可变类(Mutable Objects):类的实例创建后,可以修改其内容。 Java 中 ...
分类:
编程语言 时间:
2017-04-01 01:33:21
阅读次数:
253
所谓内存泄露就是指一个不再被程序使用的对象或变量一直被占据在内存中。Java中有垃圾回收机制,它可以保证一对象不再被引用的时候,即对象编程了孤儿的时候,对象将自动被垃圾回收器从内存中清除掉。由于Java 使用有向图的方式进行垃圾回收管理,可以消除引用循环的问题,例如有两个对象,相互引用,只要它们和根 ...
分类:
编程语言 时间:
2017-03-29 23:03:43
阅读次数:
239
概念:函数嵌套函数,内部函数可以引用外部函数的参数和变量,变量和参数不会被垃圾回收机制所回收作用:◆ 1)希望一个变量长期驻扎在内存之中 2)避免全局变量的污染 3)私有成员的存在 ◆注意:可能会造成内存泄漏 用一些简单的小例子来解释下闭包: function fun1(){ var num=1; ...
分类:
其他好文 时间:
2017-03-25 15:15:53
阅读次数:
159
成员变量: A:在类方法外 B:在堆内存中 C:随着对象的创建而存在,随着对象的消失而销毁 D:有默认的初始化值 局部变量: A:在方法定义中 B:在占内存中 C:随着方法的调用而存在,随着方法的调用完毕而销毁 D:没有初始化的值,使用前必须定义和赋值 匿名调用的好处: 调用完毕后就是垃圾,可以被垃 ...
分类:
编程语言 时间:
2017-03-05 23:38:42
阅读次数:
180