Java的闭包与final关键字

Java下的闭包(Closure):

public static Runnable outter_func(){
    final String param=System.getenv("PATH");
    Runnable r=new Runnable(){
        public void run(){
            System.out.println(param);
        }
    };
    return r;
}

r.run();

这是在Java里面使用“闭包”的一个例子。run()相当于Python里的__call__()。可以看到在run()方法里可以使用外层函数的变量。这是怎么做到的呢?答案是,Java在编译的时候做了手脚。r这个类其实还有一个隐藏的属性叫做“var$param”,在run()里面所有的param被Java编译器偷偷替换成var$param。此外在r实例化完成后,Java还调用了:

r.var$param=param

假设param不是使用final修饰的变量,当param指向了另外一个对象的时候,r.var$paramparam就不是相同的了,这就会产生了语义上的问题。因此,闭包绑定的本地变量必须使用final修饰。

类型:Java,创建时间:十二月 31, 2011, 12:25 a.m. 点击查看完整内容。。。
使用Python开发应用时字符编码很麻烦

最近开发了一个命令行的Python程序,在Windows下和终端编码设置为zh_CN.GBK的Linux控制台下运行都会出现乱码问题。查看了一下代码,主要是因为我使用了raw_input()输入的字符被我使用socket直接发送到了Java平台进行处理。这个在发送的时候进行一下处理倒也不是很难得事,不过还要取得当前操作系统的字符编码设置,然后在每个输入的位置进行转码,很麻烦。而这样的事本应该由编程语言帮我们解决的。幸好Python3K已经在这方面做得不错了。

IT业存在着太多的分歧,整个软件业在这一方面浪费了很多力量。多种语言、多种平台、多种字符集。可以说软件业无时无刻都在和这些“不一样”做斗争。不知道有没有人统计一下这种浪费所占的百分比?

类型:Python,创建时间:十二月 31, 2011, 12:21 a.m. 点击查看完整内容。。。
Linux最近终于有了走向联合的趋势,很好

最近的两个新闻:

显示了Linux阵营正在走向联合,而不是像以前Ubuntu那样的分裂。同时,Linux阵营正在组建越来越多的标准化组织,比如标准化桌面。我觉得这是一件非常好的事。Linux想要发展,这是必由的道路。相信到最后,各个Linux发行版之间会只剩下界面方面的细微差别,软件开发真正编译一次,到处运行

类型:LinuxApp,创建时间:十二月 31, 2011, 12:21 a.m. 点击查看完整内容。。。
电子证书在现实世界的使用,以及CXF如何支持SSL.

这是一篇很长的文章。首先介绍了SSL的概况,解释一些基本的概念。然后又介绍了SSL的基础——非对称加密技术。短短的篇幅结束以后,就以一个现实世界的例子开始我们的安全之旅。

如果你碰到这些问题,看看这篇文章一定值。

  1. 怎么样制作一份自己的电子证书。
  2. 怎么样使用openssl以及Java的keytool工具来制作电子证书。
  3. 制作电子证书太麻烦,本文提供了一Python脚本,以向导的方式制作电子证书。
  4. 如何配置Tomcat,让它支持TLS,也就是https协议。
  5. Web Service客户端使用电子证书来验证服务器的身份。
  6. Web Service客户端提交电子证书,让服务器也可以验证客户端的身份。
  7. 吊销客户端的电子证书。禁止CXF客户端访问服务器。
类型:Java,创建时间:十二月 30, 2011, 6:14 p.m. 点击查看完整内容。。。
cxf开发实践(服务器)

本文介绍使用CFX开发一个WebService服务器的几个基本步骤。

  1. 安装CFX
  2. 像平常一样开发一个供本地代码调用的Java类。
  3. 通过添加JAX-WS将这个Java类变成一个WebService服务
  4. 使用java2wsdl工具生成WSDL文件。
  5. 使用wsdl2java工具生成客户端代码
  6. 配置服务运行环境
  7. 测试客户端代码
类型:Java,创建时间:十二月 30, 2011, 12:39 p.m. 点击查看完整内容。。。
关于NTFS

NTFS是自Windows NT之后微软操作系统所使用的文件系统。和FAT相比,NTFS更安全。一者NTFS有类似于UNIX系统的ACL,其控制选项甚至比UNIX的多一些。二者NTFS分区比较不怕掉电,对于错误的恢复能力比较强.

本文介绍了几个NTFS的实用技巧。另外介绍了如何用convert命令把FAT分区转换成NTFS分区。

类型:随感,创建时间:十二月 30, 2011, 5:22 p.m. 点击查看完整内容。。。