File tree Expand file tree Collapse file tree 3 files changed +4
-4
lines changed Expand file tree Collapse file tree 3 files changed +4
-4
lines changed Original file line number Diff line number Diff line change @@ -759,7 +759,7 @@ System.out.println(set.size()); // 2
759
759
760
760
理想的哈希函数应当具有均匀性,即不相等的对象应当均匀分布到所有可能的哈希值上。这就要求了哈希函数要把所有域的值都考虑进来。可以将每个域都当成 R 进制的某一位,然后组成一个 R 进制的整数。
761
761
762
- R 一般取 31,因为它是一个奇素数,如果是偶数的话,当出现乘法溢出,信息就会丢失,因为与 2 相乘相当于向左移一位,最左边的位丢失。并且一个数与 31 相乘可以转换成移位和减法:` 31*x == (x\<\ <5)-x ` ,编译器会自动进行这个优化。
762
+ R 一般取 31,因为它是一个奇素数,如果是偶数的话,当出现乘法溢出,信息就会丢失,因为与 2 相乘相当于向左移一位,最左边的位丢失。并且一个数与 31 相乘可以转换成移位和减法:` 31*x == (x< <5)-x ` ,编译器会自动进行这个优化。
763
763
764
764
``` java
765
765
@Override
Original file line number Diff line number Diff line change @@ -132,7 +132,7 @@ private static final int DEFAULT_CAPACITY = 10;
132
132
133
133
#### 2. 扩容
134
134
135
- 添加元素时使用 ensureCapacityInternal() 方法来保证容量足够,如果不够时,需要使用 grow() 方法进行扩容,新容量的大小为 `oldCapacity + (oldCapacity >> 1)`,也就是旧容量的 1 .5 倍左右, (oldCapacity 为偶数就是 1.5 倍,oldCapacity为奇数就是 1.5 倍-0.5)。奇偶不同,比如 :8+8/2 = 12, 13+13/2=19,如果是奇数的话会丢掉小数。
135
+ 添加元素时使用 ensureCapacityInternal() 方法来保证容量足够,如果不够时,需要使用 grow() 方法进行扩容,新容量的大小为 `oldCapacity + (oldCapacity >> 1)`,即 oldCapacity+oldCapacity/2。其中 oldCapacity >> 1 需要取整,所以新容量大约是旧容量的 1 .5 倍左右。 (oldCapacity 为偶数就是 1.5 倍,为奇数就是 1.5 倍-0.5)
136
136
137
137
扩容操作需要调用 `Arrays .copyOf()` 把原数组整个复制到新数组中,这个操作代价很高,因此最好在创建 ArrayList 对象时就指定大概的容量大小,减少扩容操作的次数。
138
138
Original file line number Diff line number Diff line change 45
45
46
46
#### 2. 过滤特殊字符
47
47
48
- 例如将 ` \ <` 转义为 ` < ` ,将 ` \ >` 转义为 ` > ` ,从而避免 HTML 和 Jascript 代码的运行。
48
+ 例如将 ` < ` 转义为 ` < ` ,将 ` > ` 转义为 ` > ` ,从而避免 HTML 和 Jascript 代码的运行。
49
49
50
- 富文本编辑器允许用户输入 HTML 代码,就不能简单地将 ` \ <` 等字符进行过滤了,极大地提高了 XSS 攻击的可能性。
50
+ 富文本编辑器允许用户输入 HTML 代码,就不能简单地将 ` < ` 等字符进行过滤了,极大地提高了 XSS 攻击的可能性。
51
51
52
52
富文本编辑器通常采用 XSS filter 来防范 XSS 攻击,通过定义一些标签白名单或者黑名单,从而不允许有攻击性的 HTML 代码的输入。
53
53
You can’t perform that action at this time.
0 commit comments