From 648e85f4a3ea503b275c9aac0e73db306b607245 Mon Sep 17 00:00:00 2001 From: itwanger Date: Wed, 16 Aug 2023 09:58:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=BB=BA=E8=AE=AE=EF=BC=8Cfr?= =?UTF-8?q?om=20=E9=99=88=E7=9A=AE=E8=AF=9D=E6=A2=85=E7=B3=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/basic-grammar/type-cast.md | 6 +++--- docs/nice-article/itmind/shangwang.md | 19 +++++-------------- docs/thread/condition.md | 6 ++++-- 3 files changed, 12 insertions(+), 19 deletions(-) diff --git a/docs/basic-grammar/type-cast.md b/docs/basic-grammar/type-cast.md index 54dce7241..3283bffb2 100644 --- a/docs/basic-grammar/type-cast.md +++ b/docs/basic-grammar/type-cast.md @@ -24,9 +24,9 @@ head: 自动类型转换(自动类型提升)是 Java 编译器在不需要显式转换的情况下,将一种基本数据类型自动转换为另一种基本数据类型的过程。这种转换通常发生在表达式求值期间,当不同类型的数据需要相互兼容时。自动类型转换遵循以下规则: -- 如果任何操作数是 double 类型,其他操作数将被转换为 double 类型。 -- 否则,如果任何操作数是 float 类型,其他操作数将被转换为 float 类型。 -- 否则,如果任何操作数是 long 类型,其他操作数将被转换为 long 类型。 +- 如果任一操作数是 double 类型,其他操作数将被转换为 double 类型。 +- 否则,如果任一操作数是 float 类型,其他操作数将被转换为 float 类型。 +- 否则,如果任一操作数是 long 类型,其他操作数将被转换为 long 类型。 - 否则,所有操作数将被转换为 int 类型。 需要注意的是,自动类型转换只发生在兼容类型之间。例如,从较小的数据类型(如 int)到较大的数据类型(如 long 或 double)的转换是安全的,因为较大的数据类型可以容纳较小数据类型的所有可能值。 diff --git a/docs/nice-article/itmind/shangwang.md b/docs/nice-article/itmind/shangwang.md index 2d7248664..02d2d8da6 100644 --- a/docs/nice-article/itmind/shangwang.md +++ b/docs/nice-article/itmind/shangwang.md @@ -20,7 +20,7 @@ Google>Bing>微信搜索>百度搜索 我个人一般是这样的一个排序规则,没有歧视啊(注意,真的没有「认真脸」)。 -那要想使用 Google,就必须得学会咳血上网。有些互联网公司的 VPN 会自带咳血上网的功能,有些大学也会,如果公司/大学没有提供 VPN,可以参照这篇。 +那要想使用 Google,就必须得学会内网穿透。有些互联网公司的 VPN 会自带咳血上网的功能,有些大学也会,如果公司/大学没有提供 VPN,可以参照这篇。 ## 下载安装 Clash @@ -39,17 +39,13 @@ macOS 直接双击打开 dmg 文件进行安装。 ## 购买服务 -我选用的都是付费版本,这样觉得踏实稳定一些。 +我选用的都是付费版本,这样觉得踏实稳定一些,另外下面这些地址仅供学习使用,请勿传播,也不保证长期有效,地址也会不定期变更(你懂的) ->PS:地址会不定期变更(你懂的) +### 服务 1:wgetcloud -### 服务 1:饿饭 cc 云服务 - -你可以通过以下地址购买饿饭 cc 云服务: - -[https://api.efanapi.com/aff.php?aff=2849](https://api.efanapi.com/aff.php?aff=2849) +有个读者推荐我用这个,说比较稳定,GPT 不会封号,最近用了俩月,就是有点贵,一个月五六十,没有前面几个便宜,但好像确实是稳定一些。 -我采购的是 B 计划 20G流量 每月,三年价格 330RMB。 +[https://invite.wgetcloud.ltd/auth/register?code=c3Y0](https://invite.wgetcloud.ltd/auth/register?code=c3Y0) ### 服务 2:树洞 @@ -69,11 +65,6 @@ macOS 直接双击打开 dmg 文件进行安装。 自己按需购买即可。 -### 服务 4:wgetcloud - -有个读者推荐我用这个,说比较稳定,GPT 不会封号,最近用了俩月,就是有点贵,一个月五六十,没有前面几个便宜,但好像确实是稳定一些。 - -[https://invite.wgetcloud.ltd/auth/register?code=c3Y0](https://invite.wgetcloud.ltd/auth/register?code=c3Y0) ## 配置服务 diff --git a/docs/thread/condition.md b/docs/thread/condition.md index 342ad900a..c54857704 100644 --- a/docs/thread/condition.md +++ b/docs/thread/condition.md @@ -68,7 +68,9 @@ public class ReentrantLock implements Lock, java.io.Serializable { } ``` -在锁机制的实现上,AQS 内部维护了一个同步队列,如果是独占式锁的话,所有获取锁失败的线程的尾插入到**同步队列**,同样的,condition 内部也是使用同样的方式,内部维护了一个 **等待队列**,所有调用 condition.await 方法的线程会加入到等待队列中,并且线程状态转换为等待状态。另外注意到 ConditionObject 中有两个成员变量: +AQS 内部维护了一个同步队列,如果是独占式锁的话,所有获取锁失败的线程会尾插入到**同步队列**,同样的,Condition 内部也使用了同样的方式,内部维护了一个 **等待队列**,所有调用 await 方法的线程会加入到等待队列中,并且线程状态转换为等待状态。 + +注意,ConditionObject 中有两个成员变量: ```java /** First node of condition queue. */ @@ -77,7 +79,7 @@ private transient Node firstWaiter; private transient Node lastWaiter; ``` -这样我们就可以看出来 ConditionObject 通过持有等待队列的头尾指针来管理等待队列。Node 类有这样一个属性: +可以看的出来,ConditionObject 是通过持有等待队列的头尾指针来管理等待队列的。Node 类中有这样一个属性: ```java //后继节点 -- GitLab