提交 648e85f4 编写于 作者: 沉默王二's avatar 沉默王二 💬

修正建议,from 陈皮话梅糖

上级 1ddea68d
...@@ -24,9 +24,9 @@ head: ...@@ -24,9 +24,9 @@ head:
自动类型转换(自动类型提升)是 Java 编译器在不需要显式转换的情况下,将一种基本数据类型自动转换为另一种基本数据类型的过程。这种转换通常发生在表达式求值期间,当不同类型的数据需要相互兼容时。自动类型转换遵循以下规则: 自动类型转换(自动类型提升)是 Java 编译器在不需要显式转换的情况下,将一种基本数据类型自动转换为另一种基本数据类型的过程。这种转换通常发生在表达式求值期间,当不同类型的数据需要相互兼容时。自动类型转换遵循以下规则:
- 如果任操作数是 double 类型,其他操作数将被转换为 double 类型。 - 如果任操作数是 double 类型,其他操作数将被转换为 double 类型。
- 否则,如果任操作数是 float 类型,其他操作数将被转换为 float 类型。 - 否则,如果任操作数是 float 类型,其他操作数将被转换为 float 类型。
- 否则,如果任操作数是 long 类型,其他操作数将被转换为 long 类型。 - 否则,如果任操作数是 long 类型,其他操作数将被转换为 long 类型。
- 否则,所有操作数将被转换为 int 类型。 - 否则,所有操作数将被转换为 int 类型。
需要注意的是,自动类型转换只发生在兼容类型之间。例如,从较小的数据类型(如 int)到较大的数据类型(如 long 或 double)的转换是安全的,因为较大的数据类型可以容纳较小数据类型的所有可能值。 需要注意的是,自动类型转换只发生在兼容类型之间。例如,从较小的数据类型(如 int)到较大的数据类型(如 long 或 double)的转换是安全的,因为较大的数据类型可以容纳较小数据类型的所有可能值。
......
...@@ -20,7 +20,7 @@ Google>Bing>微信搜索>百度搜索 ...@@ -20,7 +20,7 @@ Google>Bing>微信搜索>百度搜索
我个人一般是这样的一个排序规则,没有歧视啊(注意,真的没有「认真脸」)。 我个人一般是这样的一个排序规则,没有歧视啊(注意,真的没有「认真脸」)。
那要想使用 Google,就必须得学会咳血上网。有些互联网公司的 VPN 会自带咳血上网的功能,有些大学也会,如果公司/大学没有提供 VPN,可以参照这篇。 那要想使用 Google,就必须得学会内网穿透。有些互联网公司的 VPN 会自带咳血上网的功能,有些大学也会,如果公司/大学没有提供 VPN,可以参照这篇。
## 下载安装 Clash ## 下载安装 Clash
...@@ -39,17 +39,13 @@ macOS 直接双击打开 dmg 文件进行安装。 ...@@ -39,17 +39,13 @@ macOS 直接双击打开 dmg 文件进行安装。
## 购买服务 ## 购买服务
我选用的都是付费版本,这样觉得踏实稳定一些 我选用的都是付费版本,这样觉得踏实稳定一些,另外下面这些地址仅供学习使用,请勿传播,也不保证长期有效,地址也会不定期变更(你懂的)
>PS:地址会不定期变更(你懂的) ### 服务 1:wgetcloud
### 服务 1:饿饭 cc 云服务 有个读者推荐我用这个,说比较稳定,GPT 不会封号,最近用了俩月,就是有点贵,一个月五六十,没有前面几个便宜,但好像确实是稳定一些。
你可以通过以下地址购买饿饭 cc 云服务:
[https://api.efanapi.com/aff.php?aff=2849](https://api.efanapi.com/aff.php?aff=2849)
我采购的是 B 计划 20G流量 每月,三年价格 330RMB。 [https://invite.wgetcloud.ltd/auth/register?code=c3Y0](https://invite.wgetcloud.ltd/auth/register?code=c3Y0)
### 服务 2:树洞 ### 服务 2:树洞
...@@ -69,11 +65,6 @@ macOS 直接双击打开 dmg 文件进行安装。 ...@@ -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)
## 配置服务 ## 配置服务
......
...@@ -68,7 +68,9 @@ public class ReentrantLock implements Lock, java.io.Serializable { ...@@ -68,7 +68,9 @@ public class ReentrantLock implements Lock, java.io.Serializable {
} }
``` ```
在锁机制的实现上,AQS 内部维护了一个同步队列,如果是独占式锁的话,所有获取锁失败的线程的尾插入到**同步队列**,同样的,condition 内部也是使用同样的方式,内部维护了一个 **等待队列**,所有调用 condition.await 方法的线程会加入到等待队列中,并且线程状态转换为等待状态。另外注意到 ConditionObject 中有两个成员变量: AQS 内部维护了一个同步队列,如果是独占式锁的话,所有获取锁失败的线程会尾插入到**同步队列**,同样的,Condition 内部也使用了同样的方式,内部维护了一个 **等待队列**,所有调用 await 方法的线程会加入到等待队列中,并且线程状态转换为等待状态。
注意,ConditionObject 中有两个成员变量:
```java ```java
/** First node of condition queue. */ /** First node of condition queue. */
...@@ -77,7 +79,7 @@ private transient Node firstWaiter; ...@@ -77,7 +79,7 @@ private transient Node firstWaiter;
private transient Node lastWaiter; private transient Node lastWaiter;
``` ```
这样我们就可以看出来 ConditionObject 通过持有等待队列的头尾指针来管理等待队列。Node 类有这样一个属性: 可以看的出来,ConditionObject 是通过持有等待队列的头尾指针来管理等待队列的。Node 类中有这样一个属性:
```java ```java
//后继节点 //后继节点
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册