Skip to content

Commit 917229e

Browse files
committed
Update Java Notes
1 parent 087443d commit 917229e

File tree

4 files changed

+17
-18
lines changed

4 files changed

+17
-18
lines changed

DB.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4887,7 +4887,7 @@ Redis (REmote DIctionary Server) :用 C 语言开发的一个开源的高性
48874887

48884888
2. 创建配置文件副本放入 conf 目录
48894889

4890-
Ubuntu系统配置文件 redis.conf 在目录 /etc/redis 中
4890+
Ubuntu系统配置文件 redis.conf 在目录 `/etc/redis`
48914891

48924892
```sh
48934893
cat redis.conf | grep -v "#" | grep -v "^$" -> /conf/redis-6379.conf

Java.md

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5778,13 +5778,14 @@ class LRUCache<K, V> extends LinkedHashMap<K, V> {
57785778

57795779
#### TreeMap
57805780

5781-
TreeMap集合按照键是可排序不重复的键值对集合。(默认升序)
5781+
TreeMap集合按照键是可排序不重复的键值对集合默认升序
57825782
TreeMap集合和TreeSet集合都是排序不重复集合
57835783
TreeSet集合的底层是基于TreeMap,只是键没有附属值而已
57845784

57855785
TreeMap集合指定大小规则有2种方式:
5786-
a.直接为对象的类实现比较器规则接口Comparable,重写比较方法(拓展方式)
5787-
b.直接为集合设置比较器Comparator对象,重写比较方法
5786+
5787+
* 直接为对象的类实现比较器规则接口Comparable,重写比较方法(拓展方式)
5788+
* 直接为集合设置比较器Comparator对象,重写比较方法
57885789

57895790

57905791

@@ -12177,7 +12178,7 @@ JVM是通过栈帧中的对象引用访问到其内部的对象实例:(内
1217712178

1217812179
* **长期存活的对象进入老年代**:为对象定义年龄计数器,对象在 Eden 出生并经过 Minor GC 依然存活,将移动到 Survivor 中,年龄就增加 1 岁,增加到一定年龄则移动到老年代中
1217912180
* -XX:MaxTenuringThreshold:用来定义年龄的阈值,在JVM中用4个bit存储(放在对象头中),所以其最大值是15,默认也是15
12180-
* **大对象直接进入老年代**:需要连续内存空间的对象,最典型的大对象是那种很长的字符串以及数组;避免在 Eden 和 Survivor 之间的大量内存复制;经常出现大对象会提前触发垃圾收集以获取足够的连续空间分配给大对象,`-XX:PretenureSizeThreshold`,大于此值的对象直接在老年代分配
12181+
* **大对象直接进入老年代**:需要连续内存空间的对象,最典型的大对象是很长的字符串以及数组;避免在 Eden 和 Survivor 之间的大量复制;经常出现大对象会提前触发GC以获取足够的连续空间分配给大对象,`-XX:PretenureSizeThreshold`,大于此值的对象直接在老年代分配
1218112182
* **动态对象年龄判定**:如果在Survivor区中相同年龄的对象的所有大小之和超过Survivor空间的一半,年龄大于或等于该年龄的对象就可以直接进入老年代
1218212183

1218312184
空间分配担保:
@@ -12302,11 +12303,11 @@ JVM是将TLAB作为内存分配的首选,但不是所有的对象实例都能
1230212303

1230312304
### 回收策略
1230412305

12305-
对于 Minor GC,其触发条件非常简单,当 Eden 空间满时,就将触发一次 Minor GC
12306+
内存垃圾回收机制主要集中的区域就是线程共享区域:**堆和方法区**
1230612307

12307-
Full GC 则相对复杂,**FullGC同时回收新生代和老年代,当前只会存在一个FullGC的线程进行执行,其他的线程全部会被挂起**
12308+
对于 Minor GC,其触发条件非常简单,当 Eden 空间满时,就将触发一次 Minor GC
1230812309

12309-
有以下**触发条件**:
12310+
Full GC 则相对复杂,**FullGC同时回收新生代和老年代,当前只会存在一个FullGC的线程进行执行,其他的线程全部会被挂起**,有以下**触发条件**:
1231012311

1231112312
* 调用 System.gc():
1231212313

@@ -12509,7 +12510,7 @@ Java语言提供了对象终止(finalization)机制来允许开发人员提
1250912510

1251012511
#### 无用类
1251112512

12512-
方法区主要回收的是无用的类
12513+
方法区主要回收的是无用的类
1251312514

1251412515
判定一个类是否是无用的类,需要同时满足下面 3 个条件 :
1251512516

@@ -14607,11 +14608,9 @@ init指的是实例构造器,主要作用是在类实例化过程中执行,
1460714608

1460814609
##### 卸载
1460914610

14610-
执行了System.exit()方法,程序正常执行结束,程序在执行过程中遇到了异常或错误而异常终止,由于操作系统出现错误而导致Java虚拟机进程终止
14611-
14612-
卸载类即该类的Class对象被GC
14611+
时机:执行了System.exit()方法,程序正常执行结束,程序在执行过程中遇到了异常或错误而异常终止,由于操作系统出现错误而导致Java虚拟机进程终止
1461314612

14614-
卸载类需要满足3个要求:
14613+
卸载类即该类的**Class对象被GC**,卸载类需要满足3个要求:
1461514614

1461614615
1. 该类的所有的实例对象都已被GC,也就是说堆不存在该类的实例对象
1461714616
2. 该类没有在其他任何地方被引用

SSM.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11039,7 +11039,7 @@ public class ProjectExceptionAdivce {
1103911039
1104011040
## 基本概述
1104111041
11042-
pringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率
11042+
SpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率
1104311043
1104411044
SpringBoot功能:
1104511045

Tool.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,8 @@ git tag:列出所有tag
337337

338338
git show tag-name:查看tag详细信息
339339

340+
标签作用:在开发的一些关键时期,使用标签来记录这些关键时刻,保存快照,例如发布版本、有重大修改、升级的时候、会使用标签记录这些时刻,来永久标记项目中的关键历史时刻
341+
340342

341343

342344
### 新建标签
@@ -383,7 +385,7 @@ File→Settings打开设置窗口,找到Version Control下的git选项
383385

384386
### 创建本地仓库
385387

386-
1、VCS->Import into Version Control->Create Git Repository
388+
1、VCS -> Import into Version Control -> Create Git Repository
387389

388390
2、选择工程所在的目录,这样就创建好本地仓库了
389391

@@ -395,9 +397,7 @@ File→Settings打开设置窗口,找到Version Control下的git选项
395397

396398
### 文件操作
397399

398-
右键项目名打开菜单Git->Add
399-
400-
commit
400+
右键项目名打开菜单Git -> Add -> commit
401401

402402

403403

0 commit comments

Comments
 (0)