From 04e29e95d6143cfd9f9ed1a7aa20b41952cadfaf Mon Sep 17 00:00:00 2001
From: CyC2018 <1029579233@qq.com>
Date: Fri, 27 Apr 2018 12:51:17 +0800
Subject: [PATCH] auto commit

---
 notes/Java 并发.md     | 14 +++++---------
 notes/Leetcode 题解.md |  2 +-
 2 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/notes/Java 并发.md b/notes/Java 并发.md
index 1282d380..29005b7b 100644
--- a/notes/Java 并发.md	
+++ b/notes/Java 并发.md	
@@ -43,6 +43,7 @@
     * [内存模型三大特性](#内存模型三大特性)
     * [先行发生原则](#先行发生原则)
 * [十一、线程安全](#十一线程安全)
+    * [线程安全定义](#线程安全定义)
     * [线程安全分类](#线程安全分类)
     * [线程安全的实现方法](#线程安全的实现方法)
 * [十二、锁优化](#十二锁优化)
@@ -86,7 +87,7 @@
 
 ## 限期等待(Timed Waiting)
 
-无需等待其它线程显示地唤醒,在一定时间之后会被系统自动唤醒。
+无需等待其它线程显式地唤醒,在一定时间之后会被系统自动唤醒。
 
 调用 Thread.sleep() 方法使线程进入限期等待状态时,常常用“使一个线程睡眠”进行描述。
 
@@ -1234,17 +1235,12 @@ join() 方法返回先行发生于 Thread 对象的结束。
 
 # 十一、线程安全
 
-##线程安全定义
+## 线程安全定义
+
 一个类在可以被多个线程安全调用时就是线程安全的。
-##考虑线程安全的情况:
-- 静态成员变量,静态成员变量位于方法区,所有对象共享一份内存,一旦修改静态成员变量被修改,所有对象均可见,所以是线程非安全。
-- 实例成员变量,实例变量为对象实例私有,在虚拟机的堆heap中分配,若在系统中只存在一个此对象的实例,在多线程环境下,“犹如”静态变量那样,
-被某个线程修改后,其他线程对修改均可见,故线程非安全(如,springmvc controller是单例的,非线程安全的);如果每个线程执行都是在不同的
-对象中,那对象与对象之间的实例变量的修改将互不影响,故线程安全(如,struts2 action默认是非单例的,每次请求在heap中new新的action实例,
-故struts2 action可以用实例成员变量)。
-- 局部变量,局部变量位于栈区,线程间不共享,方法结束就可能被回收,线程安全
 
 ## 线程安全分类
+
 线程安全不是一个非真即假的命题,可以将共享数据按照安全程度的强弱顺序分成以下五类:不可变、绝对线程安全、相对线程安全、线程兼容和线程对立。
 
 ### 1. 不可变
diff --git a/notes/Leetcode 题解.md b/notes/Leetcode 题解.md
index 299dd77e..d8f6885f 100644
--- a/notes/Leetcode 题解.md	
+++ b/notes/Leetcode 题解.md	
@@ -564,7 +564,7 @@ Input: numbers={2, 7, 11, 15}, target=9
 Output: index1=1, index2=2
 ```
 
-题目描述:在有序数组中找出两个数,使它们的和为 `target`。
+题目描述:在有序数组中找出两个数,使它们的和为 target。
 
 使用双指针,一个指针指向值较小的元素,一个指针指向值较大的元素。指向较小元素的指针从头向尾遍历,指向较大元素的指针从尾向头遍历。