
java日记
liuwons
混,也是一种追求
展开
-
类中的成员以及块
Java语言中的变量定义中有类变量和实例变量之分。 类变量用static修饰符修饰,没有用static修饰的是实例变量。 类变量属于类,而实例变量则是属于每个创建了的实例的。 类变量在类装入时建立并初始化,类变量属于类,不论基于这个类创建了多少个实例(或没有实例),类变量在内存中只保持一份。而实例变量是属于实例的,在实例创建时建立和初始化,每一个实例都会在内存中保持一份属于自己的实例变量。 虽然原创 2012-12-05 18:24:21 · 18527 阅读 · 0 评论 -
KWIC系统之事件架构实现(行存储类,行存储包装类,行存储改变事件)
package kwic.es;import java.util.ArrayList;@SuppressWarnings("unchecked")public class LineStorage{//存储的是ArrayList类的对象,每个对象又封装了一个ArrayList对象,存储一个字符串中的单词序列//存储格式:行、单词、字母三级结构,即字符串序号,单词序号,字母序号三级读写结构privat原创 2012-12-05 18:24:41 · 19762 阅读 · 0 评论 -
关于类的成员与继承的一些思考
在定义类时,类体中除了可以包含变量与方法之外,还可以包含静态初始化块、实例初始化块和构造方法。其中变量和方法称为类的成员。类的成员可以通过类或者类的实例访问或调用,而静态初始化块、实例初始化块和构造方法只能在类装入或者实例创建是由系统隐含调用。 一个类除了自己在类体中定义的成员外,还能够从其直接超类和直接超接口中继承一些成员。 超类中声明为private的成员不会被子类继承。若超类和子类不在同一原创 2012-12-05 18:24:17 · 18880 阅读 · 0 评论 -
KWIC系统之事件架构实现(排序模块,拆分模块,输入模块)
package kwic.es;import java.util.Observable;import java.util.Observer;//排序器,将所有字符串按照字典序排序//监听拆解后字符串集public class Alphabetizer implements Observer{ public void update(Observable observable, Object arg原创 2012-12-05 18:24:39 · 20344 阅读 · 0 评论 -
关于Java中的流
Java2中定义了两种类型的流:字节流和字符流。 字节流为处理字节的输入输出提供了方便的方法。字符流为字符的输入输出处理提供了方便。它们采用了统一的编码标准,因而可以实现国际化。但是在最底层,所有的输入输出都是字节形式的。基于字符的流只为处理字符提供方便的方法。 字节流在底层有两个抽象类InputStream和OutputStream,每个抽象类都有多个具体的子类,这些子类对不同的原创 2012-12-05 18:24:28 · 18743 阅读 · 0 评论 -
关于Java中的编码
Java中使用的是Unicode编码,所以,字符串都是以Unicode码的方式存储的,而代码的识别也是以Unicode解码方式,所以有时利用输入法输入时可能会产生编译时系统不能解码的错误(比如全角的标点符号)。 Java中的String类提供通过字节数组创建字符串的构造器,这里字节数组内的数据被看作字符的码值。但是同一个码值用不同的解码方式解码会产生不同的结果。所以在利用字节数组创建字符原创 2012-12-05 18:24:19 · 18685 阅读 · 0 评论 -
基于管道过滤器的KWIC系统实现(4)
package lws;import java.io.CharArrayWriter;import java.io.IOException;import java.util.ArrayList;import java.util.Iterator;public class LineTransformer extends Filter{ public LineTransformer(Pipe i原创 2012-12-05 18:25:11 · 20347 阅读 · 0 评论 -
基于管道过滤器的KWIC系统实现(3)
package lws;import java.util.ArrayList;import java.util.Iterator;import java.io.CharArrayWriter;import java.io.IOException;public class Alphabetizer extends Filter{ public Alphabetizer(Pipe input,原创 2012-12-05 18:25:09 · 20034 阅读 · 0 评论 -
Java编写的多线程端口扫描器
Java中的ServerSocket(int port)可以创建本机指定端口的ServerSocket对象,如果创建失败(端口已经被占用,即系统已经创建了此端口的监听对象实体),因此可以用一个ServerSocket对象逐个创建探测,考虑到端口太多,一个线程执行太慢,所以利用了多线程,整个程序运行时间大约为5-10秒。 要注意每个线程中试探的端口号都不能超过0-65535的范围,还需注意释原创 2012-12-05 18:25:00 · 22247 阅读 · 1 评论 -
KWIC系统之事件架构实现(输出模块,单词统计类,单词存储类)
package kwic.es;//打印函数包装类//类中包装了两个公有方法:打印经拆分器和排序器处理后的字符串集,以及打印统计后的单词集public class Output{ //打印经过拆分器和排序器处理后的字符串结果集 //传入参数为要打印的LineStorageWrapper类的对象 public void print(LineStorageWrapper shift_storage)原创 2012-12-05 18:24:43 · 20056 阅读 · 0 评论 -
KWIC系统之事件架构实现(主程序)
用事件体系结构实现KWIC系统,要求有交互功能,从控制台用键盘输入命令。 主程序如下:package kwic.es;//进程总控制器,初始化资源并触发用户输入监听管理public class KWIC{ public void execute(){ //定义两个字符串容器 //lines存储用户已经输入的字符串,也就是原始字符串 //shifts存储已经处理好了的字符串,原创 2012-12-05 18:24:37 · 22543 阅读 · 0 评论 -
数据的底层存储
数据在硬件底层的存储格式为补码存储。 整数的补码为其原码,而负数的补码为其原码逐位求反(符号位)除外后加1。 程序在运行时,存储或者提取数据,底层硬件都会将其按照指定的格式转化。而运算都是利用补码执行相应的运算后再转化提交。 以下为一个实验:package com.test.codetest;public class NumTest { public static void main(St原创 2012-12-05 18:24:25 · 19119 阅读 · 0 评论 -
基于管道过滤器的KWIC系统实现(2)
package lws;abstract public class Filter implements Runnable{ protected Pipe input_; protected Pipe output_; private boolean is_started_ = false; public Filter(Pipe input, Pipe output){ inp原创 2012-12-05 18:25:07 · 20349 阅读 · 0 评论