wdlVNs-nVwO
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
Lr>6fePw4*x8#D(R
literal 0
HcmV?d00001
From 1213b464236fd39ecb08b1b237c543f1cf9fd22f Mon Sep 17 00:00:00 2001
From: CyC2018 <1029579233@qq.com>
Date: Mon, 2 Apr 2018 14:12:03 +0800
Subject: [PATCH 03/18] auto commit
---
notes/Redis.md | 4 ----
1 file changed, 4 deletions(-)
diff --git a/notes/Redis.md b/notes/Redis.md
index aad7ee74..08b1f54f 100644
--- a/notes/Redis.md
+++ b/notes/Redis.md
@@ -431,11 +431,7 @@ Redis 这种内存数据库能支持计数器频繁的读写操作。
如果使用 Redis 来缓存数据时,要保证所有数据都是热点数据,可以将内存最大使用量设置为热点数据占用的内存量,然后启用 allkeys-lru 淘汰策略,将最近最少使用的数据淘汰。
-<<<<<<< HEAD
作为内存数据库,出于对性能和内存消耗的考虑,Redis 的淘汰算法(LRU、TTL)实际实现上并非针对所有 key,而是抽样一小部分 key 从中选出被淘汰 key。抽样数量可通过 maxmemory-samples 配置。
-=======
-作为内存数据库,出于对性能和内存消耗的考虑,Redis的淘汰算法(LRU、TTL)实际实现上并非针对所有key,而是抽样一小部分key从中选出被淘汰key。抽样数量可通过`maxmemory-samples`配置。
->>>>>>> 1bd73190fcf78ffac14e1db41f9ec58eadf1bc0a
# 十四、一个简单的论坛系统分析
From e2400576716e1d6452e2fa563564e444b0880413 Mon Sep 17 00:00:00 2001
From: CyC2018 <1029579233@qq.com>
Date: Mon, 2 Apr 2018 14:46:27 +0800
Subject: [PATCH 04/18] auto commit
---
notes/Java 基础.md | 14 ++++----------
pics/PPjwP.png | Bin 0 -> 371712 bytes
2 files changed, 4 insertions(+), 10 deletions(-)
create mode 100644 pics/PPjwP.png
diff --git a/notes/Java 基础.md b/notes/Java 基础.md
index 6cc8a936..2a4e0221 100644
--- a/notes/Java 基础.md
+++ b/notes/Java 基础.md
@@ -203,8 +203,6 @@ java.lang.CloneNotSupportedException: CloneTest
**2. 深拷贝与浅拷贝**
-
-
- 浅拷贝:拷贝对象和原对象的引用类型引用同一个对象;
- 深拷贝:引用不同对象。
@@ -535,14 +533,12 @@ Reflection is powerful, but should not be used indiscriminately. If it is possib
# 八、异常
-Throwable 可以用来表示任何可以作为异常抛出的类,分为两种: **Error** 和 **Exception**,其中 Error 用来表示 JVM 无法处理的错误(比如 java.lang.OutOfMemoryError)。
-
-Exception 分为两种:
+Throwable 可以用来表示任何可以作为异常抛出的类,分为两种: **Error** 和 **Exception**。其中 Error 用来表示 JVM 无法处理的错误,Exception 分为两种:
1. **受检异常** :需要用 try...catch... 语句捕获并进行处理,并且可以从异常中恢复;
2. **非受检异常** :是程序运行时错误,例如除 0 会引发 Arithmetic Exception,此时程序奔溃并且无法恢复。
-
+
> - [Java 入门之异常处理](https://www.tianmaying.com/tutorial/Java-Exception)
> - [Java 异常的面试问题及答案 -Part 1](http://www.importnew.com/7383.html)
@@ -558,8 +554,7 @@ public class Box {
}
```
-> - [Java 泛型详解](https://www.ziwenxie.site/2017/03/01/java-generic/)
-> - [10 道 Java 泛型面试题](https://cloud.tencent.com/developer/article/1033693)
+> [Java 泛型详解](https://www.ziwenxie.site/2017/03/01/java-generic/)[10 道 Java 泛型面试题](https://cloud.tencent.com/developer/article/1033693)
# 十、注解
@@ -598,8 +593,7 @@ Java 注解是附加在代码中的一些元信息,用于一些工具在编译
7. Binary Literals, Underscore in literals
8. Diamond Syntax
-> - [Difference between Java 1.8 and Java 1.7?](http://www.selfgrowth.com/articles/difference-between-java-18-and-java-17)
-> - [Java 8 特性 ](http://www.importnew.com/19345.html)
+> [Difference between Java 1.8 and Java 1.7?](http://www.selfgrowth.com/articles/difference-between-java-18-and-java-17) [Java 8 特性 ](http://www.importnew.com/19345.html)
## Java 与 C++ 的区别
diff --git a/pics/PPjwP.png b/pics/PPjwP.png
new file mode 100644
index 0000000000000000000000000000000000000000..806315050969e9e5d4a52453f830ee306e974145
GIT binary patch
literal 371712
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