MySQL笔记之性能优化 MySQL笔记 本文主要探讨MySQL的性能优化, 性能优化的基础是理解MySQL的索引结构和索引的实现原理. 在理解这些内容之后, 很多MySQL索引的特性都是显然的, 而相应的优化措施也就是直观而符合逻辑的. B+树与索引总所周知, 数据库中一般采取B+树的结构来存储数据. 一颗B+树一般具有如下的结构:...
MySQL笔记之基本配置 MySQL笔记 最近打算给服务器端的MySQL配置一个只读远程的远程账号, 找了一圈居然没有一篇博客能完整解决这个问题, 所以这篇博客会记录MySQL的一些常见需求的操作方法. 创建账号创建账号的语句非常简单, 执行如下的SQL语句, 即可创建名为lizec的用户. 1CREATE USER lizec; ...
深入理解JVM之类加载机制 深入理解JVM 类加载过程 一个类从加载到卸载的生命周期如上图所示. 其中验证, 准备, 解析三个阶段也统称为链接阶段. 加载在加载阶段, Java虚拟机需要完成三件事情 根据类的全限定名获取其二进制流 将二进制流转化为方法区的运行时数据结构 在内存中生成一个代表这个类的class对象, 作为方法区这个类各...
深入理解JVM之字节码 深入理解JVM 本文主要介绍Java虚拟机的字节码相关的内容. 由于Java字节码的独特设计, 使得大部分指令仅需要一个字节即可表示, 这也是其被称为字节码的原因. 由于Java字节码严格区分数据类型, 因此很多指令都会针对不同的数据类型单独设计一条指令. 例如load指令根据数据类型的不同, 就存在ilo...
数据结构知识库 栈的性质栈满的时候要考虑上溢的情况, 栈空的时候要考虑下溢的情况. 队列的性质设队尾指针是rear, 队头是front, 循环队列的最大长度为QueueSize, 循环队列的相关条件和公式为: 条件 代码 条件 代码 队空条件 rear==front 队满条件...
VIM笔记 由于最近经常需要在服务器端简单修改一些配置文件, 因此有必要了解一下VIM的基本操作. 此外, 目前的主流IDE基本都提供了VIM的键位映射, 虽然这些键位映射的模式并不能等同于VIM, 但大部分基本操作都是支持的. 因此掌握了VIM的基本操作还是能够在其他IDE上提高代码的编辑速度. 目前的...
深入理解JVM之内存与线程 深入理解JVM Java内存模型由于不同的物理硬件和操作系统使用了不同的内存模型, 因此Java虚拟机需要提供一套内存的标准, 使得Java在不同平台下有同样的内存模型. Java内存模型主要目标是定义程序中各个变量的访问规则. Java内存模型规定所有的变量都存储在主内存中, 同时每个线程还有自己的工作内存...
Wireshark数据分析笔记 路由器抓包如果路由器是OpenWrt系统, 那么可以使用管道的方式将数据传输给WireShark进行分析. 首先在OpenWrt路由器上安装工具 12opkg updateopkg install tcpdump 然后执行下面的指令将网络数据通过管道传递给Wireshark执行 1ssh ...
深入理解JVM之内存与垃圾回收 深入理解JVM 运行时数据区 程序计数区这一部分和计算机结构中的程序计数器原理相同, 用于指示当前程序执行的指令位置. 程序计数器是线程私有的, 每个线程都具有一个独立的程序计数区. 虚拟机栈与本地方法栈与C语言一样, Java内存也可以大致分为栈和堆, 但Java的内存划分实际上更为细致. 对于栈空间, 除...
CSAPP笔记之汇编语言 汇编格式差异 指令后缀 寄存器结构 操作数指示符 数据传送指令 栈操作 算数指令 条件码 过程 对抗缓冲区溢出攻击 浮点体系结构 扩展:为什么浮点运算寄存器数量更多 扩展:为什么SSE/AVX向量指令可以加速数据复制 浮点数操作 汇编格式差异对于GCC编译器, 其汇编代码默认AT...
Java开发手册笔记 本文是对阿里巴巴的Java开发手册的笔记, 对其中的一些平时没有注意的细节进行记录, 并对一些内容补充细节和自己的理解. 命名风格【强制】 类名使用UpperCamelCase风格, 但以下情形例外:DO / BO / DTO / VO / AO ...
MySQL笔记之存储结构 MySQL笔记 MySQL架构MySQL可以分为三层结构, 最外层是网络层, 负责处理客户端连接, 授权认证等操作. 中间层是核心服务, 包括解析器, 优化器, 查询缓存和内置函数. 最底层是存储引擎, 负责数据的存储和提取. MySQL提供了不同的存储引擎, 并且通过中间层屏蔽了底层的差异. MySQL在...
机器学习之强化学习 机器学习 强化学习(Reinforcement Learning, RL), 也叫增强学习, 是指一类从(与环境)交互中不断学习的问题以及解决这类问题的方法. 强化学习的关键是贡献度分配问题, 每一个动作不能直接得到监督信息, 需要通过最终结果获得监督信息, 并且存在延时. 基础概念强化学习涉及如下的一...
Docker笔记之基础使用 Docker笔记 Docker可以视为一种轻量级的虚拟机, 可以将应用程序和其依赖环境进行打包, 从而在新平台上直接部署. 由于Docker将程序的依赖全部打包到一起, 因此极大的简化了部署操作, 提高了软件部署的效率. 此外, 由于Docker本身具有的隔离性, 将其作为开发环境使用也非常方便, 可以随意尝试...
数学工具之LINGO使用笔记 基本模型如果需要求解的问题比较简单, 可以直接使用数学表示, 例如 12345min=2*x1+3*x2;x1+x2>=350;x1>=100;2*x1+x2<=600; 注意: 第一行是目标函数, 其余为约束条件 约束条件默认取等号 变量默认大于零 程序结构小型模型一...
PyTorch笔记之TorchText PyTorch笔记 本文介绍PyTorch的文本处理库TorchText. 在自然语言相关的任务中, 训练模型的第一步就是对文本数据进行预处理. 通常文本数据的预处理包括: (1) 从磁盘加载文本数据并分词; (2) 将单词映射为数字, 将句子映射成数字的列表; (3) 将数据转化为分批次的数据. 本文的主要内容...
Python笔记之数据转换 Python笔记 本文介绍Python数据转换相关的库, 主要包括如何使用Python读写Excel文件(使用openpyxl库)和数据库. 写入Excel文件的好处是便于后续的处理和传播, 同时相较于操作CSV文件, 直接操作Excel文件可以避免特殊字符产生的问题. 读取文件123456789101112f...
PyTorch笔记之基础知识 PyTorch笔记 TensorTensor与Numpy的数组类似, 但Tensor可以在GPU上运算. 有两种方式构造Tensor, 第一种方式是直接构造Tensor, 第二种方式将一个Python的数组转化为Tensor. 两种方式的代码如下所示 123x = torch.ones([2, 2, 2]) ...
深度自然语言处理笔记 本文是斯坦福大学的深度自然语言处理课程的笔记, 可以在B站查看此课程的全部视频. 这里先随便写一点自己的理解. word2vec核心思想: “A word’s meaning is given by the words that frequently appear close-by.” 即对于...
机器学习之配置运行环境 机器学习 Conda基本使用安装Conda无论是Linux环境还是Window环境, 都推荐使用Conda搭建机器学习的运行环境, 可以减少很多处理依赖问题的时间. 推荐从清华大学镜像站下载Anaconda或者Miniconda(推荐). 如果之前已经安装了Miniconda, 则需要先卸载就版本....