
java类库
前面是不断后退的路
这个作者很懒,什么都没留下…
展开
-
java集合ArrayDeque、LinkList、Stack分别分析与区别(最新)
ArrayDeque基本特征public class ArrayDeque<E> extends AbstractCollection<E> implements Deque<E>, Cloneable, Serializable1.实现了Deque使其具有作为双端队列和作为栈的能力。2.实现了Cloneable它可克隆。3.实现了Serializable表明可序列化。4.(没有实现RandomAccess,表明不支持随机原创 2020-08-05 11:12:32 · 1165 阅读 · 0 评论 -
java中对象的序列化流(ObjectOutputStream)和反序列化流(ObjectInputStream)
java.io.ObjectOutputStreamjava.io.ObjectOutputStream extends OutputStreamObjectOutputStream:对象的序列化流*作用: 把对象以流的方式,保存到文件中存储,叫写对象*构造方法:**ObjectOutputStream(OutputStream out) 创建一个写入指定的OutputStream的ObjectOutputStream。*参数:**OutputStream out:字节输出流*特有的成员方原创 2020-08-03 23:04:16 · 332 阅读 · 0 评论 -
java中OutputStreamReader和OutputStreamWriter
java.io.OutputStreamWriterjava.io.OutputStreamWriter extends WriterOutputStreamWriter是字符流通向字节流的桥梁,可使用指定的charset ,将其写入流中的字符编码为字节构造方法:*OutputStreamWriter(OutputStream out) 创建一个使用默认字符编码的OutputStreamWriter。*OutputStreamWriter(OutputStream out, String cha原创 2020-08-03 16:39:17 · 497 阅读 · 0 评论 -
java字节缓冲输出流(BufferedOutputStream)和字节缓冲输入流(BufferedInputStream)
java.io.BufferedOutputStreamjava.io.BufferedOutputStream继承关系:*FilterOutputStream extends OutputStream*BufferedOutputStream extends FilterOutputStream构造方法:*BufferedOutputStream(OutputStream out) 创建一个新的缓冲输出流,以将数据写入指定的底层输出流。*BufferedOutputStream(Outpu原创 2020-08-03 12:24:30 · 808 阅读 · 0 评论 -
java.util.Properties类 关于读取和写入的说明和测试
java.util.Properties*public class Properties extends Hashtable<Object,Object>*Properties类表示一组持久的属性。 Properties可以保存到流中或从流中加载。*Properties集合是一个唯一和IO流相结合的集合*可以使用Properties集合中的store方法,把集合中的临时数据持久化写入到硬盘中*可以使用Properties集合中的load方法,把硬盘中的文件(键值对)放到集合中使用*原创 2020-08-02 21:43:19 · 381 阅读 · 0 评论 -
java文件字符输入流(java.io.FileReader )和文件字符输出流(java.io.FileWriter )
java.io.Reader*java.io.Reader 用于读取字符流的抽象类。 子类必须实现的唯一方法是read(char [],int,int)和close()。*abstract void close() 关闭流并释放与之相关联的任何系统资源。*int read() 读一个字符*int read(char[] cbuf) 将字符读入数组。*abstract int read(char[] cbuf, int off, int len) 将字符读入数组的一部分。java.io.Fil原创 2020-08-02 16:22:07 · 340 阅读 · 0 评论 -
java中接口使用注意事项
接口使用 interface 关键字定义,没有构造方法,不能创建对象,只能定义公开静态常量和公开抽象方法。接口中所有属性都是公开静态常量,隐式使用public static final 修饰。j接口中所有方法都是公开抽象方法,隐式使用public abstract 修饰。接口中没有构造方法、动态代码块、静态代码块。java为单继承,当父类的方法种类无法满足子类需求时,可以通过实现接口扩充能力。同时, 接口支持多实现。实现接口中抽象方法时,访问修饰符必须是public接口可以声明引用,以指向实现.原创 2020-08-02 10:15:15 · 247 阅读 · 0 评论 -
java文件字节输出流(java.io.FileOutputStream)和文件字节输入流(java.io.FileInputStream)
java.io.OutputStream这个抽象类是表示字节输出流的所有类的超类。定义了一些共性成员方法:—void close() 关闭此输出流并释放与此流相关联的任何系统资源。—void flush() 刷新此输出流并强制任何缓冲的输出字节被写出。—void write(byte[] b) 将 b.length字节从指定的字节数组写入此输出流。*一次写入多个字节:*如果写的第一个字节是正数(0-127),会查询ASCII表*如果写入的第一个字节是负数,那么第一个字节会和第二个字节组成中文原创 2020-08-02 10:14:02 · 685 阅读 · 0 评论 -
java.io.File 类的相关方法详细说明和部分测试代码
java.io.File 类文件和目录路径名的抽象表示形式java把电脑中的文件和文件夹封装成了一个File类,我们可以使用File类对文件和文件夹进行操作File类是与系统无关的类,任何一个系统都可以使用它里面的方法静态修饰符----static String pathSeparator //路径分隔符,与系统相关的路径分隔符字符,为方便起见,表示为字符串。—static char pathSeparatorChar //与系统相关的路径分隔符。—static String separ原创 2020-07-31 22:32:49 · 229 阅读 · 0 评论 -
java线程的简要介绍和测试代码
线程的实现方式实现线程的第一种方式//实现线程的第一中方式,使用继承Thread来实现线程class MyThread extends Thread{ @Override public void run() { for (int i = 0; i < 50; i++) { System.out.println(Thread.currentThread().getName().toString()+"_"+i); try { Thread.sleep(500);原创 2020-07-31 16:07:43 · 133 阅读 · 0 评论 -
十大排序算法简要分析和优化过程的java代码实现
前期准备添加比较方法://两个比较大小的方法protected int cmp(int i1,int i2) { return array[i1].compareTo(array[i2]); }protected int cmp(E v1,E v2) { return v1.compareTo(v2); }//用于数组中下标为i1和i2的两个元素交换的方法protected void swap(int i1,int i2) { swapCount++; E temp=ar原创 2020-07-24 11:41:02 · 146 阅读 · 0 评论 -
二叉堆主要方法的java实现
二叉堆接口public interface Heap<E> { int size(); boolean isEmpty(); void clear(); void add(E element);//添加元素到堆 E get();//取堆顶元素 E remove();//删除堆顶元素 E replace(E element);//删除堆顶元素的同时插入一个新元素}大顶二叉堆的实现存储结构对于采用二叉树结构的堆,使用数组存储结构,可以不需要有额外的保存左右孩子节点和父亲原创 2020-07-17 15:22:39 · 276 阅读 · 0 评论 -
使用哈希表和红黑树实现映射
如图所示,使用哈希表和红黑树实现映射的存储结构如图,哈希表构造员工节点数组,存储<K,V>节点类型, 当添加节点时,通过key计算的hash值对应的数组index位置如果没有元素,就将当前节点的数据添加到该index指向的位置;若通过key计算的hash值对应的数组index位置有元素(即发生了hash碰撞),就将节点添加到以该位置元素为root节点的红黑树中。节点添加方法添加节点时如果没有发生hash碰撞,直接将元素放到对应位置,作为该位置的红黑树的根节点。如果发生碰撞,从该位置的根节原创 2020-07-11 22:22:26 · 425 阅读 · 0 评论 -
红黑树添加元素和删除元素后的处理逻辑分析
以下代码和实现思路来源于B站视频“恋上数据结构与算法”,地址: https://www.bilibili.com/video/BV13v41167ix?红黑树的性质1.节点是RED或BLACK2.根节点是BLACK3.叶子节点(外部节点,空节点)都是BLACK4.RED节点的子节点都是BLACK4.1 RED节点的parent节点都是BLACK4.2 从根节点到叶子节点的所有路径上不能有2个连续的RED节点5.从任意节点到叶子节点的所有路径都包含相同数目的BKACK节点红黑树通过将BLA原创 2020-07-06 21:34:16 · 455 阅读 · 0 评论 -
AVLTree节点失衡处理java代码
以下代码和实现思路来源于B站视频“恋上数据结构与算法”,地址: https://www.bilibili.com/video/BV13v41167ix?前期准备BinaryTree的Node节点类中添加两个方法,用于判断当前节点为其父节点的左孩子节点或右孩子节点 //判断某个节点为父节点的左子节点 public boolean isLeftChild() { return parent!=null&&parent.left==this; } public原创 2020-07-06 11:01:21 · 223 阅读 · 0 评论 -
BinarySearchTree(二叉搜索树)的java泛型实现
对于BinarySearchTree类,一般的设计思想是使用 BinaryTree类作为BinarySearchTree类的父类,在BinaryTree类中实现二叉树的通用功能,再在BinarySearchTree类中实现它的特有功能。BinaryTree类类定义中的成员:对BinaryTree类的定义使用一个内部的节点类对每个节点进行定义,包含E类的element,和三个Node类的指针left,right,parent.其中isLeaf方法和hasTwoChildren用于判断节点类型在这里原创 2020-07-05 13:10:52 · 490 阅读 · 0 评论 -
数据结构教程—哈夫曼树的构造算法
哈夫曼树算法如下(1)根据给定的n个权值,使对应节点构成n棵二叉树的森林,其中每棵二叉树都只有一个根节点,其左右子树均为空。(2)在森林中选取两棵节点权值最小的子树分别作为左右子树构造一棵新的二叉树,且置新的二叉树的根节点的权值为其左右子树上根节点的权值之和。(3)在森林中,用新得到的二叉树替代选取的两棵树。(4)重复(2)和(3),直到只含有一棵树为止,这棵树便是哈夫曼树。构造过程图如下:测试分析为了便于操作,使用数组存放二叉树,并用一个HTNode存放节点,数组下标为【0~n-1】的位置原创 2020-06-10 13:07:40 · 10531 阅读 · 0 评论