getcolor

weakSet垃圾回收机制

我的未来我决定 提交于 2020-04-06 09:27:27
WeakSet对象 差异性 : WeakSet 与 Set 类似,都是去重有序聚合数据。但有两点不同: WeakSet 成员只能是对象,不能是其它类型的数据。 WeakSet 成员对象都是弱引用,即垃圾回收机制不会考虑 WeakSet 对象对该对象的引用。 如果其它对象没有引用该对象,垃圾回收机制会自动回收该对象所占的内存,不会考虑该对象是否还在 WeakSet 对象中。 正是由于以上特性, WeakSet 中的成员对象会随时消失(垃圾回收机制运行前后可能会不同) 语法: new WeakSet([iterable]) iterable 数组,类数组(或者实现了迭代器接口的数据) WeakSet 实例方法简表: 方法|说明 :-:|--- add() | 为 WeakSet 添加一个成员 delete() | 从 WeakSet 中删除一个成员 has() | 判断 WeakSet 中是否存在某个成员 b 注:正是由于 WeakSet 的弱引用特征,我们可以用它来存储 DOM ,这样就不用担心 DOM 被页面中删除不会泄露在内存中的问题了。 创建weakset //创建weakSet let ws = new WeakSet([["1","2",3]]) let arr = [1,3,4] // null也是不合法的 let ws2 = new WeakSet([[1,2],

Java读取word文件,字体,颜色

与世无争的帅哥 提交于 2020-03-10 11:09:50
在Android读取Word文件时,在网上查看时可以用tm-extractors,但好像没有提到怎么读取Word文档中字体的颜色,字体,上下标等相关的属性。但由于需要,要把doc文档中的内容(字体,下划线,颜色等)读取应用到android中(不包括图片和图表)。 后面采用的是poi三方jar包(原包太大,可以从源代码里自己抽取有用的一些代码减少包的大小)。 我的想法是:把doc中的内容解析出来后,加上html对应的标签,在android中通过Html.fromHtml在TextView中进行显示,或者通过WebView.loadData进行加载显示 但测试后,发现如果加载太多内容的话,在Android中效率不行。 效果(该图的效果是在 TextView 中的效果,在 WebView 中效果会更好些): doc图: android图: 做法1:(解析为span样式的,这种做法只能用WebView方式加载,Html.fromHtml无效) Java代码 /**Span样式 * 通过字体的样式进行加载 * @param inputStream * @return */ public static String readDocToSpanByRun(InputStream inputStream) { HWPFDocument hwpfDocument = null; if

this指针

允我心安 提交于 2020-02-20 17:34:40
this指针 javascript中this指针是动态的,主要是根据当前函数执行上下文及函数调用方式决定的. 以函数方法调用时 this 指针全局或严格模式中为 undefined 以方法调用时 this 是指针当前对象实例的. 以构造函数方式时 this 指向当前创建的实现对象 apply 、 call 、 lambda表达式 可用于绑定this指针. 注意:别绕晕了 函数方式调用 // 以函数方式调用 var x = 2 function test() { console.log(this.x); // 输出 2 } test() // this 为全局对象 windown 以方法调用 // 以方法调用 var x = "x"; let o = { x: 2 }; console.log(o.x); // this指针o实例 构造函数方式 var x = 1; function Test() { this.x = "5x"; } let b = new Test(); console.log(b.x); // this指针b实例对象 apply与call绑定this apply与call接收的函数参数不同,使用方法都是一样的. // apply var b = "b" function test() { console.log(this.b) } let o = { b:22

javascript变量的作用域

孤者浪人 提交于 2020-02-09 02:10:33
一、基本类型和引用类型 基本类型值指的是简单的数据段,而引用类型值指的是那个可能多个值组成的对象。 将一个值给变量时,javascript解析器首先要确定是基本类型还是引用类型,基本数据类型可以直接操作保存在变量中的值,而引用数据类型的值是保存在内存中的对象,在操作对象时,实际上操作的是对象的引用而不是实际的对象。 二、变量的赋值 如果从一个变量上向另一个变量上复制 基本数据类型 的值,会在变量对象上创建一个新值,然后把该值复制到新变量的位置上, 如下代码: var num1 = 5; var num2 = num1; 引用类型, 其实同样会将原来变量上的值复制一份到新的变量当中,只不过,复制的其实是原来变量的一个指针,而这个指针指向存储在堆中的一个对象。复制完成后,两个变量都指向了堆中的同一个对象,所以改变其中一个的值,会对另外一个产生影响。如下代码: var obj1 = new Object(); var obj2 = obj1; obj1.name = "Nicholas"; alert(obj2.name); //"Nicholas"    三、传递参数 在javascript里面,参数的传递都是按照 值类型来传递 的,即使你传入的是一个引用类型 function setName(obj) { obj.name = "Nicholas"; } var person =

JavaScript对象中的构造方法

倖福魔咒の 提交于 2020-02-07 01:36:24
JavaScript 类/对象可以具有构造函数吗? 它们是如何创建的? #1楼 这是一个构造函数: function MyClass() {} 当你做 var myObj = new MyClass(); 执行 MyClass ,并返回该类的新对象。 #2楼 我想我会发布有关javascript闭包的信息,因为目前还没有人使用闭包。 var user = function(id) { // private properties & methods goes here. var someValue; function doSomething(data) { someValue = data; }; // constructor goes here. if (!id) return null; // public properties & methods goes here. return { id: id, method: function(params) { doSomething(params); } }; }; 欢迎对此解决方案提出意见和建议。 :) #3楼 这是我有时在JavaScript中用于 OOP 相似行为的模板。 如您所见,您可以使用闭包来模拟私有(静态和实例)成员。 new MyClass() 将返回的对象是仅具有分配给 this 对象的属性,并且位于“类”的

设计模式--享元模式

↘锁芯ラ 提交于 2020-01-27 07:55:19
享元模式使用共享技术(开辟一块静态的存储区域,将相似的对象放入该静态区域),实现相同或者相似对象大量细粒度的对象复用,达到共享类或者对象的目的。 减少了空间复杂度,加大了时间复杂度 系统使用少量的对象,而这些都比较相似,状态变化小,可以实现对象的多次复用。 享元模式中两个重要的概念 内部状态:在享元对象内部不随外界环境改变而改变的共享部分。 外部状态:随着环境的改变而改变,不能够共享的状态就是外部状态。 由于享元模式区分了内部状态和外部状态,所以可以通过设置不同的外部状态使得相同的对象具备不同的特性。内部状态存储于享元对象内部,外部状态则应该由客户端来考虑。 享元模式的UML图 Flyweight抽象享元类。ConcreteFlyweight具体享元类,指定内部状态,为内部状态增加存储空间。关心共享部分,代表了内部状态的共享值,共享值要结合FlyweightFactory来看。UnsharedConcreteFlyweight非共享具体享元类,支出那些不需要共享的Flyweight子类。FlyweightFactory享元工厂类,用来创建并管理Flyweight对象,确保合理的共享Flyweight。 享元模式的核心在于享元工厂类,享元工厂类的作用在于提供一个用于存储享元对象的享元池,用户需要对象时,首相从享元池中获取,如果享元池中不存在,则创建一个新的享元对象给用户

享元模式

时间秒杀一切 提交于 2019-12-06 13:49:03
享元模式 享元模式(Flyweight Pattern):也叫蝇量模式,运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。由于享元模式要求能够共享的对象必须是细粒度对象,因此它又称为轻量级模式,它是一种对象结构型模式 享元类的设计是享元模式的要点之一,在享元类中要将内部状态和外部状态分开处理,通常将内部状态作为享元类的成员变量,而外部状态通过注入的方式添加到享元类中 享元模式常用于系统底层开发,解决系统的性能问题。像数据库连接池,里面都是创建好的连接对象,在这些连接对象中有我们需要的则直接拿来用,避免重新创建,如果没有我们需要的,则创建一个 享元模式能够解决重复对象的内存浪费的问题,当系统中有大量相似对象,需要缓冲池时。不需总是创建新对象,可以从缓冲池里拿。这样可以降低系统内存,同时提高效率 享元模式经典的应用场景就是池技术了,String 常量池、数据库连接池、缓冲池等等都是享元模式的应用,享元模式是池技术的重要实现方式 Flyweight(抽象享元类):通常是一个接口或抽象类,在抽象享元类中声明了具体享元类公共的方法,这些方法可以向外界提供享元对象的内部数据(内部状态),同时也可以通过这些方法来设置外部数据(外部状态)。 ConcreteFlyweight(具体享元类):它实现了抽象享元类

react实战 : react 与 svg

怎甘沉沦 提交于 2019-12-05 16:37:24
有一个需求是这样的。 一个组件里若干个区块。区块数量不定。 区块里面是一个波浪效果组件,而这个一般用 SVG 做。 所以就变成了在 react 中使用 SVG 的问题。 首先是波浪效果需要的样式。 .p{ font-size: 12px; line-height: 2; text-align: center; margin:0; width: 52px; color: #fff; } .irrigate_svg { height: 52px; width: 52px; } .masked { -webkit-mask: url(#myMask); mask: url(#myMask); } .irrigate_wrap { transform: translateY(112px); } .irrigate_svg { overflow: hidden; } .irrigate_rate { animation-name:wavingleft, wavingUp; animation-duration:6s, 6s; animation-timing-function:linear, linear; animation-iteration-count:infinite, 1; } @keyframes wavingleft { 0% { transform: translateX(

Android studio Aapt.exe finished with non zero exit value 1

匿名 (未验证) 提交于 2019-12-03 01:42:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: In My app I am using google play services and some others and all are working fine as expected. but when I comes towards the design side , I was asked to used the segmented control as we have in IOS 7. so for this I tired using this library. But as i added this library and sync I got this error Error:Execution failed for task ':app:processDebugResources'. com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'E:\Stacy Data\AndroidStudio\SDK\build-tools\22.0.1\aapt.exe'' finished with non