实习2天的总结
1、long start = System.currentTimeMillis();以毫秒的形式获取当前时间。
2、ReentrantLock 将由最近成功获得锁,并且还没有释放该锁的线程所拥有。当锁没有被另一个线程所拥有时,调用 lock 的线程将成功获取该锁并返回。如果当前线程已经拥有该锁,此方法将立即返回。可以使用 isHeldByCurrentThread() 和 getHoldCount() 方法来检查此情况是否发生。
3、ByteArrayOutputStream out = req.getBytes();
??? byte[] buf = out.toByteArray();
??? 创建一个新分配的 byte 数组。其大小是此输出流的当前大小,并且缓冲区的有效内容已复制到该数组中。
4、??ByteArrayOutputStream out = new ByteArrayOutputStream();
????? DataOutputStream dout = new DataOutputStream(out);
????? 创建一个新的数据输出流,将数据写入指定基础输出流。
5、readInt()读取四个输入字节并返回一个int值。
??? readByte()读取并返回一个输入字节
??? readLong()读取八个输入字节并返回一个Long值
??? readDouble()读取八个输入字节并返回一个Double值
??? readFloat()读取八个输入字节并返回一个Float值
6、 read()从输入流中读取下一个数据字节
7、一个大类里面包含很多的内部静态类,这样做的目的就是尽量把一些有关联的类放在一起,以免写过多的零散的小类