![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
天天编程
文章平均质量分 87
wdhdmx
这个作者很懒,什么都没留下…
展开
-
Arrays源码理解
1.equals public static boolean equals(int[] a, int[] a2){ if (a==a2) return true; if (a==null || a2==null) return false; int length = a.length...原创 2011-08-15 20:34:50 · 70 阅读 · 0 评论 -
crc循环校验原理和实现
1.CRC简介CRC(cyclical redundancy check) 循环冗余校验,在《计算机组成原理》里面有这个知识点。类似的校验有奇偶校验。 可以简单的理解成在发送数据后面加上这个验证码,判断前面数据是否正确。 根据需要的校验位数不同,有 CRC8、CRC16、CRC32、CRC128 ...再以后就不用这个乐,可以使用md5校验。 2.简介CRC校验步骤...原创 2012-03-29 23:33:37 · 979 阅读 · 0 评论 -
Properties源码理解
Properties用来读配置文件的对象,用的很多。 使用方法 // 新建一个对象 Properties pro = new Properties(); // 加载字节流 pro.load(new FileInputStream("abc.txt")); // 取值 System.out.println(pro.getProper...2012-07-05 12:23:57 · 289 阅读 · 0 评论 -
字符流(二)BufferedReader和BufferedWriter源码理解
1.BufferedReader1.1 继承关系public class BufferedReader extends Reader {//这个又是装饰模式private Reader in;}1.2 构造方法public BufferedReader(Reader in) { this(in, defaultCharBufferSize);}...2011-11-27 20:33:46 · 162 阅读 · 0 评论 -
字符流(一)Reader和Writer源码理解
1.Reader1.1 继承关系public abstract class Reader implements Readable, Closeable{}//下面是两个接口所需要实现的类public interface Readable { public int read(java.nio.CharBuffer cb) throws IOException;}...2011-11-27 20:32:49 · 125 阅读 · 0 评论 -
DataInputStream和DataOutputStream源码理解
1.FilterInputStream简介列出主要的内容。public class FilterInputStream extends InputStream { //对象引用 protected volatile InputStream in; protected FilterInputStream(InputStream in)...2011-11-17 00:02:57 · 157 阅读 · 0 评论 -
InputStream,OutputStream源码理解
1.理解字节流和字符流按流的形式分:字节流和字符流。字节流的两个顶峰:InputStream 和OutputStream字符流的两个顶峰:Reader Writer字节流可以处理二进制数据的。字符流不能处理二进制数据,字符流的底层是字节流实现的。流是一种资源,打开后记得关闭。流的来源和去向是 文件、网络和内存 本文说明InputStream,FileIn...2011-11-09 22:50:47 · 104 阅读 · 0 评论 -
File源码理解
1.构造函数最基本的构造方法。public File(String pathname) { if (pathname == null) { throw new NullPointerException(); } //将文件路径转为正常状态 this.path = fs.normalize(pathname); //计...2011-11-07 23:55:26 · 132 阅读 · 0 评论 -
HashMap源码理解
看看HashMap对应的源码。1.类、接口关系public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable克隆和序列化不懂,先看Map。2.实现的接口 Mappublic int...2012-01-30 21:33:15 · 62 阅读 · 0 评论 -
StringUtils源码理解(下)
本文介绍StringUtils的剩下的两个方法1.计算两个字符串相似度1.1实现简单介绍实现原理可参考计算字符串相似度算法——Levenshtein这里的算法区别在于:存差异值的数组由上文中的二维数组,变成这个实现的两个一维数组,并通过不断的交换数值来实现。1.2源码理解//计算两个字符串的差异值public static int g...2012-01-16 15:46:22 · 100 阅读 · 0 评论 -
StringUtils源码理解(中)有点意思的方法
这次不按照前面的介绍了,方法都大同小异,下面就介绍几个有意思一点的方法1.left,取左边几个字符同理,有 right方法,有mid方法,取中间几个。实现都是用substring实现例如:StringUtils.left("abc", 0) = ""StringUtils.left("abc", 2) = "ab"StringUtils.left("abc", 4)...2012-01-12 00:17:50 · 190 阅读 · 0 评论 -
StringUtils源码理解(上)
StringUtils 源码,使用的是commons-lang3-3.1包。下载地址 http://commons.apache.org/lang/download_lang.cgi 在看的时候建议简单的看一下标题即可,知道一下这个类中有哪些方法就够了。 1.构造方法public StringUtils() { super();} 它的...2012-01-11 23:08:08 · 264 阅读 · 0 评论 -
Thread源码理解
1.首先看一下Runnable接口,只有一个run方法。 Thread方法继承Runnable接口。package java.lang;public interface Runnable { public abstract void run();}2.看一下Thread实现的run()方法。//target 为传入线程的对象priv...2011-10-23 14:36:32 · 109 阅读 · 0 评论 -
StringBuffer源码理解
StringBuffer 存储和操作字符串它所继承实现的类和接口public final class StringBuffer extends AbstractStringBuilder implements java.io.Serializable, CharSequence 一.构造函数1.public StringBuffer( )构造一个其中不带字符的字符...原创 2011-06-22 19:39:52 · 242 阅读 · 0 评论 -
泛型简单回顾
泛型的简介 1.java引入泛型的好处是安全简单。2.没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。3.泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是...原创 2011-09-06 23:36:54 · 73 阅读 · 0 评论 -
LinkedList源码理解
LinkedList源码0.首先这个类中的两个变量private transient Entry<E> header = new Entry<E>(null, null, null);private transient int size = 0;下面的这个size就不用说了,是大小,现在先着重看看 Entry<E> header,...2011-08-31 00:26:47 · 93 阅读 · 0 评论 -
Vector源码理解
Vector类1.系统的变量//记录元素的数组protected Object[] elementData;//上面数组的空间长度protected int elementCount;//有效元素数protected int capacityIncrement;2.构造函数 构造方法中主要内容 this.elementData = new...原创 2011-08-29 23:44:59 · 84 阅读 · 0 评论 -
ArrayList源码理解
构造方法: 这个类中有一个Object[]的对象来存储数据,代码是:this.elementData = new Object[initialCapacity];//存储对象的数组 initialCapacity默认是10,这个elementData定义的时候用transient定义,不知道什么意思。size为集合的长度int。默认没有给值,所以是0。 ...2011-08-15 21:02:20 · 85 阅读 · 0 评论 -
fastcgi中的多线程使用
0.背景在项目中加入了等待通讯的内容,所以原来单个请求处理时间增加了。单线程处理的fcgi就会浪费CPU和用户时间,所以需要多线程来处理,减少用户排队时间。将处理用户请求的部分从单线程变为多线程,需要大概了解改动会不会影响性能。得到的结论是:多线程和单线程在执行的流程和使用方法几乎一样,所以多线程不会带来额外的负担。1.单线程的处理步骤1.1一个简单的单线程fcgi请求...原创 2012-04-06 22:38:43 · 704 阅读 · 0 评论