- 浏览: 34922 次
- 性别:
- 来自: 广州
文章列表
一、 单例模式
官方定义:Ensure a class has only onstance , and provide a gobal point of access to it.(确保毛一个类只有一个实例,而且自行实例化并向整个系统提供这个实例)
通俗说:在古代,一个国家只能有一个皇帝,皇帝每天要上朝 ...
作为一个程序员或一个软件工程师,hash(散列)必然是熟解的。
对于百万级,甚至更多的数据的数据,我们如何实现存储并不太难,可我们要实现快速的增添查找删,显然普通的数组和链表是满足不了的。数组可以满足快速的查 ...
刚结束暑期培训也近一周了,东忙西搞的也没干什么正事,瞎忙了一顿,前天看起了黄仁宇的《黄河青山》,了解一番高人的见解。昨天接到胡(和谐)总的QQ信息,忽也觉得自己该停下来,总结一番了(套用胡(和谐)总的话)。 ...
一、压缩
思路:一个文件中,都会出现重复的字节,有些字节出现的次数多,有些字节出现的次数少,这样我们就可以根据出现次数的多少,构造哈夫曼树,并进行编码,出现次数越多的编码长度越短,出现次数越少的编码长度越长。而我们有知道一个英文字母占用一个byte,一个中文占用两个byte。我们将文件中的字节化为对应的编码后,形成01串,每次取八个01串写入压缩后的文件。因为编码的长度大多情况下都比文件中数据占用bit数更少,所以就文件就压缩了。
具体步骤:
①、统计文件中字节出现的次数
②、根据次数构建哈弗曼树
③、获取每个结点的哈弗曼编码
④将字节用01字符数组表示
...
一、构建最优二叉树
①、节点类:五个属性:结点的数据、父结点、左子结点、右子结点、赫夫曼编码
/**
* 树的结点类
*
* @author lenovo
*
*/
public class TreeNode {
private Object obj; // 数据
private TreeNode parent; // 父结 ...
一、树的基本结构
树,是可以表示任意含有层次结构的数据结构。每棵树只有一个根结点,根结点下可以有任意的子结点,子结点又可以有任意个子结点,如此反复,若子结点下无子结点的子结点,则此结点称为叶,但每个结点只有一个父结点。
一下主要讨论的是二叉树,二叉树即每个结点最多有两个子结点。除根结点与叶结点外每个结点有父结点、子结点。对于构建一个二叉树的结点类,我们可定义四个属性,分别是:结点的数据、父结点、左子结点、右子结点。
/**
* 树的结点类
*
* @author lenovo
*
*/
public class TreeNode {
pri ...
链表是非连续、无顺序的数据结构,链表中元素与元素之间的内存地址没有顺序关系。链表由一个个结点组成,结点中存储两类信息,第一类是存储入结点的数据,第二类是结点的指向。链表分为单项链表,双向链表,环形链表,单项链表中只有一个结点指向,指向的的下一个结点的内存地址,只能单向移动,单项操作;双向链表有两个结点指向,一个指向上一个结点的内存地址(父结点),另一个指向下一个结点的内存地址(子结点),可以双向运动,双向操作;环形链表其实是双向链表的首位结点相连。
对于链表,其好处是可以避免浪费内存空间,节省内存资源,不想数组定长会不可避免的浪费内存空间,不可以连续读取,连续操作,但是其大小可以动态改变。 ...
一.游戏编写的背景
为加深对多线程的理解与运用,熟悉多线程的机制,编写了坦克大战这一个小游戏。其中实现了多个线程的控制及线程的监听功能。通过着以游戏的开发,确实加深了我对多线程的理解,也加深了对键盘监 ...
1.单线程与多线的区别:
单线程的特点:调用的函数一个随另一个函数的结束二开始,如:public void A(){ B(); C();},必须得B函数结束后,C()函数才开始,即函数按顺序调用。
多线程的特点:让多个函数并行执行,故与之单 ...
(文件数据的写入顺序要与读取顺序一致)
一.用自定义的队列保存图像与读取图像
由于在画图板上每画一种图形,就相当于在自定义的队列中装入此图形,那么在保存画图板图形时,就只需从自定义队列中获取每个图形的基本属性,如颜、点的坐标,图形的种类,然后将这些基本信息写入文件,存储到硬盘。不过先要写入图形的个数,方便打开时获得队列的长度。
打开保存的图形时,只需要定义一个自定义队列,在从保存的文件中读取图形的中种类,根据种类不同,分别读取图形的属性,颜色、坐标,创建具有这些属性的图形队形,装入到队列中去。然后再根据队列中的装入的图形,通过draw方法画出来。
保存:
...
1.异常?
异常情况是指程序在运行时,可能由于外部系统的条件的改变而导致程序可能出错的情况。
2.异常的分类。
异常(Throwable):①错误:Error
②异常:<1>运行异常 <2>强制检测异常
3.一般解决异常的两种方法
①try…catch机制:
try {
boolean b4 = file.createNewFile();
System.out.println("是否创建:" + b4);
} catch (Exception ef) {
ef.pr ...
基于文件的基本操作,编写了一个简单的文件搜索程序
1.界面
package fileFound;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
/**
* 文件的查找登陆界面
*
* @author lenovo
*
*/
public cla ...
基本对文件的基本操作,编写了一个简单的文件统计程序
1.界面
package fileCount;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
/**
* 文件的统计登陆界面
*
* @author lenovo
*
*/
public class FileCountUI extends JFrame {
public static void main(String arg ...
基于对文件输入输出流的一些简单应用,编写了一个文件复制程序(提醒:单核CPU慎用,占用CPU太多)
以下是源代码:
1.界面
package file.iostream;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
/**
* 文件的复制登陆界面
*
* @author lenovo
*
*/
public class FileCopyUI extends JFrame{
pu ...
1.List:有序的 collection(也称为序列)。此接口可以对列表中每个元素的插入位置进行精确地控制。可以根据元素的在列表中的位置访问元素,并搜索列表中的元素。列表允许重复的元素。 ArrayList: 特点:有序的、线性的、无固定大小的、有下标的、先进先出 简单操作应用:
public static void main(String args[]) {
// 创建一个队列对象
java.util.ArrayList<String> list = new java.util.ArrayList<String>();
/ ...