- 浏览: 17357 次
- 性别:
文章列表
1.首先是客户端和服务端的过滤器要一致,此问题容易导致异常:
java.nio.charset.MalformedInputException
//创建接受数据的过滤器
DefaultIoFilterChainBuilder chain = connector.getFilterChain();
//设定这个过滤器将一行一行(/r/n)的读取数据
chain.addLast("myChin", new ProtocolCodecFilter(new TextLineCodecFactory()));
//这个是传递字符串用的解码器,屏蔽掉
c ...
最近学习了通信协议方面的知识,可谓收获很多。总结一句话:无协议不通信,可想定义协议是多么重要的一件事啊。协议有很多种,例如TCP/IP,UDP,ARP,OICQ,HTTP等等。
对于协议的学习,有一个很有趣的软件wires ...
1.通信原理
服务器端 1.先建立一个ServerSocket,等待客户端连接
2.当有客户端连接时,建立连接,为连接多个客户端,我们创建一个线程处理客户端发来的请求
3.完成通信后,服务器关闭此连接
//根据端口号实例化ServerSocket类的一个对象
ServerSocket server = new ServerSocket(8888);
while(flag){
// 等待客户机连接进入,进入后实例化一个客户机Socket对象
Socket client = server. ...
最优二叉树之哈弗曼树
哈弗曼树是一类带全路径最短的树,所以又称为最优二叉树。构造这种树的算法最早是由哈弗曼提出,这种树在现在有着广泛的应用。例如文件压缩啦,信息检索啦...
下面先谈谈哈弗曼树的构建,举个例子来说吧。根据一段字符串构建一棵哈夫曼树,出现的每个字符都代表着树叶的值,字符出现的次数代表其权值,下面是具体的步骤:
1.根据字符和出现的次数(权值)创建节点,并把节点都存放到一个队列中。
2.每次从队列中取出2个权值最小的节点作为左,右子数构建一个新的节点,新的节点的权值为他们两个权值的和。
3.将新的节点加入到刚才的队列中,删除原来两个权值最小的节点。
...
文件各种流和复制
1.字节流
通过读取字节的方式进行文件的输入和输出,用到的类为InputStream和OutputStream,
相应的操作就是调用相应的方法,下面为示例代码,都比较简单
1)输入流应用代码
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class InputDemo {
/**
* 主函数
* @throws IOExcepti ...
文件小知识
1.文件的创建和删除
运用File类的createNewFile()和delete()方法
示例代码如下:
import java.io.File;
import java.io.IOException;
public class FileDemo {
/**
* 主函数
*
*/
public static void main(String[] args) {
// 创建一个File对象
File f = new File("g:\\test.txt");
if (!f.exists()) {
...
1.什么是链表
链表是一种物理储存单元上非连续,非顺序的储存结构,链表由一系列节点组成,节点可以在运行
时动态生成。每个节点包括两个部分:一个是储存元素数据的数据域,另一个是储存下一个节点地址的指针域。
2.链表的构建
下面以一个双向链表为例构建链表
首先定义一个链表接口,代码如下:
public interface NodeLinkedListInterface {
/**
* 添加节点的方法
*
* @param node新添加的节点对象
*/
public abstract void add(Node node);
/**
* 在 ...
队列总结
1.为什么要使用队列?
由于数组的长度是固定的,因此对于要再添加数据的情况下,数组就不能使用了,因此要用
队列来实现
2.队列的定义
1)首先要定义队列接口
示例如下代码:
public interface JavaList<E>{
//获取队列长度
public int size();
//向队列尾部添加元素
public void add(E e);
//获取指定下标位置的元素
public E get(int index);
}
2)队列的实现
示例如下代码:
public class CustomList<E& ...
数组总结
1.数组是什么?
数组是一个能存放多个相同类型数据且长度固定的容器,是java最基本的数据结构。
2.数组的定义方法
有三种,常用的就两种:
1.数据类型 [ ]数组名=new 数据类型[长度];
如:int [ ]array=new int[10];
2.数据类型 [ ]数组名={数据1,数据2,...};
如:int [ ]array={1,3,4,2,5};
第三种不常用,定义方式如下:
数据类型 [ ]数组名=new 数据类型[ ]{数据1,数据2,...};
如:int [ ]array=new int[ ]{ ...
1.什么是线程?
线程可以理解为“程序内部一个独立的运行单位”。学习多线程之前,我们编写的程序
都是单线程,基本模式如下:
public void ma(){
mb();
mc();
System.out.println("执行了"+ma);}
public void mb(){
md();
System.out.println("执行了"+mb);}
public void mc(){
System.out.println("执行了"+mc);}
public void md(){
System.out.p ...
类的继承
1.类的继承的格式:
public class 子类名 extends 父类名{}
2.继承到了什么:
子类继承了父类所有的方法和属性,调用的时候需要分情况
说明。
1.子类和父类在同一个包下:
默认的、受保护的、公有的属 ...
Swing组件是java中的图形组件,用来开发图形界面的。
1.常用的两类组件
1)容器组件(可以存放其他组件)
如: JFrame 窗体类
JPanel 面板类
JMenuBar 菜单栏类
JMenu 菜单类
2)元素组件
如: JLable 标签类
JButton 按钮类
JTextField 输入框类
JPasswordField 密码输入框类
JCheckBox 复选框类
JComboBox 下拉框类
JMenuItem ...
类和对象
1.什么是类?什么是对象?
类:具有相同或相似的特征的一类事物的总称,如人,篮球
对象:指的是具体的某一实物,如北京水立方,北京故宫
2.类的定义
定义格式:
public class 类名{}
注意:类名要与文件名一致
3. ...
这片文章主要关于统计每个字符在字符串中出现次数的程序算法,下面
是我的代码示例:public class Count {
public static void main(String[] args) {
String str = "euriyui3743289^%^&*&DJHK2312";
Count count = new Count();
for (int i = 0; i < str.length(); i++) {
int n = 0;
for (int j = 0; j < i; j++) { ...
1.java基本数据类型
大致可以分为两类即原始类型和对象类型,后者是由类产生的对象类型。
下面具体详解一下原始类型,原始类型共有8种(如下):
1.byte 字节型 8bits -2^7~2^7-1
2.int 整型 32bits -2^31~2^31-1
3.short 短整型 16bits -2^15~2^15-1
4.long 长整型 64bits -2^63~2^63-1
5.char 字符型 16bits 0~2^16-1
6.float 浮点型 32bit ...