自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

脚踏实地,仰望星空

吾尝终日而思矣,不如须臾之所学也

  • 博客(384)
  • 资源 (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 1072 1

原创 Java内存模型之重排序

1.什么是重排序 2.重排序的好处 3.重排序的三种情况 4.用volatile修正重排序问题

2024-01-14 10:45:05 822

原创 Java内存模型之可见性

1.什么是可见性问题 2.为什么会有可见性问题 3.JMM的抽象:主内存和本地内存 4.Happens-Before原则 5.volatile关键字 6.能保证可见性的措施 7.升华:对synchronized可见性的正确理解

2024-01-13 21:26:01 947

原创 单例模式的八种写法、单例和并发的关系

1.单例模式的作用 2.单例模式的适用场景 3.饿汉式 静态常量(可用) 静态代码块(可用) 4.懒汉式 线程不安全(不可用) 同步方法(线程安全,但不推荐用) 同步代码块(线程不安全,不可用) 双重检查 + volatile(推荐用) 静态内部类(推荐用) 枚举(推荐用)

2024-01-13 19:41:14 661

原创 Java内存模型之原子性

1.什么是原子性 2.Java中的原子操作有哪些 3.long和double的原子性 4.原子操作 + 原子操作 != 原子操作

2024-01-12 23:09:13 531

原创 基于 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 1456

原创 抽象工厂模式(Abstract Factory)

定义与类型 适用场景 优点 缺点 产品等级结构与产品族 抽象工厂代码示例

2024-01-04 17:30:53 1058

原创 工厂方法模式(Factory Method)

定义与类型 适用场景 优点 缺点 工厂方法代码示例

2024-01-02 15:52:47 553

原创 简单工厂模式(Simple Factory)

定义与类型 适用场景 优点 缺点 简单工厂代码示例 使用反射演进简单工厂

2023-12-25 19:30:52 651 1

原创 一文讲清楚检索增强生成(RAG)

检索增强生成(Retrieval Augmented Generation, RAG)

2023-10-19 14:37:20 3241

原创 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 2223 1

原创 腾讯2020校园招聘-后台:逆序对

2023-04-01 21:08:12 514

原创 实现基于 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 486

原创 网络地址的初始化与分配

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 592 1

原创 网络字节序与地址变换

1.主机字节序与网络字节序 2.字节序转换(Endian Conversions)

2023-03-13 20:22:26 271

原创 地址信息的表示

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 163

原创 分配给套接字的IP地址与端口号

1.网络地址(Internet Address) 2.网络地址分类与主机地址边界 3.用于区分套接字的端口号

2023-03-13 20:02:05 292

原创 套接字协议及其数据传输特性

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 423

原创 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 782

原创 配置文件的读取

配置文件的读取

2023-03-08 20:36:24 84

原创 信号的进一步认识

信号的进一步认识

2023-03-08 20:17:14 76

原创 信号、signal 函数、sigaction 函数

1.信号的基本概念 2.利用 kill 命令发送信号 3.信号处理的相关动作 4.信号与 signal 函数 4.1 signal 函数示例一 4.2 signal 函数示例二 5.利用 sigaction 函数进行信号处理 6.利用信号处理技术消灭僵尸进程

2023-03-08 15:57:18 1883

原创 僵尸进程(Zombie)

1.僵尸进程 2.产生僵尸进程的原因 3.利用 wait 函数销毁僵尸进程 4.使用 waitpid 函数销毁僵尸进程

2023-03-07 23:54:30 2572

原创 理解进程、通过调用 fork 函数创建进程

1.理解进程 1.1 CPU核的个数与进程数 1.2 进程 ID 2.通过调用 fork 函数创建进程

2023-03-07 21:19:22 551 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 291

原创 LeetCode 225. 用队列实现栈

请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。

2023-02-08 23:12:43 126 1

原创 Ubuntu 配置 C/C++ 开发环境

0.更新和升级系统软件 1.安装 build-essential 软件包 2.安装 gdb 3.安装 cmake

2023-01-20 14:32:23 4525 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 2323

原创 基于 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 7630

原创 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 2338

原创 在 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 3629 1

原创 Windows 配置 C/C++ 开发环境

1.安装 MinGW-w64 2.安装 CMake 3.编译运行一个小项目 4.卸载 MinGW-w64 5.卸载 CMake

2023-01-17 21:13:22 3412 2

原创 LeetCode 459. 重复的子字符串

给定一个非空的字符串 s,检查是否可以通过由它的一个子串重复多次构成。

2023-01-01 23:10:55 113

原创 LeetCode 28. 找出字符串中第一个匹配项的下标

给你两个字符串haystack 和 needle,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果needle 不是 haystack 的一部分,则返回 -1。

2023-01-01 23:08:44 275

原创 剑指 Offer 58 - II. 左旋转字符串

字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。

2023-01-01 23:05:00 171 1

原创 LeetCode 454. 四数相加 II

给你四个整数数组 nums1、nums2、nums3 和 nums4,数组长度都是 n,请你计算有多少个元组 (i, j, k, l) 能满足 0

2022-12-30 15:16:32 144

原创 LeetCode 18. 四数之和

给你一个由 n 个整数组成的数组nums 和一个目标值 target。请你找出并返回满足下述全部条件且不重复的四元组[nums[a], nums[b], nums[c], nums[d]](若两个四元组元素一一对应,则认为两个四元组重复)

2022-12-30 14:43:38 98

原创 LeetCode 1. 两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。

2022-12-27 20:42:47 365

原创 LeetCode 49. 字母异位词分组

给你一个字符串数组,请你将字母异位词组合在一起。可以按任意顺序返回结果列表。字母异位词是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。

2022-12-24 22:09:21 97

原创 LeetCode 1047. 删除字符串中的所有相邻重复项

给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。

2022-12-21 22:52:35 149

模拟操作系统页面置换过程,Java图形化界面,实现了OPT、LRU、FIFO、CLOCK

模拟了操作系统页面置换的过程,使用Java语言实现了四种经典算法,即OPT算法、LRU算法、FIFO算法、CLOCK算法,并且利用Java图形库制作了一个粗糙的图形化界面。整个页面置换过程完全使用数组实现,并未定义复杂的数据结构。

2020-10-14

OS页面置换算法,Java图形化界面,实现了OPT、LRU、FIFO、CLOCK

模拟操作系统页面置换的过程,具体实现了四种经典算法,即OPT、LRU、FIFO、CLOCK,并且利用Java中的图形库制作了一个好看的图形化界面

2020-10-14

Sublime Text Build 3176 x64 Setup.txt

1、学习HTML基础所用的软件:Sublime Text Build 3176 x64 Setup 2、安装简单,永久有效

2019-06-22

算法笔记_胡凡_详细书签.rar

1、《算法笔记》可作为计算机专业研究生入学考试复试上机、各类算法等级考试(如PAT、CSP等)的辅导书,也可作为“数据结构”科目的考研教材及辅导书内容的补充。《算法笔记》还是学习C语言、数据结构与算法的入门辅导书,非常适合零基础的学习者对经典算法进行学习。 2、附带完整书签

2019-05-16

挑战程序设计竞赛2 算法与数据结构_高清完整书签.rar

1、《挑战程序设计竞赛2 算法与数据结构》这好像是第一版吧,本书适合程序设计人员、程序设计竞赛爱好者以及高校计算机专业师生阅读。 2、附带完整书签

2019-05-16

挑战程序设计竞赛 第2版_高清_完整书签.rar

1、《挑战程序设计竞赛(第2版)》是人民邮电出版社出版发行的图书,作者是秋叶拓哉 ,岩田阳一,北川宜稔。本书对程序设计竞赛中的基础算法和经典问题进行了汇总,分为准备篇、初级篇、中级篇与高级篇4章。 2、附带完整书签

2019-05-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除