[蛋疼的总结]各种语言取子字符串总结

前段时间碰到一个代码review,其中一个bug是关于java的substring的。java的substring作为一个String类下的函数,对于Java的熟练工来说,应当是了如指掌的,可是在我的记忆中生生地搞错了substring原来是不允许越界的。

我必须要为满脑袋浆糊的原因做出一个解释,那就是我发现substring函数,也就是取子字符串函数,虽是一个几乎所有语言都会提供的基本得不能再基本的库函数,但有趣的是,各家对于这个函数的设计差别很大,在一些语言中,利用一些基本类型的差别,很巧妙地解决了这个问题。

[变态的C++]“迷路”的函数调用错误

为了世界和平,人类发展,社会和谐,请面试官和C/C++老师绕道,灰常感谢。

===================割===================

相信你也同意C++是一门很变态的语言,不同意的话,不妨尝试下这个问题(据说是个面试题):

在C++中,我们调用了某个函数,但实际执行情况是“调用错了”,就是说没有执行你所期望的那个函数,调用发生了错误,考虑这是为什么?

具体地来说,就是我们在一个类上定义两个函数,我们调用了一个函数,执行的却是另一个函数。我们假设编译器是没有bug的,它知道它在干什么,它试图连接的函数和您的期望是一样的。另外,不要直接读写内存区域。

好吧,首先希望您能静下心来想一想这个问题,我建议你暂时先把本站放入收藏夹,然后想清楚了再继续看。如果您实在感到匪夷所思,您可以先无视我前面提到的一些条件。另外作为善意提醒,我建议您还是要尝试编写代码,我在撰写本帖时,一些想到的方案最后费了很长的时间才最终实现。

用HttpComponents下载网页

周末无聊,简单了解了下Apache基金会的HttpComponents,它是原Apache下jakarta下Commons下的一个子项目HttpClient,现在独立了。虽然看标题用这玩意下网页很自然,可它的Tutorial有一句话:它不是HttpClient的替代者,确实用这玩意下网页浪费了。简单地看了下HttpClient代码发现也是基于HttpCore,这次在只使用HttpCore下写个小型的下载网页工具,不废话了,直接上代码。(@鱼尾Swing 有木有代码高亮工具啊)

异地局域网计算机互联的一种方案

当你拥有两台工作的机器且身处异地的时候,它们之间的连接总是很麻烦。如果你想要连接的机器拥有一个公网的IP时,问题还很容易,但如果它在局域网内?虽然两台能连上国际互联网的机器在物理上是互通的,但由于NAT的缘故,你并不能直接发起远程计算机的请求,如果你没有远程计算机所在网关配置权的话。
下面将讨论一种繁琐的通过IPv6实现互联的方法,我们将首先接入IPv6,然后使用OpenVPN,实现可访问性。
提示:
1、 本文无关墙,误入者绕行
2、 如果您知道IPv4to6的方法,了解VPN,绕过本文。
3、 本文的结尾将会对其他笔者考虑过的方法做一回顾,一些情况下可以简化配置
4、 本文对技术细节和原理不做讨论,自行google
5、 由于类似配置Linux下讨论得更多,所以本文只介绍Windows的情形
6、 本文方法会加重计算机的负担,影响正常运行

解开exe包装的java程序

本文内容只用于学习目的,由于源代码涉及版权,请勿滥用本文方法,以免惹上官司。

由于java采用了虚拟机制,一个java程序会被编译成平台无关的中间代码,并且Sun当初在设计时给与了虚拟机较高的自由度,很多优化都是在虚拟机上完成的,这就导致采用java编写的程序非常容易被反编译。
另一方面,java程序的结构决定,每一个类都是一个独立文件,这样寻找反编译后具体的代码,然后修改并装载入原始程序都非常方便。

其实以上都是废话,为了凑字数~~~我其实要解决的问题就是把一个用java编写的程序,然后对其包装成exe的程序,提取源代码。

首先:解包
本方法并不使用全部的java2exe文件。方法很简单:重命名成.rar结尾的文件。

其次:反编译
找一个jar/class反编译程序反编译,这里推荐JD,您可以从一下地址下载http://java.decompiler.free.fr/?q=jdgui,这是一个免费的软件。

Linux里加入QQ群

其实我是一个腾讯忠实的拥护者,虽然我对腾讯在Linux平台上的表现深表遗憾。

事情很简单,在Linux上个QQ其实不难,但是是一个残缺不全的东西,例如当您希望加入一个QQ群,但悲剧地发现QQ for Linux没有这项功能,而WebQQ无论是1.0还是2.0都只支持分类和名称查找群,我相信此时您应该是比较绝望的。

不过幸好腾讯还是有“全面的”,请试着访问以下网址:

http://qun.qq.com/#jointhegroup/gid/1234567

其中1234567是QQ群号。