- 博客(27)
- 资源 (30)
- 问答 (1)
- 收藏
- 关注
原创 C++中的指针与引用
C++中在函数未被调用时,函数的形参并不占有实际的内存空间,也没有实际的值。只有函数被调用时才为形参分配存储单元,并将实参与形参相结合。每个实参都是一个表达式,其类型必须与形参相符。函数的参数传递指得就是形参与实参结合的过程,形参与实参结合的方式有值传递和引用传递。 值传递是指当发生函数调用时,给形参分配内存空间,并用实参来初始化形参(直接将实参的值传递给形参)。这一过程是参数值的单向传递
2012-12-05 18:25:26 18727
原创 基于管道过滤器的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 20248
原创 基于管道过滤器的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 19957
原创 基于管道过滤器的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 20254
原创 基于管道过滤器的KWIC系统实现(1)
基于管道过滤器的KWIC系统实现。 实现噪声单词过滤以及首单词大写功能。package lws;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayLis
2012-12-05 18:25:05 22076 1
原创 Java编写的多线程端口扫描器
Java中的ServerSocket(int port)可以创建本机指定端口的ServerSocket对象,如果创建失败(端口已经被占用,即系统已经创建了此端口的监听对象实体),因此可以用一个ServerSocket对象逐个创建探测,考虑到端口太多,一个线程执行太慢,所以利用了多线程,整个程序运行时间大约为5-10秒。 要注意每个线程中试探的端口号都不能超过0-65535的范围,还需注意释
2012-12-05 18:25:00 22202 1
原创 SurfaceView绘制触摸轨迹闪烁问题的最终解决方案
由于SurfaceView使用双缓存机制,两张画布轮流显示到屏幕上。那么,要存储触摸轨迹并避免两张画布内容不一致造成的闪烁问题,完全可以利用保存绘制过程并不断重新绘制的方法解决闪烁,而且这样还顺带解决了多次试验中偶尔出现的因为moveTo()函数不能读取到参数执行默认设置(参数设为上次的触摸点)而出现的断线连接闪烁问题,详细代码如下:package com.tobacco.touchdraw;
2012-12-05 18:24:56 21475 1
原创 SurfaceView绘制触摸轨迹闪烁的解决方法二
这里利用一个Path对象保存所有的触摸轨迹:package com.tobacco.touchdraw;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.
2012-12-05 18:24:54 20169
原创 SurfaceView绘制触摸轨迹出现闪烁的解决方法一
这里利用两个path保留对上一个canvas绘制内容,代码如下:package com.tobacco.touchdraw;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android
2012-12-05 18:24:52 20603
原创 SurfaceView闪烁问题的根源-双缓存机制
上篇中提到了SurfaceView绘制触摸轨迹时出现的闪烁问题,这里就说明下产生这种困扰的根源——双缓存机制。 Android中的SurfaceView在更新视图时,为了提高更新效率,加强用户体验,采用了双缓存机制。 Android的官方说明有:Note: On each pass you retrieve the Canvas from the SurfaceHolder,
2012-12-05 18:24:50 29037 2
原创 SurfaceView绘制触摸轨迹时的闪烁问题
今天在处理触屏轨迹的绘制时,用到了SurfaceView,建立Path对象,在点击时开始设置Path对象,滑动过程中记录触摸点,离开后重新设置Path对象,因不能阻塞主线程,所以新建了一个子线程来不断刷新屏幕,也就是将path不断绘制。但是,接着就出现了一个问题:屏幕中每条轨迹线的终点都会有一小段直线段不断闪烁。猜测可能是lockCanvas()获取的对象区域不一样,就试着使用了lockCanva
2012-12-05 18:24:48 20525 1
原创 Android线程通信
在第一次启动一个Android程序时,Android会自动创建一个称为主线程的线程,即UI线程。该线程主要是负责控制UI界面的显示、更新和控件交互。例如,在屏幕上按下一个按钮后,UI线程会把这个事件分发给被按按钮,接着按钮设置它自身为被按下状态并向事件队列发送一个无效请求。UI线程会把这个请求移出事件队列并通知按钮在屏幕上重新绘制自身。 在开发Android应用程序时必须遵守单线程模型的原则
2012-12-05 18:24:45 18931
原创 KWIC系统之事件架构实现(输出模块,单词统计类,单词存储类)
package kwic.es;//打印函数包装类//类中包装了两个公有方法:打印经拆分器和排序器处理后的字符串集,以及打印统计后的单词集public class Output{ //打印经过拆分器和排序器处理后的字符串结果集 //传入参数为要打印的LineStorageWrapper类的对象 public void print(LineStorageWrapper shift_storage)
2012-12-05 18:24:43 19998
原创 KWIC系统之事件架构实现(行存储类,行存储包装类,行存储改变事件)
package kwic.es;import java.util.ArrayList;@SuppressWarnings("unchecked")public class LineStorage{//存储的是ArrayList类的对象,每个对象又封装了一个ArrayList对象,存储一个字符串中的单词序列//存储格式:行、单词、字母三级结构,即字符串序号,单词序号,字母序号三级读写结构privat
2012-12-05 18:24:41 19710
原创 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 20260
原创 KWIC系统之事件架构实现(主程序)
用事件体系结构实现KWIC系统,要求有交互功能,从控制台用键盘输入命令。 主程序如下:package kwic.es;//进程总控制器,初始化资源并触发用户输入监听管理public class KWIC{ public void execute(){ //定义两个字符串容器 //lines存储用户已经输入的字符串,也就是原始字符串 //shifts存储已经处理好了的字符串,
2012-12-05 18:24:37 22480
原创 关于Java中的流
Java2中定义了两种类型的流:字节流和字符流。 字节流为处理字节的输入输出提供了方便的方法。字符流为字符的输入输出处理提供了方便。它们采用了统一的编码标准,因而可以实现国际化。但是在最底层,所有的输入输出都是字节形式的。基于字符的流只为处理字符提供方便的方法。 字节流在底层有两个抽象类InputStream和OutputStream,每个抽象类都有多个具体的子类,这些子类对不同的
2012-12-05 18:24:28 18716
原创 数据的底层存储
数据在硬件底层的存储格式为补码存储。 整数的补码为其原码,而负数的补码为其原码逐位求反(符号位)除外后加1。 程序在运行时,存储或者提取数据,底层硬件都会将其按照指定的格式转化。而运算都是利用补码执行相应的运算后再转化提交。 以下为一个实验:package com.test.codetest;public class NumTest { public static void main(St
2012-12-05 18:24:25 19073
原创 类中的成员以及块
Java语言中的变量定义中有类变量和实例变量之分。 类变量用static修饰符修饰,没有用static修饰的是实例变量。 类变量属于类,而实例变量则是属于每个创建了的实例的。 类变量在类装入时建立并初始化,类变量属于类,不论基于这个类创建了多少个实例(或没有实例),类变量在内存中只保持一份。而实例变量是属于实例的,在实例创建时建立和初始化,每一个实例都会在内存中保持一份属于自己的实例变量。 虽然
2012-12-05 18:24:21 18501
原创 关于Java中的编码
Java中使用的是Unicode编码,所以,字符串都是以Unicode码的方式存储的,而代码的识别也是以Unicode解码方式,所以有时利用输入法输入时可能会产生编译时系统不能解码的错误(比如全角的标点符号)。 Java中的String类提供通过字节数组创建字符串的构造器,这里字节数组内的数据被看作字符的码值。但是同一个码值用不同的解码方式解码会产生不同的结果。所以在利用字节数组创建字符
2012-12-05 18:24:19 18662
原创 关于类的成员与继承的一些思考
在定义类时,类体中除了可以包含变量与方法之外,还可以包含静态初始化块、实例初始化块和构造方法。其中变量和方法称为类的成员。类的成员可以通过类或者类的实例访问或调用,而静态初始化块、实例初始化块和构造方法只能在类装入或者实例创建是由系统隐含调用。 一个类除了自己在类体中定义的成员外,还能够从其直接超类和直接超接口中继承一些成员。 超类中声明为private的成员不会被子类继承。若超类和子类不在同一
2012-12-05 18:24:17 18850
原创 一些实用的电脑小技巧
87.关闭windows的文件保护 默认状态下是无法删除windows系统和程序文件的,所以警告!!!!!!!!!!!!!!!! 注册表:HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\WindowsNT\Curren tVersion \winlogon 中的“SFCDisable”将它的值改为“ffffff9d” 88.windowsXP的内存优化!!!!!!!
2012-12-05 18:24:13 18731
原创 一些实用的电脑小技巧(1)
电脑高手的140个电脑小技巧1. 重装Windows XP不需再激活 如果你需要重装Windows XP,通常必须重新激活。事实上只要在第一次激活时,备份好Windows\System32目录中的Wpa.dbl文件,就不用再进行激活的工作了。在重装Windows XP后,只需要复制该文件到上面的目录即可。 2. 如何知道自己的Windows XP是否已激活 打开开始→运行,在弹出的对话
2012-12-05 18:24:11 19187
原创 一些实用的快捷键
winkey+d : 这是高手最常用的第一快捷组合键。这个快捷键组合可以将桌面上的所有窗口瞬间最小化,无论是聊天的窗口还是游戏的窗口……只要再次按下这个组合键,刚才的所有窗口都回来了,而且激活的也正是你最小化之前在使用的窗口! winkey+f : 不用再去移动鼠标点“开始→搜索→文件和文件夹”了,在任何状态下,只要一按winkey+f就会弹出搜索窗口。 winkey+r : 在我
2012-12-05 18:24:06 18409
原创 ASCII码表
Bin Dec Hex 缩写/字符 解释 0000 0000 0 00 NUL (null) 空字符 0000 0001 1 01 SO
2012-12-05 18:24:04 18464
原创 qriority_queue应用
#include #include #includeusing namespace std;class student{ private: int score; int finance; public: void set(int x,int y
2012-12-05 18:23:52 18817
原创 gcc对于大数的溢出截断
gcc编译器对于大整数常数的溢出截断操作,视为此大整数在更大类型上的补码截断为当前类型。 test.c void test(){ unsigned char a=257; char b=-129; char c=130; char d=255;}D:\>gcc -S test.c -o test.s > test.txttest.c: 在函数‘
2012-12-02 16:10:31 22316
Python搭建的web接口聊天机器人
2016-01-25
Qt写的Windows下屏幕录制程序源码
2014-05-30
Qt实现的Windows远程控制软件(服务器端+客户端)
2014-04-30
java学习资源-经典java小程序代码合集
2012-05-15
HexDump源码
2012-05-15
C++ Windows程序设计入门
2012-04-04
Java编写的MVC模式小系统
2012-04-04
SUN公司Java培训教材(中文版)
2012-04-03
Java程序员应该具备的技能
2012-03-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人