自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

970655147的专栏

欢迎......

  • 博客(658)
  • 资源 (37)
  • 收藏
  • 关注

原创 01 使用 海康SDK 对车辆监控设备进行布防

最近朋友的需求, 是需要使用 海康sdk 连接海康设备, 进行数据的获取, 比如 进出车辆, 进出人员这一部分是 对接海康车辆设备 获取相关布防事件, 并进行入库 的相关处理。

2025-01-24 15:03:16 104

原创 75 mysql 两张忽略大小写同名的表改一张表名之后丢失了一张表, 改回表名丢失的表又回来了

然后 open_table_def 这边的处理是查找的 dxx_table.frm 文件, 但是 因为我们 dxx_table 已经修改为了 dxx_table_bak, 所以 数据库的数据文件中已经没有了 dxx_table.frm, dxx_table.ibd 文件, 所以这里 打开 dxx_table.frm 报错, 进而就是 得到下游的 NO_SUCH_TABLE 的错误, 相应给 fill_schema_table_by_open 的流程。

2025-01-17 16:52:09 725

原创 74 mysql having 的实现

然后接着 会向该临时文件添加 (2, 1), (3, 1) , (4, 1) , (5, 1) , (6, 1) , (7, 1) , (8, 1) , (9, 1) , (10, 1)然后最后一条记录, field2 为 1 的记录已经存在, 为 (1, 1), 这里会进行 merge, 将新的 (1, 2) 替换掉原来的 (1, 1)临时表 “/tmp/#sql16fb4_1” 传输到 临时表tmp 的过程, 可以看到源表为 临时表 “/tmp/#sql16fb4_1”

2025-01-10 19:08:35 751

原创 73 mysql replication 集群的交互

slave 这边的 relay_log 的 apply 的处理如下, 相当于拿到对应的 binlog 之后, 处理相关的业务处理, 对于我们这里的 WRITE_ROWS_EVENT 就是根据目标语句, 或者Write_rows 新增业务记录。然后 slave 这边会收到相关的几个 event, Anonymous_Gtid, Query, Table_map, Write_rows, Xid 这里我们主要关心 WRITE_ROWS_EVENT。这里会为 root 账户创建一个随机的密码, 用于后面的登录。

2025-01-04 17:48:20 937

原创 72 mysql 的客户端和服务器交互 returnGeneratedKeys

这里主要是针对如下 情况的讨论比如我们 tz_zone 表有一个自增长的主键 id, 然后 客户端这边可以通过 PreparedStatement 相关的 api 来获取 服务端这边生成的自增长的 id我们这里 来看一下 这个流程, 整体的 客户端 和 服务器的交互上面来看问题来自于。

2024-12-27 17:37:25 345

原创 71 mysql 中 insert into ... on duplicate key update ... 的实现

这里相当于执行的是 是一个 “update tz_test_02 set field2 = '22' where field1 = 'field11';然后在插入索引记录的时候, 由于 索引的唯一约束, 插入失败, 这里响应 DB_DUPLICATE_KEY 的错误。当插入数据存在 唯一索引 或者 主键索引 相关约束的时候, 如果存在 约束冲突, 则更新目标记录。当然 相对比较简单, 大体的流程 和上面 一样, 我们会忽略 大部分的细节。这里会先进行数据插入, 如果插入失败 走相关的补偿处理。

2024-12-20 18:33:37 429

原创 70 mysql 中事务的隔离级别

然后 只要有 写事务tx2 提交了, 然后 tx1 这边下一次查询的时候创建最新的 ReadView, 获取到的就是 m_low_limit_no, m_low_limit_id, m_up_limit_id 为 trx_sys->max_trx_id, 然后 m_ids 列表为空。执行序列如下, 我们这里更加关心的是 id=5 的记录的更新, 更关注的是 第六七八条sql的执行, 按照常理来推断 tx1 会比 tx2 的事务号 小1, 在 INNODB_TRX 数据表中可以看到各个事务的详细信息。

2024-12-15 10:01:29 694

原创 69 mysql 中 is null 的实现

扫描之后, 这里的 “where field2 = null” 的处理为 Agg_comparator 这边的处理, 比较的两个操作数, 一个是 field2 字段, 另外一个是 Item_null。” 来进行 field1 字段为 null 的行的查询。然后这里 扫描的是索引记录 (null, 5), 然后比较的另一个操作数也是 null, 这里比较 返回 0, 可以响应数据。然后这里 扫描的是索引记录 (null, 5), 然后比较的另一个操作数也是 null, 这里比较 返回 0, 可以响应数据。

2024-12-07 14:47:48 854

原创 68 mysql 的 临键锁

第二条 sql 会扫描 field1='field1', field1='field5', field1='field9' 三条记录, 都加上临键锁, 锁定的区间是 (负无穷, (field9,9)], 并会在 id=1, id=5 的数据记录上面增加 行排他锁。和 第四条的差异在于, 数据库中 索引记录的排序是 (field1, id), 我们锁定的记录是 (field9, 10), 第三条 sql 插入的记录是 (field9, 8) 是排在锁定记录之前的, 还在锁定的逻辑区间, 因此算冲突。

2024-11-29 15:18:41 731 1

原创 67 mysql 的 间隙锁

从逻辑上来说 间隙锁 锁定的是一个区间, 按照我们常规的理解 他应该会保存 区间的起始地址, 但是 从实际的实现层面 mysql 这边的实现相当巧妙, 它是挂在比目标值大的下一条记录上面的, 比如主键有 1, 5, 10, 我们这里执行查询 “select * from tz_test_04 where id = 7 for update;在 search_mvcc 中上下文如下, 是在 cmp_dtuple_is_prefix_of_rec 的判断内部, 条件匹配不上的时候, 会添加这个间隙锁。

2024-11-27 08:31:28 896

原创 66 mysql 的 表自增长锁

差异在于 LOCK_AUTO_INC 和其他锁的兼容性, 在之前 表共享锁, 表排他锁 的场景下面, 为了简化问题, 我们是跳过了 LOCK_AUTO_INC, 这里我们来讲 LOCK_AUTO_INC 代入进来看看。模式为 1 的场景下, 对于 INSERT, REPLACE 命令主要是 基于乐观锁, 每一个表映射一个 mutex, 来尝试乐观获取锁, 其他的场景基于 表自增长锁。如果是 事务1 获取的是 表共享锁, 表排他锁, 那么是会阻塞 事务2 获取 表自增长锁 的。

2024-11-22 20:09:57 891 1

原创 65 mysql 的 表元数据锁

获取表元数据锁 和 释放表元数据锁 是分开的, 这两个搭配在一起造成 获取元数据锁 阻塞的概率是最大的。表元数据锁 的释放主要是在执行业务查询之后, 本次命令执行完毕之前。“unlock table” 这边主要是涉及到 表元数据锁 的释放。“lock table” 这边主要是涉及到 表的元数据锁 的获取。然后在 语句执行完成的时候 释放 表元数据锁。然后在 语句执行完成的时候 释放 表元数据锁。然后在 语句执行完成的时候 释放 表元数据锁。表元数据锁 的获取主要是在执行查询业务之前。

2024-11-15 14:18:15 445

原创 64 mysql 的 表锁

对于我们这里 获取表共享锁的场景下面, 只有无锁状态, 其他事务获取了表意向共享锁 或者 表共享锁 的情况下面, 我们可以获取锁成功, 但凡有其他事务持有 表意向排他锁, 表排他锁, 当前事务的获取 表共享锁 都会失败。对于获取 表共享锁 的场景下面, 只有无锁状态, 其他事务获取了表意向共享锁 或者 表共享锁 的情况下面, 我们可以获取锁成功, 但凡有其他事务持有 表意向排他锁, 表排他锁, 当前事务的获取 表共享锁 都会失败。比如 “lock tables t_user_02 read/write;

2024-11-08 21:18:22 1109

原创 63 mysql 的 行锁

if(lock == null)” 这里是目标页还没有任何锁的情况, 直接创建锁, 获取锁, 这里可以直接响应 LOCK_REC_SUCCESS_CREATED, 是因为外层 lock_clust_rec_read_check_and_lock 有一个 lock_mutex_enter 有一个全局的同步。我们这里调试 sql 如下 这里会先获取 t_user_02 的表意向排他锁, 然后再读取的时候在获取 id 为 2 的记录的行排他锁, 我们这里先看 表意向排他锁, 再看行排他锁。

2024-11-01 10:13:02 990

原创 62 mysql 中 存储引擎MyISAM 中索引的使用

固定数据表mysql. tables_priv 的表结构创建如下这里 是按照 B+ 树来存储的索引然后我们这里 来看一下 一个具体的索引的使用方式假设执行 sql 如下 “select * from `tables_priv` where Host = '%';如下图, 在 sub_select 中的处理是在 qep_tab->read_first_record 的处理, 就是根据查询条件 “Host = '%';” 的条件的定位。

2024-10-30 09:31:29 786

原创 61 mysql 存储引擎之动态格式 MyISAM

我们这里来看一下 MyISAM 存储引擎, 我们常见的那些 user, db, table_priv, proc 等等是基于 MyISAM这是我们经常会提及的 两种持久化的存储引擎之一, 一是 MyISAM存储引擎, 另外一个是 InnoDB存储引擎我们这里来看一下 MyISAM 中动态长度的数据表的相关处理mysql.user 的表结构创建如下执行 sql 如下 “select * from user;” 我们着重关注 User 为 “tz_test” 的这条用户记录。

2024-10-21 09:10:12 716

原创 60 mysql 存储引擎之静态格式 MyISAM

我们这里来看一下 MyISAM 存储引擎, 我们常见的那些 user, db, table_priv, proc 等等是基于 MyISAM这是我们经常会提及的 两种持久化的存储引擎之一, 一是 MyISAM存储引擎, 另外一个是 InnoDB存储引擎我们这里来看一下 MyISAM 中固定长度的数据表的相关处理mysql. tables_priv 的表结构创建如下执行 “select * from tables_priv where Table_name = 'tz_test';

2024-10-12 21:24:43 1128 1

原创 59 mysql 存储引擎之 PERFORMANCE_SCHEMA

我们这里来看一下 performance_schema 存储引擎, 我们常见的那些 general_log, slow_log什么的, 都是基于 performance_schema。这个 引擎和 MEMORY 引擎的差异在于, 这个没有一个专门的 临时存储表数据 的地方, 这个是 每一次迭代, 直接 读取的给定的内存数据结构的数据。将数据从 m_row 转换到 Field 列表, 分别填充 THREAD_ID, VARIABLE_NAME, VARIABLE_VALUE。

2024-10-04 18:00:05 392

原创 57 mysql 存储引擎之 CSV

然后 整体的迭代过程如下, 就是基于这个 next_position, 然后 find_current_row 中更新了 next_position。我们这里来看一下 CSV 存储引擎, 我们常见的那些 general_log, slow_log什么的, 都是基于 CSV。然后 列与列 之间是通过 “,” 分割, 然后 字符串系列是通过 “\”” 包围, 数字是直接存储的对应的数字。数字系列 的部分解析如下, 同样也是分为以上的三个部分, “,”结束字符, 转义字符处理, 其他普通字符。

2024-09-27 17:37:08 473

原创 56 mysql 用户权限相关的实现

这里讨论 mysql 的权限相关处理使用如下语句创建 tz_test 用户, 并赋予他 test_02 数据库的查询权限查询目标数据表, 数据如下, tz_test_02执行 update 之后, 客户端这边 得到的信息如下。

2024-09-23 18:51:57 1125

原创 55 mysql 的登录认证流程

这里我们来看一下 mysql 的认证的流程我们这里仅仅看 我们最常见的一个 认证的处理流程我们经常会登录的时候 碰到各种异常信息大概的流程是这样客户端和服务器建立连接之后, 服务器向客户端发送 salt然后 客户端根据 salt 将客户端传入的密码加密之后, 以及相关登录信息传递给服务器然后 服务器进行验证, 验证失败, 响应对应的错误信息给客户端服务器发送 salt 的信息如下客户端发送的认证请求如下服务器响应的认证失败信息如下。

2024-09-15 08:03:51 1110

原创 54 mysql 中各种 timeout - connect/wait/interactive/read/write_timeout

在 mysql 的服务器配置中, 我们经常会使用到几个 timeout诸如 connect_timeout, wait_timeout, interactive_timeout, read_timeout, write_timeout 等等我们 这里来看一下 他们的具体的使用场景, 以及具体控制的相关信息 是什么这个是 客户端 和 服务器建立连接之后, 客户端需要向服务器发起认证请求如果在 connect_timeout 期限内, 客户端未发送认证请求, 服务器会断开 和 客户端的连接。

2024-09-09 12:48:33 1054

原创 53 mysql pid 文件的创建

在 mysql 中文我们在 “service mysql start”, “service mysql stop” 经常会碰到 mysql.pid 相关的错误信息。通常来说, 我们使用 “service mysql stop” 或者 “kill $pid” 会执行该清理。删除了 pid 文件之后的日志信息如下, 基本上是在 mysql 生命周期的最后面了。我们这里来看一下 mysql 中 mysql.pid 文件的创建 和 清理的时机。删除 pid 文件的时候, 日志上下文如下。

2024-09-02 18:00:26 596

原创 52 mysql 启动过程中常见的相关报错信息

我们这里主要是看一下 service mysql start, service mysql stop 的过程中的一些常见的错误问题这些 也是之前经常碰到, 但是 每次都是 去搜索, 尝试 1, 2, 3, 4 去解决问题但是 从来未曾思考过 这个问题到底是 怎么造成的这个在启动的时候, 主要造成的情况一般是。

2024-08-26 20:28:00 1106

原创 51 无显式主键时 mysql 增加的 DB_ROW_ID

假设有 implicit_id_table_02, 然后增加了 两条记录, 之后再向 implicit_id_table 中增加记录, 得到的 DB_ROW_ID 为 558。创建表的时候, 创建了该 三个系统字段, DB_ROW_ID, DB_TRX_ID, DB_ROLL_PTR。row_id 的处理是通过 dict_sys_get_new_row_id 函数来获取的。为 DB_ROW_ID, DB_TRX_ID, DB_POLL_PTR 分配存储空间的地方。

2024-08-19 12:50:07 616

原创 50 mysql 的 “where 1 = 1“ 的优化处理

问题是来自于 chinaunix 问题 ”mysql 中在 java 代码中我们经常会使用到 ”where 1 = 1 and username = ‘jerry’ ” 之类的条件然后 我们这里 来看一下 “where 1 = 1” 的相关处理执行 sql 如下 “select *, 2, 2, 2 from tz_test where id = 1;sql_lex 中存储的原始查询语句中的查询条件因为这里是基于索引的查询, 查询条件放到了 qep_tab->m_qs->m_ref 中。

2024-08-09 12:55:03 1310 1

原创 58 mysql 存储引擎之 MEMORY

加上 一部分 mysql 的隐藏字段, 比如 hash_field, group_null_fields, null_pack_fields 等等, 这里只有 null_pack 占用的空间, 三字节, 最终 reclength 为 9441。对于 varchar 部分字段, 预留了足够的空间, 长度 + 存储的空间, 这里是基于 utf8 编码, 因此存储长度 “1538 = 2 + (512 * 3)”, “193 = 1 + (3 * 64)”从这里可以看出 实际上这个逻辑过滤的条件还是在过滤。

2024-08-09 12:54:41 623

原创 49 mysql 子查询 加 group by 产生的奇怪现象

这里要提到的是一个 之前碰到的一个 很令人诧异的查询, 主要是 和 group 查询有关系查询如下, 按照常规理解, “select id from t_user_02 where name = 'jerry' group by age” 会返回 两条数据, 然后 整个查询 会查询出两条数据但是 结果很令人差异, 查询出了 四条数据测试数据表如下, t_user 和 t_user_02 完全一样, t_user_02 是由 t_user 复制而来测试数据如下查询结果如下。

2024-08-05 10:42:48 556

原创 48 mysql 全局变量修改了时区, 客户端拿到的依然是旧时区

这是一个 我们最近碰到的问题在我们的一个 服务平台 查询到的时间字段 比 当前时区的当前时间多 8 小时然后 这个问题 也是挺神奇的, navicate 上面查询到的 时间是在正常的时间然后 查询环境变量 tz_zone 是 “+08:00”, 也没有问题, 但是 客户端这边 拿到的是 当前时间 + 8小时时间相关数据传输以及转换 请参见 mysql date/time/datetime/year 的数据存储从结果上来看 可以大致的推断是。

2024-07-26 13:51:23 515

原创 47 ‘./test_02/tz_test_tmp‘ (errno: 184 - Tablespace already exists)

当我 看到这个的时候, 去查询了一下 information_schema 中的 INNODB_SYS_TABLES 和 INNODB_SYS_TABLESPACES 的信息, 可以看到 找不到对应的 tz_test_tmp。然后 拷贝 tz_test.idb 为 tz_test_tmp.idb 文件, 然后 将另外一张表 更新为 tz_test_tmp, 然后 就复现了问题。执行 sql 如下 “alter table tz_test_updated rename to tz_test_tmp;

2024-07-19 12:53:41 372

原创 46 mysql 客户端拿不到具体的错误信息

这是最近碰到的一个问题同样的一个 环境的问题, 在正常的 mysql 环境会返回 具体的错误信息, 然后 在我的另外一个环境里面 只能返回一些 unknown error 之类的 十分抽象的环境然后 我们这里 来看一下 具体的情况 我们这里从 错误的环境 往前推导来查看 并解决这个问题这里构造的问题是一个 Table space already exists 的问题, 在重命名表名的时候, 将表名更新为 另外一个存在 ibd 的表名, 这时候 就会抛出如下异常。

2024-07-13 09:09:50 369

原创 45 mysql truncate 的实现

这里的主要的流程是 一系列的校验, 生成新的newTableId, 删除索引, 重新创建索引, 关联 newTableId 和已有的元数据信息, truncate idb 文件 等等。truncate 数据表 tz_test_big_table_copy 的 idb 文件, 仅仅保留 114688 字节。执行 sql 如下 “truncate table tz_test_big_table_copy;information_schema 中相关元数据信息如下。重新创建 tz_test_02 的相关索引。

2024-07-06 07:46:22 431

原创 44 mysql batch insert 的实现

执行 sql 如下 “insert into tz_test_02 (`field1`, `field2`) values ("你好0", "没意思0"), ("你好1", "没意思1"), ("你好2", "没意思2"), ("你好3", "没意思3"), ("你好4", "没意思4"), ("你好5", "没意思5"), ("你好6", "没意思6"), ("你好7", "没意思7"), ("你好8", "没意思8"), ("你好9", "没意思9");tz_test_02 的数据列表拷贝如下。

2024-06-28 17:15:15 508

原创 43 mysql insert select 的实现

我们这里 来探讨一下 insert into $fields select $fields from $table;的相关实现, 然后 大致来看一下 为什么 他能这么快按照 我的思考, 应该里里面有 批量插入才对, 但是 调试结果 发现令我有一些意外呵呵 果然 只有调试才是唯一的真理测试数据表如下tz_test 的数据如下执行 sql 如下 “insert into tz_test_02 select * from tz_test;

2024-06-23 21:45:28 473

原创 42 mysql “+“ 操作符的实现

问题来自于 chinaunix,mysql 的一些基础的 算术运算符 的计算的实现这里 整理如下 case, 执行之前 设置如下变量解析 sql 的时候, 会将 表达式 解析为一个 Item_func_plus, 左右操作数为 Item_func_get_user_var 变量名分别为 a, b查询的时候 选择列即为 上面解析表达式的时候 resolve 的 Item_func_plus然后由 Item_func_plus 来计算结果, 以及响应数据。

2024-06-16 21:14:32 583

原创 41 mysql subquery 的实现

sub query 是一个我们经常会使用到的一个 用法我们这里 看一看各个场景下面的 sub query 的相关处理查看 本文, 需要 先看一下 join 的相关处理测试数据表如下, 两张测试表, tz_test, tz_test03, 表结构 一致tz_test 数据如下tz_test_03 数据如下。

2024-06-10 17:25:38 842

原创 60 关于 SegmentFault 的一些场景 (2)

呵呵 此问题主要是来自于 帖子这里主要也是 结合了作者的相关 case, 来做的一些 调试分享当然 很多的情况还是 蛮有意思本文主要问题如下。

2024-06-02 21:17:57 394

原创 60 关于 SegmentFault 的一些场景 (1)

呵呵 此问题主要是来自于 帖子这里主要也是 结合了作者的相关 case, 来做的一些 调试分享当然 很多的情况还是 蛮有意思本文主要问题如下比如如下数据, “Hello World” 会被放到 .text 段, 该段只读, 这里程序中试图更新该内存的数据调试上下文如下page fault 的时候 ip 为 4195562 = 0x4004EAerror_code 为 7, PF_PROT | PF_WRITE | PF_USER0x4004EA 对应的信息如下, 是一段执行代码。

2024-06-02 21:17:32 468

原创 59 多次 mmap 虚拟地址的关系

第六个 mmap 调用如下, dl_main - init_tls - dl_allocate_tls_storage - libc_memalign 映射了 4k 的映射区, 映射的区间是 0x7ffff7ff5000 - 0x7ffff7ff6000。第七个 mmap 调用如下, dl_main - init_tls - dl_allocate_tls_storage - allocate_dtv 映射了 4k 的映射区, 映射的区间是 0x7ffff7ff4000 - 0x7ffff7ff5000。

2024-05-25 09:26:24 398

原创 58 多次基于 malloc 分配内存的一些现象分析

问题来自于文章 内存分配的小例子请教本文的内容, 如果您有阅读, 如下文章 应该还是很好理解, 建议先阅读如下文章。

2024-05-19 20:21:40 269

jface.text - Jar [去掉 空格 + 等号的提示]

jface.text - Jar [去掉 空格 + 等号的提示] by 970655147

2015-10-14

jface.text3.9 - Src & Bin

jface.text3.9的源代码, eclipse自动补全插件相关 来自 : http://vdisk.weibo.com/s/aWiTqHd1bs37I

2015-10-14

crawlerTools

一个简易的爬虫模板工具, 利用基于xpath, json的抓取数据模板, 抓取输入源中符合条件的数据

2015-10-02

transferTool

一个用于压缩, 转义, 格式化输出json, xml的工具

2015-10-01

transferTools

一个用于压缩, 转义, 格式化输出json, xml的工具

2015-10-01

程序启动工具

程序启动工具, 用于管理常用的程序, 详见博客

2015-10-01

简易连连看

一个简易连连看游戏, 主要是设计数据结构相关的知识, swing, 线程 等等

2015-09-30

简易扫雷游戏

一个简易扫雷游戏, 主要是设计数据结构相关的知识, swing 等等

2015-09-28

09 Runtime

个人对于java.lang.Runtime的分析

2015-09-13

08 ProcesBuilder

个人对于java.lang.ProcessBuilder的分析

2015-08-29

简易黑白棋

一个魔方的简易模拟, 主要是设计数据结构相关的知识, swing 等等

2015-08-28

07 StringBuilder

个人对于java.lang.StringBuilder的分析

2015-08-26

06 AbstractStringBuilder

个人对于java.lang.AbstractStringBuilder的分析

2015-08-26

05src String

个人对于java.lang.String的分析

2015-08-25

src04 Byte

个人对于java.lang.Byte的分析

2015-08-24

src03 Boolean

个人对于java.lang.Integer的分析 by 970655147

2015-08-20

src02 Integer

个人对于java.lang.Integer的分析

2015-08-19

src01 Object

个人对于java.lang.Object的分析

2015-08-19

简易魔方模拟

一个魔方的简易模拟, 主要是设计数据结构相关的知识, swing 等等

2015-08-17

简易迷宫寻路

一个简单的迷宫寻路程序, 包括了dfs搜索, java基础内容, 多线程 等等

2015-08-11

1个路由器配置一个子网的dhcp服务+2个路由器配置dhcp服务器+dhcp中继器配置两个子网的dhcp服务

参见 1个路由器配置一个子网的dhcp服务+2个路由器配置dhcp服务器+dhcp中继器配置两个子网的dhcp服务

2024-06-10

2个路由器构造三个子网相互访问, 3个路由器构造5个子网相互访问

参见2个路由器构造三个子网相互访问, 3个路由器构造5个子网相互访问

2024-06-10

2个交换机+vlan构造两个逻辑上的子网

参见 2个交换机+vlan构造两个逻辑上的子网

2024-06-10

1个路由器+两个子网示例

参见文章 1个路由器+两个子网

2024-06-10

vue 实现的贪吃蛇 实现了自动导航

vue 实现的贪吃蛇 实现了自动导航 参见文章 https://jerryhe.blog.csdn.net/article/details/127459183

2022-10-22

html + js 实现的贪吃蛇 实现了自动导航

html + js 实现的贪吃蛇 实现了自动导航 参见文章 https://jerryhe.blog.csdn.net/article/details/127459183

2022-10-22

greenplum 6.0 安装相关

greenplum 6.0 安装相关

2022-05-15

Test24StringInConstantsPool.java.zip

String.intern 同一个字符串返回不同的引用 里面提及的 2021.11.21 部分内容修正 的测试用例

2021-11-21

hsdis-amd64.dll 动态库

PrintAssembly 选项所需要的动态库, 可以参见 : https://blog.csdn.net/u011039332/article/details/83690224

2018-11-03

mybatis-springMapper太多导致StackOverflow_StackTrace

详细请参见文章 : https://blog.csdn.net/u011039332/article/details/83045246

2018-10-14

my-carousel

参见 "24 MyElCarousel" 在 element-ui 原生 carousel 的基础上面增加了两个配置[displayLabelNum, marginWithItem ]

2018-09-02

ExcelUtils.zip

参见文章 23 ExcelUtils, 一个基于 POI 的封装, 15 字

2018-08-11

StringEncoding_decode 的crash日志

一次调试 StringEncoding.decode 的crash日志

2017-08-10

HXBlogDeps[HXLibs + tests resources]

HXBlog_V2.0 所依赖的包 + 部分测试资源

2017-07-16

HXServerLibs

HXServer 所依赖的jar包[json, image4j]

2015-11-27

Athena (转)

一位大神, 十年之前写的一个简易的服务器

2015-11-27

HXBlog Libs

HXBlog 所需要的jar包, apacheCommon, json, servlet, sqlite, ueditor

2015-11-16

简易2048小游戏

一个简易的2048小游戏, 详见播客介绍

2015-11-15

简易艾摩君

一个fc的艾摩君游戏, 主要是设计数据结构相关的知识, swing, 线程 等等, 详见博客

2015-10-28

代码格式化工具

代码格式化工具, 用于格式化显示代码片段, 详见博客

2015-10-22

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

TA关注的人

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