自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 Effective Java读后分享 (二)

接一,我继续分享些tips。好吧。废话不多说,笔接上文。1.使可变性最小化。这个是对于final关键字而言的。final关键字可以用来修饰类,方法, 属性等。用final修饰的类不可被继承,修饰的方法不能被重写, 修饰的属性其引用不能更改。而这里所说的使可变性最小化,是对final修饰的类而言的,使一个类的可变性最小化, 需要遵守以下几条规则。 (1). 不提供任何会修改对象状态的...

2019-05-08 12:59:10 287

原创 Effective Java读后分享 (一)

读完Effective Java之后始感觉这本书中的知识多是一些零碎的小知识,这些小知识主要是围绕着类库设计,设计模式,api导出,升级,维护等方面的小tips。就像书中的一个一个小标题一个个的罗列出来一样,我也如法炮制,一条条的列出来我读完本书之后消化了的一些tips, 和大家一起分享吧。谢谢。1.在基本类型包装成对应包装类的时候尽量使用包装类上的静态工厂方法,而不要采用new关键...

2019-04-30 09:31:18 472

原创 mysql 8.0 官方文档翻译 (一) 之 8.2.1 where 子句优化

8.2.1 where 子句优化这一块讨论where子句的优化。这些优化适用于select,delete, update语句。注意: 因为mysql的优化工作正在进行中,所以并不是所有的优化都记录在此。 你或许曾经试图以牺牲可读性,来优化你的查询语句,以期获得更快的运行速率。 现在你大可不必了, 因为mysql内部, 已经做了许多相似的优化, 使你可以在保持你的语句更加容...

2019-04-28 19:03:13 522

原创 spring源码解析系列 (一) 之beanInstance创建的全过程

前言:作为一名java程序猿,想必都对spring不那么陌生。不管是b/s, 还是c/s开发,都可以使用spring。笔者本人从一开始工作就使用spring, 使用了两三年了吧, 也研读过spring几个模块的源码,所以趁这个机会, 梳理出来一个脉络, 跟大家分享吧。笔者采用的源码版本为Spring Framework 4.1.7.RELEASE。1.spring的bean实例化...

2019-04-28 13:24:02 1272

原创 乱码的终极奥秘

我相信做javaEE开发的程序猿们,不管是经验丰富,还是初生牛犊,都肯定在开发的过程中,遇到过乱码的问题。我本人也深受其害。而且乱码问题防不胜防,让人十分头疼。下面我就准备就乱码问题。说一说我自己的心得和体会。在说之前首先。我要明确几个概念。1,首先明确一点,记事本的默认编码是ASNI,这个ASNI是什么意思呢,它的意思是说如果是在中国,默认的编码就是GBK,如果是在中欧的话,那可

2016-12-25 18:00:28 612

原创 oracle将当前用户下所有的表的create语句导出.sql文件

很久以前写的一段代码了。  还记得那个时候是我刚从学校出来的那段时光,整天呆在公司,还没有具体事物交给我做。当时,由于比较闲,一个同事就跑过来,问我。说可不可以把oracle当前用户下所有表的建表语句都导出来。  当时由于比较闲,就花了一个下午的时间,研究这个问题。我发现很多数据库GUI的程序,都不能做到这一点。后来发现可以在cmd里用数据库的一些命令,把所有的建表语句都打印出来,

2016-11-13 23:43:00 5456

原创 windows 7 还原默认关联程序

我想可能大家在操作自己的win7系统的时候,可能遇到这样的问题,就是自己的.exe扩展名的程序,用wps或者word打开之后,系统就会把wps或者word,变成可执行程序的默认打开方式。这样让你烦不胜烦。而且还改不过来是吧。               本文就旨在解决这个问题。

2016-11-06 13:57:58 4679

原创 报表单元格的合并(续)

续接上文。仔细想了想报表单元格的合并。我发现上次的那种合并单元格的写法,是不支持分页查询的。可当报表数据量足够大的时候,分页查询又是难以避免的。所以我不得不做出一些改变来适应。        首先修改查询语句如下:select (case when t.yj_id is not null then (select f.title_name from report_tab

2016-11-04 10:58:07 1614

原创 报表单元格的合并

前一段时间一直在做报表,由于报表的数据庞大,后台处理完数据的查询时,已是负重不堪。为了给后台减轻压力,有些事情,就挪到了前台来完成。比如下面,我即将要讲的东西——报表单元格的合并。       其实,怎么说呢,我们公司特有的报表框架,是用引擎解析xml文件,之后返回html,给浏览器显示的。报表的一些配置,譬如合并啦,拆分啦,纵向扩展啦,横向扩展啦这些东西都是可以配置的,然后可以通过报

2016-10-29 13:20:40 3746

原创 vbs给word和wps上个u盘锁

这真的是一个很有意思的东东。还是听一个懂点技术的网友说vbs可以做这样一个东东。我才突发兴致做了一个。其实实现的原理并不算难。就是要在电脑和u盘里各建一个vbs文件。然后两个vbs文件相互调用。 为了把原理描述地牵线且易懂。我们姑且把这两个文件命名为computer.vbs和up.vbs。 在computer.vbs里主要做这两件事情。第一件事就是遍历电脑上所有的驱动器,判断有没有

2016-10-24 22:02:14 1298

原创 mysql批量将列名改成小写

上个星期的时候,有个朋友问我,能不能把MySQL中所有表的列名,通过一个程序全部由大写改成小写。因为之前有写过oracle的plsql编程,所以一听这个朋友的问题,就觉得有门,不算很难实现。可能很多用过oracl的朋友都知道,在oracle里可以用 “select * from user_tables”这条sql语句查看当前用户下的所有表的详细信息。正是基于这个。我构想如果可以动态

2016-10-23 16:58:39 11431 3

原创 第6篇:一个以太网帧的解剖课 —— 从 MAC 地址到 TCP 端口

大部分计算机网络教材是这样讲协议栈的:先画一张七层 OSI 模型的图,然后从上到下(或者从下到上)逐层介绍,每一层都配一张协议头的示意图,用不同颜色标注各个字段。这种讲法没问题,但它有一个缺陷:读完你知道了协议长什么样,但不知道在代码里怎么用。今天我用另一种方式来讲——直接拿我们在里定义的结构体过来,对着代码讲。你读完这一篇,不仅知道 IP 头的 TTL 字段在哪,还知道怎么用指针强转把它从一堆十六进制里揪出来。这种方式可能不够"学术",但实用。

2026-06-29 11:30:49 261

原创 第5篇:真的读到一个包了 —— WinPkFilter 绑卡与抓包实战

我第一次从 NDIS 驱动里读到一个真实的数据包时,已经在电脑前坐了整整一天。驱动装好了,适配器枚举成功了,Tunnel 模式设好了,IOCTL 发出去了——但返回的 buffer 里全是零。又搞了两个小时,终于发现是的大小算错了,EthPacket数组的起始地址偏移了 8 个字节。修正之后,buffer 里终于出现了数据。我盯着那一串十六进制数字看了五分钟。——这是某个程序发出的一个 TCP SYN 包。它刚刚从网卡上被抓下来,还没到达 TCP/IP 协议栈,就被我截获了。

2026-06-29 11:30:07 368

原创 第4篇:NDIS 驱动是什么鬼 —— Windows 网络栈的地下室

NDIS 全称 Network Driver Interface Specification。名字很朴素——“网络驱动程序接口规范”。│ 你的程序 (socket) │ ← "我要上 google.com!│ TCP/IP 协议栈 │ ← "我知道怎么封装 TCP 包"│ NDIS │ ← ★ 我们站在这里│ 网卡驱动 (e1d.sys等) │ ← "我会跟网卡芯片说悄悄话"│ 网卡硬件 │ ← 电线 / WiFi 天线NDIS 在中间。对上跟协议栈打交道(“你要发包?给我。

2026-06-29 11:29:17 248

原创 第3篇:全景架构图 —— 让这张图刻在你脑子里

我老婆前段时间第一次进我们公司的机房。她看着满墙的网线、交换机、服务器,站了三十秒,然后说了一句话:“这看起来就像一个巨大的插线板。我说对,差不多就是这个意思。所有复杂系统,拆开来看都是一堆东西连在一起。区别只在于:有的连线是看得见的(网线),有的是看不见的(内存里的指针、回调函数、线程间的消息队列)。今天这篇文章,我要往你脑子里刻一张图。后面 27 篇文章的每一篇,都是在这张图上找一个地方,下车细逛。

2026-06-26 14:23:57 207

原创 第2篇:Windows 上劫持流量的 N 种姿势,以及我为何选了最痛的那种

挑餐厅的时候,选择多是一种幸福。做技术选型的时候,选择多是一种诅咒。“在 Windows 上劫持网络流量”——这个需求听起来简单,但等你真的开始研究怎么做,你会发现面前的选项多到令人窒息。每一种方案都有人推荐,每一种方案都有人骂,每一种方案的文档都看似完整但你一旦上手就发现写文档的人肯定没自己写过代码。我花了大概两周,试了五种方案,蓝屏了四次,最终选了最难的。今天这篇就是把五种方案掰开揉碎了讲——不是为了让你也花两周,是为了让你花二十分钟看完这篇然后直接跳到正确答案。但我得先说清楚评价标准。

2026-06-26 14:23:25 569

原创 第1篇:我为什么要花 3000 个小时写一个轮子

我有个发小,前几年突然迷上了木工。他买了一套刨子、锯子、凿子,在阳台上搭了一个工作台,每天下班回来就锯木头。三个月后他发给我一张照片——一个歪歪扭扭的书架,左边比右边高三厘米,搁板之间的间距肉眼可见地不均匀。他说他老婆看了一眼,说"挺好的,放地下室吧"。我问他为什么要自己做一个书架,宜家 199 块钱就能买一个比这好看十倍的。他说:“去宜家买一个书架只需要二十分钟,但你不会在二十年之后还记得那二十分钟。这个书架虽然丑,但我记得每一块木板是怎么锯的、每一颗螺丝是怎么拧的。

2026-06-26 14:22:47 206

原创 第6篇:从技术到产品 — Ghost Proxifier 的设计哲学

Electron → 打包 200MB,为一个几 MB 的代理工具塞一个完整的 Chromium。就像为了吃一颗糖豆买了一个糖果工厂。Qt/C++ → 性能好,但 UI 迭代太慢。改一个按钮的颜色要重新编译。前端同事没法参与。WebView2 → Windows 10+ 自带,体积零。前端用 HTML/CSS/JS 独立迭代,C++ 核心专注引擎。两拨人互不阻塞。Windows 用户群覆盖率够高,不缺 Electron 的跨平台优势。macOS 版以后再说——那是另一个项目,不是一次移植。

2026-06-24 00:10:32 215

原创 第5篇:Cygwin 兼容之战 — 一次 SIGSEGV 的排查之旅

这个 Bug 修完之后,我在搞了三天就为了能在代码里加这一行注释。值不值?值。因为这个 Bug 教会我的东西,比修好它本身多得多。

2026-06-24 00:09:50 209

原创 第4篇:进程树的递归追踪 — 让代理自动“传染“

系列:《从0到1搭建一个自己的Proxifier》上一篇:第3篇《注入的艺术 — Ghost Proxifier 核心架构拆解》下一篇预告:第5篇《Cygwin 兼容之战 — 一次 SIGSEGV 的排查之旅》

2026-06-23 15:26:45 190

原创 第3篇:注入的艺术 — Ghost Proxifier 核心架构拆解

系列:《从0到1搭建一个自己的Proxifier》上一篇:第2篇《Winsock API Hook — 在应用层精确动刀》下一篇预告:第4篇《进程树的递归追踪 — 让代理自动"传染"》

2026-06-23 15:26:03 186

原创 第2篇:Winsock API Hook — 在应用层精确动刀

系列:《从0到1搭建一个自己的Proxifier》上一篇:第1篇《网络五层模型 — Proxifier 的战场地图》下一篇预告:第3篇《注入的艺术 — Ghost Proxifier 核心架构拆解》

2026-06-23 15:25:06 824

原创 第1篇:网络五层模型 — Proxifier 的战场地图

系列:《从0到1搭建一个自己的Proxifier》下一篇预告:第2篇《Winsock API Hook — 在应用层精确动刀》

2026-06-23 15:23:37 187

原创 开发效率提升:解决公司内网环境下外部工具的网络访问问题

公司内网与外部网络工具冲突是开发者的常见痛点。全局转发会和内网环境打架,手动维护排除列表又费时费力。Proxifier 进程级方案虽能解决冲突,但规则配置繁琐、子进程需逐个手动添加。本文介绍 Ghost Proxifier 的上手体验:只需拖入程序快捷方式,自动追踪所有子进程,零配置解决内网共存问题,大幅降低开发者的环境维护成本

2026-06-16 15:46:10 259

原创 关于autorun.inf

我相信很多研究过u盘插入之后自动播放功能的人,对于这个文件肯定都不陌生。可是一开始用于光盘自动播放安装应用程序的功能,却被一些人巧妙的运用,成为U盘病毒传播的桥梁。因为插入时的自动播放功能,病毒获得了执行的机会,之后病毒就可以修改计算机的启动项,进而获得你电脑的控制权。 由于这样恶劣的行为,出于安全考虑,2011年微软发布了专门针对这一漏洞的补丁,从此,只有光盘上的自动播放功能没有被禁止,

2016-10-25 21:54:57 753

空空如也

空空如也

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

TA关注的人

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