JavaGuide icon indicating copy to clipboard operation
JavaGuide copied to clipboard

「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide!

Results 145 JavaGuide issues
Sort by recently updated
recently updated
newest added

HTTP3.0不再使用TCP协议,改用基于UDP的QUIC

![1675862233(1)](https://user-images.githubusercontent.com/52376684/217540816-575bdeab-2260-4adb-9065-6625c5b2d517.png) HTTP是基于TCP还是UDP的? HTTP3.0之前是基于TCP协议的,而HTTP3.0将弃用TCP,改用基于UDP的QUIC协议。 来源:https://zh.wikipedia.org/zh-tw/HTTP/3 https://datatracker.ietf.org/doc/rfc9114/

enhancement

1. 《计算机网络常见面试题总结》Telent 协议 -> Telnet协议 2. 《OSI 和 TCP/IP 网络分层模型详解(基础)》 复杂的网络间题 -> 复杂的网络问题 3. 《HTTP vs HTTPS(应用层)》通常把 HTTPS 中的核心加密协议混成为 SSL/TLS -> 混称为 (不确定我理解的是否正确) 4. 《TCP 三次握手和四次挥手(传输层)》三次握手:客户端发送带有带有ACK(ACK=y+1) 标志的数据包 -> 带有重复 5....

稳定快速的科学上网教程:[科学上网](https://github.com/ClashPac/FreePAC) 快速注册登录ChatGPT的完整教程 :[注册ChatGPT教程](https://github.com/ClashPac/FreePAC/wiki/ChatGPT-%E5%BF%AB%E9%80%9F%E6%B3%A8%E5%86%8C%E5%AE%8C%E6%95%B4%E6%8C%87%E5%8D%97%E6%95%99%E7%A8%8B)

### 讨论点: ![image](https://user-images.githubusercontent.com/65707480/221410598-ec00cc64-fa36-497a-ac07-2d6dd752e135.png) ### 我的看法: 其实Spring WebFlux底层实现的IO模型并不是真正意义上的异步IO模型,还是属于同步IO模型中的同步非阻塞模型。我们看起来的异步只是“编程模型”上的异步,最后数据从内核空间拷贝到用户空间的过程还是会阻塞,并不是真正意义上的异步IO。 不知道我的看法是否合理或者正常,欢迎讨论和指点。

#### 问题截图: ![image](https://user-images.githubusercontent.com/35131874/119233517-278efe00-bb5c-11eb-9e53-31d4afe8dd56.png) #### 关于元空间: 使用Java 8以后,关于元空间的JVM参数有两个:`-XX:MetaspaceSize=N`和 `-XX:MaxMetaspaceSize=N`,对于64位JVM来说,元空间的默认初始大小是20.75MB,默认的元空间的最大值是无限。MaxMetaspaceSize用于设置metaspace区域的最大值,这个值可以通过mxbean中的MemoryPoolBean获取到,如果这个参数没有设置,那么就是通过mxbean拿到的最大值是-1,表示无穷大。 由于调整元空间的大小需要Full GC,这是非常昂贵的操作,如果应用在启动的时候发生大量Full GC,通常都是由于永久代或元空间发生了大小调整,基于这种情况,一般建议在JVM参数中将MetaspaceSize和MaxMetaspaceSize设置成一样的值,并设置得比初始值要大。 #### 源码分析 MetaspaceSize表示metaspace首次使用不够而触发Full GC的阈值,只对触发起作用,原因是:垃圾搜集器内部是根据变量 `_capacity_until_GC`来判断metaspace区域是否达到阈值的,初始化代码如下所示: ```javascript void MetaspaceGC::initialize() { // Set the high-water mark to MaxMetapaceSize during VM initializaton...

JVM 参数章节 [jvm-parameters-intro.md: L98](https://github.com/Snailclimb/JavaGuide/blob/main/docs/java/jvm/jvm-parameters-intro.md?plain=1#L98) 中提到: ```bash -XX:MetaspaceSize=N #设置 Metaspace 的初始(和最小大小) ``` 此处解释错误,即 Metaspace 的初始大小非由 `-XX:MetaspaceSize` 设置。 --- 参见 Oracle 官方文档 [Other Considerations](https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/considerations.html) 中提到: > When the space committed for class...

bug

修改了一处拼写错误, 将 'fals' 改正为 'false'.