知识点

网络代理

正向代理(Forward Proxy)

  • 代理对象:代表客户端向服务器发起请求
  • 隐藏身份:隐藏客户端的真实身份
  • 使用场景:客户端通过代理访问外部网络
  • 典型例子:翻墙工具、公司内网代理

反向代理(Reverse Proxy)

  • 代理对象:代表服务器响应客户端请求
  • 隐藏身份:隐藏服务器的真实身份和架构
  • 使用场景:服务器通过代理接收外部请求
  • 典型例子:Nginx、负载均衡器

单行注释和文档注释

单行注释:// 单行快捷键:ctrl + /
文档注释:/** */ 文档快捷键:/** + enter

单行注释是纯给人读的,编译时完全忽略
文档注释是可被工具提取,支持各种特殊标签,用来描述方法的功能、参数、返回值等等

markdown 语法

markdown 官方文档
围栏代码块后可以写 java、bash、json 等指定语言,就可以自动高亮

异或运算

异或分为两种:逻辑异或、位异或

  • 逻辑异或:相当于!=运算符,不相等返回 true,否则返回 false
  • 位异或:^运算符,将两个数转成二进制,逐位异或,不相等返回 1,相等返回 0,最后转回十进制

位异或的性质:

  • x ^ 0 = x x 为任意数
  • x ^ x = 0
  • 0 ^ 0 = 0
  • x ^ y = y ^ x 交换律
  • x ^ (y ^ z) = (x ^ y) ^ z 结合律

与运算

与运算:&,只有两个位数都为 1 才为 1,否则为 0
与运算相当于and,异或x运算类似or,但都是1异或为0

位运算

<<运算符用于左移,>>运算符用于右移

1
2
3
4
5
6
7
8
9
x << 3  // 等价于 x * 8
x >> 1 // 等价于 x / 2

int a = 5; // 二进制: 00000101
int b = a << 1; // 左移1位 → 00001010 = 10
int c = a << 2; // 左移2位 → 00010100 = 20

cout << b << endl; // 输出: 10
cout << c << endl; // 输出: 20

统计二进制里的1的个数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution:
def hammingWeight(self, n: int) -> int:
res = 0
# 如果当前为奇数就说明当前二进制末尾为1
while n:
if n & 1:
res += 1
n >>= 1

# 等价于这个
# if n % 2:
# res += 1
# n //= 2

return res

知识点
http://www.981928.xyz/2025/11/29/知识点/
作者
981928
发布于
2025年11月29日
许可协议