摘要:
java的引用类型 引用类型 无论是通过引用计数算法判断对象的引用数量,还是通过可达性分析算法判断对象是否可达,判断对象是否可被回收都与引用有关。 Java提供了四种强度不同的引用类型。 强引用 被强引用关联的对象不会被回收。 使用new一个新对象的方式来创建强引用。 软引用 被软引用关联的对象只有 阅读全文
摘要:
Hash冲突 对象Hash的前提是实现equals()和hashCode()两个方法,那么HashCode()的作用就是保证对象返回唯一hash值,但当两个对象计算值一样时,这就发生了碰撞冲突。 开放地址法 开放地执法有一个公式:Hi=(H(key)+di) MOD m i=1,2,…,k(k<=m 阅读全文
摘要:
哈夫曼树及哈夫曼编码 哈夫曼树 给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。 树节点间的边相关的数叫做权。 从树中的一个节点到另一个节点之间的分支 阅读全文
摘要:
01背包问题 问题描述 一个旅行者有一个最多能装m公斤的背包,现在有n中物品,每件的重量分别是W1、W2、……、Wn,每件物品的价值分别为C1、C2、……、Cn, 需要将物品放入背包中,要怎么样放才能保证背包中物品的总价值最大? 思路 假设前n个物品,总承重为j,物品的重量为w,其最大价值为v[n, 阅读全文
摘要:
Java IO 概述 Java的I/O大概可以分成以下几类: 磁盘操作:File 字节操作:InputStream和OutputStream 字符操作:Reader和Writer 对象操作:Serializable 网路操作:Socket 新的输入/输出:NIO 磁盘操作:File 字节操作:Inp 阅读全文
摘要:
Java对象的复制三种方式 概述 在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能 会需要一个和A完全相同新对象B,并且此后对B任何改动都不会影响到A中的值,也就是说,A与B是两个独立的对象,但B的初始值是由A对象确定的。例如下面程序展示的情况: 阅读全文
摘要:
TCP三次握手和四次挥手 TCP首部格式 序号 :用于对字节流进行编号,例如序号为 301,表示第一个字节的编号为 301,如果携带的数据长度为 100字节,那么下一个报文段的序号应为 401。 确认号 :期望收到的下一个报文段的序号。例如 B 正确收到 A 发送来的一个报文段,序号为 501,携带 阅读全文
摘要:
搭建轻量级Java Web框架 MVC(Model-View-Controller,模型-视图-控制器)是一种常用的设计模式,可以使用这个模式将应用程序进行解耦。 IOC 通过Controller注解来定义Controller类,在该类中,可通过Inject注解定义一系列Service成员变量,这就 阅读全文
摘要:
Java并发 Java线程 线程的状态 新建(New) 创建后尚未启动。 可运行(Runnable) 可能正在运行,也可能正在等待CPU时间片 包含了操作系统线程状态中的Running和Ready 阻塞(Blocked) 等待获取一个排它锁,如果其他线程释放了锁就会结束此状态 无限期等待(Waiti 阅读全文