Liny_@NotePad

沉迷ACG中

一个简陋的SWT个人资料界面 = =..

在SWT的教程上看到的一个练习~于是照着敲……截图如下: 

java.lang.String.split()中的|

实验split("|")失效,
百度发现有如下:

关于点的问题是用 string.split("[.]") 解决。
关于竖线的问题用 string.split("\\|")解决。
关于星号的问题用 string.split("\\*")解决。
关于斜线的问题用 string.split("\\\\")解决。
关于中括号的问题用 string.split("\\[\\]")解决。

SigarException: Unable to find sigar.jar

搞了一晚上 终于知道是什么原因了囧

jar包的问题 囧 去官网下一个1.6.3以后的版本覆盖sigar.jar即可。

SVN地址:http://svn.hyperic.org/projects/sigar_bin/dist/SIGAR_1_6_3/lib/

编号141,昨天凌晨3点才修复的 无比囧

读写properties

新建一个java.util.Properties对象p,

第一步加载properties:

try {
        p.load(new FileInputStream(new File(CONFIG_PATH)));
} catch (IOException e) {
        e.printStackTrace();
}

读取操作很简单,直接调用它的getProperty方法:

p.getProperty("admin_password")

写操作需要一个FileWriter:

try {
        FileOutputStream out = new FileOutputStream(new File(CONFIG_PATH));
        p.setProperty(key, value);
        p.store(out, key);
        out.close();
} catch (IOException e) {
        e.printStackTrace();
}

p.setProperty方法设置key键的属性值为value,store方法存储。

每次都必须new FileOutputStream,因为文件会被清空 = = 不知有什么比较简单的方法。

扩展SWT遇到Subclassing not allowed

囧 百度了下 package要放到org.eclipse.swt.widgets下才行……

同时只能运行一个程序实例的实现

做软工作业的机房管理系统,各个计算机要有一个监听自身信息的客户端,于是就牵出了一个同时只能运行一个实例的问题。

其实想想也很简单。因为对于现在应用的各个操作系统,都有端口存在,而一个端口只能被一个程序所占用,

因此,在实例化之前只需要启动一个Socket去连接该应用程序所占用的端口,如果能连接上表示该端口已经启动了一个ServerSocket,

不能连接上则启动一个ServerSocket来占用它即可。

但是有个小缺陷:有可能别的程序也占用了该端口,因此很考验RP 。 - -

ThreadPoolExecutor的使用

一个 ExecutorService,它使用可能的几个池线程之一执行每个提交的任务,通常使用 Executors 工厂方法配置。
线程池可以解决两个不同问题:由于减少了每个任务调用的开销,它们通常可以在执行大量异步任务时提供增强的性能,并且还可以提供绑定和管理资源(包括执行集合任务时使用的线程)的方法。每个 ThreadPoolExecutor 还维护着一些基本的统计数据,如完成的任务数。

定时启动线程

假设我们要令一个线程定时启动(譬如从今天晚上23点15分开始,隔1秒钟启动一次)
可以使用java.util包中的Timer类,详细用法大家可以查下API。