Liny_@NotePad

沉迷ACG中

SCJP复习笔记之修饰符。。

看一下记一下。。有很多以前没有注意到的地方……

使用文件锁防止多个应用。。

 原先发的是通过占用固定端口来判断程序是否重复打开,显然很容易和其他应用程序的端口冲突,

在研究Java能不能访问系统内核对象之前。。先用比较简单的方法:对一个文件加锁来防止多个应用重复打开。

这个方法的缺陷是需要另一个文件参与。

一个简单的非阻塞通讯DEMO。。。

nio的Channel + Selector实现,1服务端+n客户端
内容是客户端向服务端发送信息,服务端组播给所有客户端,并没有做客户端异常退出时的处理 - -。
写了一晚上终于。。囧无比……
由于设置interestOps时直接覆盖了原来的标记,没有做或操作,导致只能读一次,还查了半天 TAT。

具体流程是:
服务端 bind->关注OP_ACCEPT-->accept---->关注OP_READ------------------>READ信息,关注WRITE--------------->组WRITE
客户端 ---->关注OP_CONNECT-->connect-->关注OP_READ|OP_WRITE-->WRITE信息,取消关注OP_WRITE-->READ信息

乍看之下很Observer,但是实际上是Reactor(不同之处在于前者只与单个事件源关联,后者则是将事件分派到各自的处理程序中,与多个事件源关联)。

这样循环。。。客户端除了第一次connect关注了WRITE之外其他都是直接调用channel.write直接从通道输出。
(第一次connect时也可以,这里是为了演示如何发送OP_WRITE的……)
要注意OP_WRITE事件发生后要记得取消(register & ~OP_WRITE),因为OP_WRITE总是准备好的。。很容易卡住。

nio.Buffer小记

完全用数组来理解。。@ _ @

看了下Buffer的源码 居然跟想象的差不多也 ^^,的确是用数组存储,不过米有找到get和put的源码……

统计代码行数。。

话说之前直接用eclipse的代码行数统计,但是只能统计文件所有行数,不能统计具体的代码,我按照VC的那个统计行数的插件仿着写了个。。

统计指定扩展名下的总行数、纯代码行数、纯注释行数、代码混合注释行数、空行数以及非空行数。

eclipse统计代码行数。。

打开Search中的File Search,
在containg text中输入\n,
勾选Regular expression(正则表达式),
File name patterns则输入*.java(如果有其他的想算进去可以继续, *.js, *.jsp……),
如果是统计选中的资源(可以是多个),则Scope选择selected resources;
如果要统计选中的项目(可以是多个),Scope选中Enclosing Projects即可。

OFFICE 2007 每次都安装配置。。

将C:\Program Files\Common Files\Microsoft Shared\OFFICE12\Office Setup Controller下的setup.exe重命名或删除即可 Orz。

VMware下装Ghost XP。。

手头上米有系统盘 于是只好装GHOST。。

直接选择安装到第一分区的话 会报错找不到硬件。。

因此装的时候要先用分区魔术师分区一下(同时设置C盘为活动分区),再安装即可。。