- 博客(369)
- 资源 (10)
- 收藏
- 关注
原创 JVM内存结构 vs. Java对象模型 vs. Java内存模型
0.三者的区别 1.JVM内存结构 2.Java对象模型 3.Java内存模型(JMM) 3.1 为什么需要JMM 3.2 JMM是规范 3.3 JMM是工具类和关键字的原理 3.4 最重要的三点内容
2024-01-14 11:02:27 1232 1
原创 Java内存模型之可见性
1.什么是可见性问题 2.为什么会有可见性问题 3.JMM的抽象:主内存和本地内存 4.Happens-Before原则 5.volatile关键字 6.能保证可见性的措施 7.升华:对synchronized可见性的正确理解
2024-01-13 21:26:01 1097
原创 单例模式的八种写法、单例和并发的关系
1.单例模式的作用 2.单例模式的适用场景 3.饿汉式 静态常量(可用) 静态代码块(可用) 4.懒汉式 线程不安全(不可用) 同步方法(线程安全,但不推荐用) 同步代码块(线程不安全,不可用) 双重检查 + volatile(推荐用) 静态内部类(推荐用) 枚举(推荐用)
2024-01-13 19:41:14 756
原创 Java内存模型之原子性
1.什么是原子性 2.Java中的原子操作有哪些 3.long和double的原子性 4.原子操作 + 原子操作 != 原子操作
2024-01-12 23:09:13 620
原创 基于 HTTPS 协议配置 Git 连接 GitHub
0.安装 Git 1.注册 GitHub 账号 2.配置 Git 的用户名和邮箱 3.远程连接 GitHub 有两种传输协议 4.基于 SSH 协议配置 Git 连接 GitHub 5.基于 HTTPS 协议配置 Git 连接 GitHub
2024-01-07 20:04:44 2147
原创 Windows 安装 Go1.20.3 顺便了解 go env 环境变量
1.下载2.安装3.GOROOT4.GOPATH5.GO111MODULE5.1 GOPATH 模式5.2 Go Modules 模式6.GOPROXY7.GOSUMDB8.GONOPROXY/GONOSUMDB/GOPRIVATE9.GOMODCACHE10.GOCACHE11.GOENV12.GOBIN13.参考资料
2023-04-11 23:44:10 3136 1
原创 实现基于 TCP 的服务器端/客户端
1.TCP服务器端的默认函数调用顺序 1.1 进入等待连接请求状态(listen 函数) 1.2 受理客户端连接请求(accept 函数) 1.3 回顾 HelloWorld 服务器端 2.TCP客户端的默认函数调用顺序 2.1 发起连接请求(connect 函数) 2.2 回顾 HelloWorld 客户端 3.基于TCP的服务器端和客户端函数调用关系
2023-03-13 21:45:35 665
原创 网络地址的初始化与分配
1.将字符串信息转换为网络字节序的整数型 1.1 inet_addr 函数 1.2 inet_aton 函数 1.3 inet_ntoa 函数 2.网络地址初始化 3.INADDR_ANY 4.向套接字分配网络地址(bind 函数)
2023-03-13 20:59:46 849 1
原创 地址信息的表示
1.表示 IPv4 地址的结构体 2.结构体 sockaddr_in 的成员分析 2.1 成员 sin_family 2.2 成员 sin_port 2.3 成员 sin_addr 2.4 成员 sin_zero 3.sockaddr_in 与 sockaddr 的区别
2023-03-13 20:10:19 273
原创 套接字协议及其数据传输特性
1.创建套接字(socket 函数) 2.协议(Protocol) 3.协议族(Protocol Family) 4.套接字类型(Type) 4.1 面向连接的套接字(SOCK_STREAM) 4.2 面向消息的套接字(SOCK_DGRAM) 5.协议的最终选择 5.1 创建 IPv4 协议族中面向连接的套接字 5.2 创建 IPv4 协议族中面向消息的套接字 6.验证TCP套接字传输的数据不存在数据边界 6.1 服务器端程序 6.2 客户端程序
2023-03-13 19:32:48 705
原创 HelloWorld 服务器端和客户端
1.网络编程和套接字概要 2.构建接电话套接字 2.1 第一步:调用 socket 函数创建套接字 2.2 第二步:调用 bind 函数分配IP地址和端口号 2.3 第三步:调用 listen 函数转为可接收请求状态 2.4 第四步:调用 accept 函数受理连接请求 2.5 编写 HelloWorld 服务器端程序 3.构建打电话套接字 3.1 调用 socket 函数创建套接字 3.2 调用 connect 函数向服务器端发送连接请求 3.3 编写 HelloWorld 客户端程序
2023-03-11 20:32:46 1192
原创 信号、signal 函数、sigaction 函数
1.信号的基本概念 2.利用 kill 命令发送信号 3.信号处理的相关动作 4.信号与 signal 函数 4.1 signal 函数示例一 4.2 signal 函数示例二 5.利用 sigaction 函数进行信号处理 6.利用信号处理技术消灭僵尸进程
2023-03-08 15:57:18 2261
原创 僵尸进程(Zombie)
1.僵尸进程 2.产生僵尸进程的原因 3.利用 wait 函数销毁僵尸进程 4.使用 waitpid 函数销毁僵尸进程
2023-03-07 23:54:30 4140
原创 理解进程、通过调用 fork 函数创建进程
1.理解进程 1.1 CPU核的个数与进程数 1.2 进程 ID 2.通过调用 fork 函数创建进程
2023-03-07 21:19:22 751 1
原创 实现迭代回声服务器端/客户端
1.迭代服务器端/客户端 2.迭代回声服务器端/客户端 2.1 echo_server.c 2.2 echo_client.c 3.回声客户端存在的问题 4.回声客户端问题解决方法 4.1 echo_client2.c
2023-03-06 23:06:12 407
原创 LeetCode 225. 用队列实现栈
请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。
2023-02-08 23:12:43 152 1
原创 Ubuntu 配置 C/C++ 开发环境
0.更新和升级系统软件 1.安装 build-essential 软件包 2.安装 gdb 3.安装 cmake
2023-01-20 14:32:23 5853 1
原创 Windows 下 VS Code 远程连接 Ubuntu 并配置免密登录
1.安装 Visual Studio Code 2.安装必要的插件 3.为本机生成 SSH 密钥对 4.将公钥拷贝到 Ubuntu 上 5.配置 Remote 插件 6.关闭远程连接 7.卸载 Visual Studio Code
2023-01-19 22:23:59 3098
原创 基于 SSH 协议配置 Git 连接 GitHub
0.安装 Git 1.注册 GitHub 账号 2.配置 Git 的用户名和邮箱 3.远程连接 GitHub 有两种传输协议 4.基于 SSH 协议配置 Git 连接 GitHub 5.基于 HTTPS 协议配置 Git 连接 GitHub
2023-01-19 17:25:27 10099
原创 The following packages have been kept back: python-apt-common python3-apt
The following packages have been kept back: python-apt-common python3-apt
2023-01-19 00:49:05 3052
原创 在 VMware Workstation 16 Pro 中安装 Ubuntu Server 22.04.1 并配置静态 IP 地址
1.下载 Ubuntu Server 22.04.1 2.新建虚拟机向导 3.编辑虚拟机设置 4.开启此虚拟机并配置Ubuntu系统 5.设置 root 用户的密码 6.允许远程连接 root 用户 7.配置静态 IP 地址 8.Xshell 远程连接 Ubuntu 9.更换镜像源 10.卸载 Ubuntu Server 22.04.1
2023-01-18 20:41:01 5102 1
原创 Windows 配置 C/C++ 开发环境
1.安装 MinGW-w64 2.安装 CMake 3.编译运行一个小项目 4.卸载 MinGW-w64 5.卸载 CMake
2023-01-17 21:13:22 5685 3
原创 LeetCode 28. 找出字符串中第一个匹配项的下标
给你两个字符串haystack 和 needle,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果needle 不是 haystack 的一部分,则返回 -1。
2023-01-01 23:08:44 364
原创 剑指 Offer 58 - II. 左旋转字符串
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。
2023-01-01 23:05:00 208 1
原创 LeetCode 454. 四数相加 II
给你四个整数数组 nums1、nums2、nums3 和 nums4,数组长度都是 n,请你计算有多少个元组 (i, j, k, l) 能满足 0
2022-12-30 15:16:32 230
原创 LeetCode 18. 四数之和
给你一个由 n 个整数组成的数组nums 和一个目标值 target。请你找出并返回满足下述全部条件且不重复的四元组[nums[a], nums[b], nums[c], nums[d]](若两个四元组元素一一对应,则认为两个四元组重复)
2022-12-30 14:43:38 185
原创 LeetCode 1047. 删除字符串中的所有相邻重复项
给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。
2022-12-21 22:52:35 197
原创 【深入理解C++】decltype的推导规则、主要用途
1.decltype的推导规则 2.decltype的主要用途 2.1 decltype的应用多出现在泛型编程中 2.2 通过变量表达式抽取变量类型 2.3 auto结合decltype构成返回类型后置语法 2.4 decltype(auto) 2.4.1 用于函数返回类型 2.4.2 用于变量声明中
2022-12-19 15:07:27 774 2
模拟操作系统页面置换过程,Java图形化界面,实现了OPT、LRU、FIFO、CLOCK
2020-10-14
OS页面置换算法,Java图形化界面,实现了OPT、LRU、FIFO、CLOCK
2020-10-14
Sublime Text Build 3176 x64 Setup.txt
2019-06-22
算法笔记_胡凡_详细书签.rar
2019-05-16
挑战程序设计竞赛2 算法与数据结构_高清完整书签.rar
2019-05-16
挑战程序设计竞赛 第2版_高清_完整书签.rar
2019-05-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人