<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[jiangfuqiang的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jiangfuqiang</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jiangfuqiang]]></copyright><item><title><![CDATA[Windows下三种唤醒线程的方法]]></title><link>https://blog.youkuaiyun.com/jiangfuqiang/article/details/12947189</link><guid>https://blog.youkuaiyun.com/jiangfuqiang/article/details/12947189</guid><author>jiangfuqiang</author><pubDate>Tue, 31 Mar 2020 11:23:37 +0800</pubDate><description><![CDATA[多线程编程经常遇到以下问题：主线程退出前，后台线程也优雅的退出。如果后台线程处于阻塞状态，则需要把阻塞线程激活。本文讨论Windows下面，三种激活阻塞线程的方法。


第一种：利用WaitForMultipleObjects函数让线程处于阻塞状态，并设置多个等待对象中的任一对象处于signal状态下都返回。此时向WaitForMultipleObjects传递的等待对象数组要包含一个额外的]]></description><category></category></item><item><title><![CDATA[JTI + JNI，为Java程序提供获取JVM内部信息的通道]]></title><link>https://blog.youkuaiyun.com/jiangfuqiang/article/details/44707239</link><guid>https://blog.youkuaiyun.com/jiangfuqiang/article/details/44707239</guid><author>jiangfuqiang</author><pubDate>Sat, 28 Mar 2015 22:15:20 +0800</pubDate><description><![CDATA[首先，JTI是啥？
HotSpot JVM使用C++写的，在操作系统层面来看，java.exe进程与其他进程并无特别之处。任何一个进程都可以加载第三方的DLL，JTI就是java.exe开放出来的向Java.exe进程注入dll的接口。也就是说，开发者根据JTI定义好的规范，用C++写一个dll，这个dll就可以被java.exe进程加载了【启动jvm的时候要加上-agentlib参数】。
J]]></description><category></category></item><item><title><![CDATA[Javac编译时报“非法的前向引用”，以及Eclipse自带的Java编译器的缺陷]]></title><link>https://blog.youkuaiyun.com/jiangfuqiang/article/details/44464181</link><guid>https://blog.youkuaiyun.com/jiangfuqiang/article/details/44464181</guid><author>jiangfuqiang</author><pubDate>Thu, 19 Mar 2015 20:45:45 +0800</pubDate><description><![CDATA[编译以下类的时候，如果切换WARNING_LEVEL的赋值方式为"= StatusDef.WARNING"，javac会报“非法的前向引用”。 Eclipse自带的编译器会编译通过，这是Eclipse编译器的一个缺陷。
产生这个编译错误的原因是，cinit方法是按照字段在源码中的声明顺序依次执行各个初始化代码段。 对于ForwardReference类，cinit方法依次执行以下功能：

]]></description><category></category></item><item><title><![CDATA[Java String类涉及到UTF16编码的几个概念]]></title><link>https://blog.youkuaiyun.com/jiangfuqiang/article/details/40919233</link><guid>https://blog.youkuaiyun.com/jiangfuqiang/article/details/40919233</guid><author>jiangfuqiang</author><pubDate>Sat, 08 Nov 2014 11:53:20 +0800</pubDate><description><![CDATA[Java中的String是采用UTF16编码，String类的文档中涉及到了Code Unit、Code Poi]]></description><category></category></item><item><title><![CDATA[JDBC与WOSA/XFS]]></title><link>https://blog.youkuaiyun.com/jiangfuqiang/article/details/38640227</link><guid>https://blog.youkuaiyun.com/jiangfuqiang/article/details/38640227</guid><author>jiangfuqiang</author><pubDate>Sun, 17 Aug 2014 17:28:07 +0800</pubDate><description><![CDATA[最近灵光一现，突然发现JDBC与WOSA/XFS居然这么相似。]]></description><category></category></item><item><title><![CDATA[完整导出IntelliJ IDEA的快捷键]]></title><link>https://blog.youkuaiyun.com/jiangfuqiang/article/details/38553011</link><guid>https://blog.youkuaiyun.com/jiangfuqiang/article/details/38553011</guid><author>jiangfuqiang</author><pubDate>Thu, 14 Aug 2014 08:17:43 +0800</pubDate><description><![CDATA[工欲善其事，必先利其器。经常和代码打交道的人，熟练使用IDE快捷键那是必须的，因为快捷键可以把你从各种罗嗦事中解放出来。比如，如果没有快捷键，你就需要经常性的暂停高速运行的大脑，右手凭记忆摸到鼠标，然后在屏幕上翻来翻去，“我擦，这该死的菜单又躲到哪里去了”。本文告诉你如何完整提取出IntelliJ IDEA的快捷键，其中IntelliJ IDEA的版本是13.1。]]></description><category></category></item><item><title><![CDATA[Java代码质量监控工具Sonar安装]]></title><link>https://blog.youkuaiyun.com/jiangfuqiang/article/details/38520581</link><guid>https://blog.youkuaiyun.com/jiangfuqiang/article/details/38520581</guid><author>jiangfuqiang</author><pubDate>Tue, 12 Aug 2014 20:41:39 +0800</pubDate><description><![CDATA[Sonar是Java的代码质量管理工具，具有代码静态检查、单元测试覆盖率分析、代码复杂度分析、jar依赖关系分析等多种功能。本文记录了其安装过程，以备后查。]]></description><category></category></item><item><title><![CDATA[Jenkins+Maven进行Java项目持续集成]]></title><link>https://blog.youkuaiyun.com/jiangfuqiang/article/details/38497461</link><guid>https://blog.youkuaiyun.com/jiangfuqiang/article/details/38497461</guid><author>jiangfuqiang</author><pubDate>Mon, 11 Aug 2014 19:45:54 +0800</pubDate><description><![CDATA[最近配置了Jenkins服务器，记录下基本过程，以免日后遗忘。]]></description><category></category></item><item><title><![CDATA[Java集合类汇总记录-- apache.commons4(TreeList)]]></title><link>https://blog.youkuaiyun.com/jiangfuqiang/article/details/38461277</link><guid>https://blog.youkuaiyun.com/jiangfuqiang/article/details/38461277</guid><author>jiangfuqiang</author><pubDate>Sat, 09 Aug 2014 22:32:41 +0800</pubDate><description><![CDATA[apache-commons库用tree实现了实现了List的接口，也就是TreeList类。与标准的LinkedList相比，TreeList稍微浪费一点空间，但常用操作的时间复杂度均降低到了O(log N)，值得在开发中权衡利弊、合理应用。]]></description><category></category></item><item><title><![CDATA[Windows Server 下安装BugZilla]]></title><link>https://blog.youkuaiyun.com/jiangfuqiang/article/details/37830859</link><guid>https://blog.youkuaiyun.com/jiangfuqiang/article/details/37830859</guid><author>jiangfuqiang</author><pubDate>Tue, 15 Jul 2014 21:04:26 +0800</pubDate><description><![CDATA[记录在Windows Server上安装BugZilla遇到的问题，作为BugZilla官网安装指南的重要补充。]]></description><category></category></item><item><title><![CDATA[Java集合类汇总记录--guava篇]]></title><link>https://blog.youkuaiyun.com/jiangfuqiang/article/details/37766693</link><guid>https://blog.youkuaiyun.com/jiangfuqiang/article/details/37766693</guid><author>jiangfuqiang</author><pubDate>Mon, 14 Jul 2014 18:25:23 +0800</pubDate><description><![CDATA[汇总记录guava中提供的集合类，包括MultiMap、MultiSet、BiMap等。]]></description><category></category></item><item><title><![CDATA[Java集合类汇总记录--JDK篇]]></title><link>https://blog.youkuaiyun.com/jiangfuqiang/article/details/37728261</link><guid>https://blog.youkuaiyun.com/jiangfuqiang/article/details/37728261</guid><author>jiangfuqiang</author><pubDate>Sat, 12 Jul 2014 19:15:48 +0800</pubDate><description><![CDATA[汇总记录了JDK中所有的标准Collection类，简单介绍了各自的特性，以备速查。]]></description><category></category></item><item><title><![CDATA[精确计算java中float和double的精度]]></title><link>https://blog.youkuaiyun.com/jiangfuqiang/article/details/27976397</link><guid>https://blog.youkuaiyun.com/jiangfuqiang/article/details/27976397</guid><author>jiangfuqiang</author><pubDate>Sun, 01 Jun 2014 17:43:45 +0800</pubDate><description><![CDATA[给定一个double d = XXX，和d最接近的另外两个double值是多少？我用Java写了一个解析原始数据类型float和double的类，给定一个float或者double数值P，它可以计算出与P的绝对值最近的、可以被float/double表示的浮点数。]]></description><category></category></item><item><title><![CDATA[Java加上Xtend，满足你对C#语法的所有想象]]></title><link>https://blog.youkuaiyun.com/jiangfuqiang/article/details/26169813</link><guid>https://blog.youkuaiyun.com/jiangfuqiang/article/details/26169813</guid><author>jiangfuqiang</author><pubDate>Sun, 18 May 2014 21:51:55 +0800</pubDate><description><![CDATA[Java加上Xtend，满足你对C#语法的所有想象
好吧，标题言过其实了，Xtend只是在某些方面提供了与C#类似的语法。又或者作为资深Java程序猿，你根本就对这个标题感到愤怒或不屑，“我大Java何时要与屌丝C#做比较了”。但无论如何，Xtend在语法上的清爽还是让我这个非资深程序猿感到了惊喜。如果你偶尔也对Java重复的getter/setter感到无聊，对Java5/6/7缺少Lambd]]></description><category></category></item><item><title><![CDATA[Spring Framework Reference Documentation 3.2.8.RELEASE 第23章中文翻译]]></title><link>https://blog.youkuaiyun.com/jiangfuqiang/article/details/24920329</link><guid>https://blog.youkuaiyun.com/jiangfuqiang/article/details/24920329</guid><author>jiangfuqiang</author><pubDate>Wed, 07 May 2014 11:44:20 +0800</pubDate><description><![CDATA[23.1 介绍

Spring提供了一个JSM集成框架，简化了JMS API的使用。这点很像Spring对JDBC的集成。

JMS大致提供生产消息和消费消息两类功能。JmsTemplate类用来生产消息和同步接收消息【译注：接收消息也就是消费消息】。为了异步接收消息（异步接收消息类似于JavaEE的消息驱动Bean（Message-Driven Bean,MDB），Spring提供了一组消息监听器容器（messagelistener containers），用来创建多个消息驱动POJO（Message-D]]></description><category></category></item><item><title><![CDATA[利用Wireshark加Lua分析专有网络协议]]></title><link>https://blog.youkuaiyun.com/jiangfuqiang/article/details/21294573</link><guid>https://blog.youkuaiyun.com/jiangfuqiang/article/details/21294573</guid><author>jiangfuqiang</author><pubDate>Sat, 15 Mar 2014 19:11:46 +0800</pubDate><description><![CDATA[实战过程：
1.安装wireshark、lua。
2.利用lua为wirashark写一个协议的dissector，并部署到lua上。
  2.1 参照http://wiki.wireshark.org/Lua/Examples中的例子，进行修改。其中要注意的一点是TCP协议中的粘包现象（如果是UDP则不考虑），
  解决这点的关键是在dissector(buffer, pinfo, tr]]></description><category></category></item><item><title><![CDATA[Windows下的Grep工具]]></title><link>https://blog.youkuaiyun.com/jiangfuqiang/article/details/19282635</link><guid>https://blog.youkuaiyun.com/jiangfuqiang/article/details/19282635</guid><author>jiangfuqiang</author><pubDate>Sun, 16 Feb 2014 11:10:28 +0800</pubDate><description><![CDATA[一直觉得Windows下搜索文件夹下所有文件的内容不方便，但也没在意。今天试用了Windows Grep这个工具，效果不错。
最新版本是2.3，安装之后，打开专家模式，并且做以下设置：



图中的"Editor command line:"选项的含义是：
1. C:\UltraEdit_V19.10.0.1012\UltraEdit\uedit32.exe是UltraEdit的可执行]]></description><category></category></item><item><title><![CDATA[设置VMWare虚拟机可以被外网访问]]></title><link>https://blog.youkuaiyun.com/jiangfuqiang/article/details/18620291</link><guid>https://blog.youkuaiyun.com/jiangfuqiang/article/details/18620291</guid><author>jiangfuqiang</author><pubDate>Tue, 21 Jan 2014 19:34:44 +0800</pubDate><description><![CDATA[环境：VMWare 10；主机为Windows7，IP地址通过DHCP获得；虚拟机为Windows XP

步骤：

Client操作系统（Windows XP）中
1.设置为自动获得IP

Host操作系统（Windows 7）中
1.VMWare--“虚拟网络编辑器”对话框中，选择桥接模式的网卡（一般为VMnet0），然后设置“桥接到”的Combobox为合适的项
2.VMW]]></description><category></category></item><item><title><![CDATA[JavaScript中的比较操作符]]></title><link>https://blog.youkuaiyun.com/jiangfuqiang/article/details/17590883</link><guid>https://blog.youkuaiyun.com/jiangfuqiang/article/details/17590883</guid><author>jiangfuqiang</author><pubDate>Thu, 26 Dec 2013 20:29:10 +0800</pubDate><description><![CDATA[用了一段时间的JavaScript，总是感觉这门语言非常不严谨，其中一个很难完全搞懂的地方就是比较操作符。这几天重翻JavaScript -- The Definitive Guid，做个摘要，加深理解。


JavaScript中的类型

null：一个类型只有一个值【虽然typeof(null)返回的是’object’，但它的类型仍然不是object】
undefined：一个类型]]></description><category></category></item><item><title><![CDATA[解决WebBrowser控件打开本地页面报安全提示的问题]]></title><link>https://blog.youkuaiyun.com/jiangfuqiang/article/details/17305229</link><guid>https://blog.youkuaiyun.com/jiangfuqiang/article/details/17305229</guid><author>jiangfuqiang</author><pubDate>Fri, 13 Dec 2013 17:09:47 +0800</pubDate><description><![CDATA[今天用C#封装了WebBrowser控件去打开一个本地页面，页面中包含了javascript脚本，该脚本通过WebBrowser的ObjectForScripting属性，访问C#代码。代码非常简单，但没想到打开页面的时候，WebBrowser报安全提示：“为帮助保护你的安全，你的Web浏览器已经限制此文件显示可能访问你的计算机的活动内容。单击此处查看选项…”。尼玛，这是我自己写的本地页面好不好，]]></description><category></category></item></channel></rss>