1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

[docs feat]升级同步vuepress-theme-hope主题2.0.0-beta.236版本

This commit is contained in:
Guide 2023-09-03 14:59:59 +08:00
parent 43e1fd4f52
commit 4f894993ea
9 changed files with 1522 additions and 1298 deletions

View File

@ -68,9 +68,15 @@ star: 2
![](https://oss.javaguide.cn/xingqiu/image-20230421154518800.png)
![](https://oss.javaguide.cn/xingqiu/Xnip2023-04-21_15-48-13.png)
并且,每个月都会整理出当月优质的主题,方便大家阅读学习,避免错过优质的内容。毫不夸张,单纯这些优质主题就足够门票价值了。
加入星球之后,记得抽时间把星球精华主题看看,相信你一定会有所收货!
![星球每月优质主题整理概览](https://oss.javaguide.cn/xingqiu/image-20230902091117181.png)
加入星球之后,一定要记得抽时间把星球精华主题看看,相信你一定会有所收货!
JavaGuide 知识星球优质主题汇总传送门:<https://www.yuque.com/snailclimb/rpkqw1/ncxpnfmlng08wlf1>(为了避免这里成为知识杂货铺,我会对严格筛选入选的优质主题)。
![星球优质主题汇总](https://oss.javaguide.cn/xingqiu/Xnip2023-04-21_15-48-13.png)
### 简历修改
@ -133,11 +139,7 @@ star: 2
## 如何加入?
三年前,星球的定价是 **50/年** (星球规定的最低定价),我还附送了 33 元优惠券。扣除了星球手续费,发了各种福利之后,就是纯粹在做公益。感兴趣的小伙伴可以看看我在 2020-01-03 发的头条:[做了一个很久没敢做的事情](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247486049&idx=1&sn=e0161b409e8f164251bdaa0c83a476bc&chksm=cea245aaf9d5ccbcafdb95a546d959508814085620aabdbb4385c4b8cea6e50bf157c3697041&token=1614894361&lang=zh_CN#rd),考古一下。
随着时间推移,星球沉淀的干货资源越来越多,我花在星球上的时间也越来越多。于是,我将星球的定价慢慢调整为了 **166/年**!后续会将星球的价格调整为 **196/年**,想要加入的小伙伴一定要尽早。
这里再送一个 **30** 元的星球专属优惠券吧,数量有限(价格即将上调。老用户续费半价 ,微信扫码即可续费)!
这里赠送一个 **30** 元的星球专属优惠券吧,数量有限(价格即将上调。老用户续费半价 ,微信扫码即可续费)!
![知识星球30元优惠卷](https://oss.javaguide.cn/xingqiu/xingqiuyouhuijuan-30.jpg)

View File

@ -232,6 +232,22 @@ URI 的作用像身份证号一样URL 的作用更像家庭住址一样。URL
准确点来说,这个问题属于认证授权的范畴,你可以在 [认证授权基础概念详解](../../system-design/security/basis-of-authority-certification.md) 这篇文章中找到详细的答案。
### GET 和 POST 的区别
这个问题在知乎上被讨论的挺火热的,地址:<https://www.zhihu.com/question/28586791>
![](https://static001.geekbang.org/infoq/04/0454a5fff1437c32754f1dfcc3881148.png)
GET 和 POST 是 HTTP 协议中两种常用的请求方法,它们在不同的场景和目的下有不同的特点和用法。一般来说,可以从以下几个方面来区分二者(重点搞清两者在语义上的区别即可):
- 语义主要区别GET 通常用于获取或查询资源,而 POST 通常用于创建或修改资源。
- 幂等GET 请求是幂等的,即多次重复执行不会改变资源的状态,而 POST 请求是不幂等的,即每次执行可能会产生不同的结果或影响资源的状态。
- 格式GET 请求的参数通常放在 URL 中形成查询字符串querystring而 POST 请求的参数通常放在请求体body可以有多种编码格式如 application/x-www-form-urlencoded、multipart/form-data、application/json 等。GET 请求的 URL 长度受到浏览器和服务器的限制,而 POST 请求的 body 大小则没有明确的限制。不过,实际上 GET 请求也可以用 body 传输数据,只是并不推荐这样做,因为这样可能会导致一些兼容性或者语义上的问题。
- 缓存:由于 GET 请求是幂等的,它可以被浏览器或其他中间节点(如代理、网关)缓存起来,以提高性能和效率。而 POST 请求则不适合被缓存,因为它可能有副作用,每次执行可能需要实时的响应。
- 安全性GET 请求和 POST 请求如果使用 HTTP 协议的话,那都不安全,因为 HTTP 协议本身是明文传输的,必须使用 HTTPS 协议来加密传输数据。另外GET 请求相比 POST 请求更容易泄露敏感数据,因为 GET 请求的参数通常放在 URL 中。
再次提示,重点搞清两者在语义上的区别即可,实际使用过程中,也是通过语义来区分使用 GET 还是 POST。不过也有一些项目所有的请求都用 POST这个并不是固定的项目组达成共识即可。
## PING
### PING 命令的作用是什么?

View File

@ -134,6 +134,14 @@ public class MultiThread {
- 线程安全指的是在多线程环境下,对于同一份数据,不管有多少个线程同时访问,都能保证这份数据的正确性和一致性。
- 线程不安全则表示在多线程环境下,对于同一份数据,多个线程同时访问时可能会导致数据混乱、错误或者丢失。
## 单核 CPU 上运行多个线程效率一定会高吗?
单核CPU同时运行多个线程的效率是否会高取决于线程的类型和任务的性质。一般来说有两种类型的线程CPU密集型和IO密集型。CPU密集型的线程主要进行计算和逻辑处理需要占用大量的CPU资源。IO密集型的线程主要进行输入输出操作如读写文件、网络通信等需要等待IO设备的响应而不占用太多的CPU资源。
在单核CPU上同一时刻只能有一个线程在运行其他线程需要等待CPU的时间片分配。如果线程是CPU密集型的那么多个线程同时运行会导致频繁的线程切换增加了系统的开销降低了效率。如果线程是IO密集型的那么多个线程同时运行可以利用CPU在等待IO时的空闲时间提高了效率。
因此对于单核CPU来说如果任务是CPU密集型的那么开很多线程会影响效率如果任务是IO密集型的那么开很多线程会提高效率。当然这里的“很多”也要适度不能超过系统能够承受的上限。
## 说说线程的生命周期和状态?
Java 线程在运行的生命周期中的指定时刻只可能处于下面 6 种不同状态的其中一个状态:

View File

@ -40,16 +40,20 @@ Servlet 接口定义了 5 个方法,其中**前三个方法与 Servlet 生命
参考《javaweb 整合开发王者归来》P81
## get 和 post 请求的区别
## GET 和 POST 的区别
get 和 post 请求实际上是没有区别,大家可以自行查询相关文章(参考文章:[https://www.cnblogs.com/logsharing/p/8448446.html](https://www.cnblogs.com/logsharing/p/8448446.html),知乎对应的问题链接:[get 和 post 区别?](https://www.zhihu.com/question/28586791)
这个问题在知乎上被讨论的挺火热的,地址:<https://www.zhihu.com/question/28586791>
可以把 get 和 post 当作两个不同的行为,两者并没有什么本质区别,底层都是 TCP 连接。 get 请求用来从服务器上获得资源,而 post 是用来向服务器提交数据。比如你要获取人员列表可以用 get 请求,你需要创建一个人员可以用 post 。这也是 Restful API 最基本的一个要求。
![](https://static001.geekbang.org/infoq/04/0454a5fff1437c32754f1dfcc3881148.png)
推荐阅读
GET 和 POST 是 HTTP 协议中两种常用的请求方法,它们在不同的场景和目的下有不同的特点和用法。一般来说,可以从以下几个方面来区分它们
- <https://www.zhihu.com/question/28586791>
- <https://mp.weixin.qq.com/s?__biz=MzI3NzIzMzg3Mw==&mid=100000054&idx=1&sn=71f6c214f3833d9ca20b9f7dcd9d33e4#rd>
- 语义上的区别GET 通常用于获取或查询资源,而 POST 通常用于创建或修改资源。GET 请求应该是幂等的,即多次重复执行不会改变资源的状态,而 POST 请求则可能有副作用,即每次执行可能会产生不同的结果或影响资源的状态。
- 格式上的区别GET 请求的参数通常放在 URL 中形成查询字符串querystring而 POST 请求的参数通常放在请求体body可以有多种编码格式如 application/x-www-form-urlencoded、multipart/form-data、application/json 等。GET 请求的 URL 长度受到浏览器和服务器的限制,而 POST 请求的 body 大小则没有明确的限制。
- 缓存上的区别:由于 GET 请求是幂等的,它可以被浏览器或其他中间节点(如代理、网关)缓存起来,以提高性能和效率。而 POST 请求则不适合被缓存,因为它可能有副作用,每次执行可能需要实时的响应。
- 安全性上的区别GET 请求和 POST 请求都不是绝对安全的,因为 HTTP 协议本身是明文传输的,无论是 URL、header 还是 body 都可能被窃取或篡改。为了保证安全性,必须使用 HTTPS 协议来加密传输数据。不过在一些场景下GET 请求相比 POST 请求更容易泄露敏感数据,因为 GET 请求的参数会出现在 URL 中,而 URL 可能会被记录在浏览器历史、服务器日志、代理日志等地方。因此,一般情况下,私密数据传输应该使用 POST + body。
重点搞清了,两者在语义上的区别即可。不过,也有一些项目所有的请求都用 POST这个并不是固定的项目组达成共识即可。
## 什么情况下调用 doGet()和 doPost()

View File

@ -1,10 +1,12 @@
---
title: 数据脱敏
title: 数据脱敏方案总结
category: 系统设计
tag:
- 安全
---
<!-- @include: @article-header.snippet.md -->
> 本文转载完善自[Hutool一行代码搞定数据脱敏 - 京东云开发者](https://mp.weixin.qq.com/s/1qFWczesU50ndPPLtABHFg)。
## 什么是数据脱敏

View File

@ -12,6 +12,8 @@ head:
content: 基于角色的访问控制Role-Based Access Control简称 RBAC指的是通过用户的角色Role授权其相关权限实现了灵活的访问控制相比直接授予用户权限要更加简单、高效、可扩展。
---
<!-- @include: @article-header.snippet.md -->
> 作者:转转技术团队
>
> 原文https://mp.weixin.qq.com/s/ONMuELjdHYa0yQceTj01Iw

View File

@ -5,6 +5,8 @@ tag:
- 安全
---
<!-- @include: @article-header.snippet.md -->
## 什么是 JWT?
JWT JSON Web Token 是目前最流行的跨域认证解决方案,是一种基于 Token 的认证授权机制。 从 JWT 的全称可以看出JWT 本身也是 Token一种规范化之后的 JSON 结构的 Token。

View File

@ -21,16 +21,16 @@
},
"packageManager": "pnpm@8.6.0",
"dependencies": {
"@vuepress/client": "2.0.0-beta.62",
"@vuepress/utils": "2.0.0-beta.62",
"@vuepress/client": "2.0.0-beta.67",
"@vuepress/utils": "2.0.0-beta.67",
"husky": "8.0.3",
"markdownlint-cli": "0.34.0",
"nano-staged": "0.8.0",
"nodejs-jieba": "0.0.2",
"prettier": "2.8.8",
"vue": "3.3.4",
"vuepress": "2.0.0-beta.62",
"@vuepress/plugin-search": "2.0.0-beta.62",
"vuepress-theme-hope": "2.0.0-beta.221"
"vuepress": "2.0.0-beta.67",
"@vuepress/plugin-search": "2.0.0-beta.67",
"vuepress-theme-hope": "2.0.0-beta.236"
}
}

2746
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff