Java
学优
这个作者很懒,什么都没留下…
展开
-
Java - Collection 的 toString
经常看到 List 的 toString 的形式是 “[” 开头,", " 分隔,"]" 结尾,它的实现来自 AbstractCollection<E>:public abstract class AbstractCollection<E> implements Collection<E>public String toString() { Ite...原创 2019-12-09 23:46:30 · 619 阅读 · 0 评论 -
Dijkstra 算法:面向对象的实现方式(Java)
关于 Dijkstra 算法的介绍和面向过程的代码实现见 Dijkstra 算法:思路详解 & 代码实现 这篇博文。下面介绍使用面向对象的实现方法。基础类型:顶点:public class Vertex { private String name; public Vertex(String name) { this.name = name; ...原创 2019-12-09 23:45:51 · 185 阅读 · 0 评论 -
Java - Map 的区别 & 自定义 Map 的排序
按 Key 排序使用 TreeMap 的构造函数,传入比较器,再 putAll 将要排序的 Map 的所有元素放进去,所得的 TreeMap 即为 Map 按 Key 排序的结果。TreeMap 的构造函数如下:TreeMap()TreeMap(Comparator<? super K> comparator)TreeMap(Map<? extends K, ? ext...原创 2019-12-07 11:26:01 · 431 阅读 · 0 评论 -
Java - 查询数组(无序)返回索引的方法复杂度
5 种方法使用 List 的 contains 方法:public static boolean useList(String[] arr, String targetValue) { return Arrays.asList(arr).contains(targetValue);}使用 Set 的 contains 方法:public static boolean u...原创 2019-11-28 19:35:53 · 590 阅读 · 0 评论 -
Java - 流操作
字节流在java.io包中操作文件内容的主要有两大类:字节流、字符流,两类都分为输入和输出操作。在字节流中输出数据主要是使用OutputStream完成,输入使的是InputStream,在字符流中输出主要是使用Writer类完成,输入流主要使用Reader类完成。(这四个都是抽象类)字节输出流:OutputStreamFileOutputStream类的定义:public abstrac...原创 2019-11-01 17:25:33 · 115 阅读 · 0 评论 -
Java - 类型转换
结论:儿子变老子,用老子的东西,干儿子的事;儿子装老子,用自己的东西,干自己的事@Overridepublic boolean equals(Object o) { if (this == o) return true; if (!(o instanceof Student)) return false; Student student = (Student) o;...原创 2019-10-28 16:05:30 · 90 阅读 · 0 评论 -
Java 源码解读 - String
contains():使用了 indexOf() 方法判断字符串是否存在public boolean contains(CharSequence s) { return indexOf(s.toString()) > -1;}indexOf 最终调用如下函数:/** * Code shared by String and StringBuffer to do search...原创 2019-10-25 14:24:41 · 117 阅读 · 0 评论 -
Java - GC 垃圾回收机制
引用类型强引用 :创建一个对象并把这个对象直接赋给一个变量,不管系统资源多么紧张,强引用的对象都不会被回收,即使他以后不会再用到。软引用 :通过SoftReference修饰的类,内存非常紧张的时候会被回收,其他时候不会被回收,在使用之前要判断是否为null从而判断他是否已经被回收了。弱引用 :通过WeakReference修饰的类,不管内存是否足够,系统垃圾回收时必定会回收。虚引用 :不...原创 2019-09-17 17:19:37 · 97 阅读 · 0 评论 -
Java - 关键字
finalfinal 关键字可以应用于类,以指示不能扩展该类(不能有子类)。final 关键字可以应用于方法,以指示不能重写任何子类中的方法。一个类不能同时是 abstract 又是 final。abstract 意味着必须扩展类,final 意味着不能扩展类。一个方法不能同时是 abstract 又是 final。abstract 意味着必须重写方法,final 意味着不能重写方法。v...原创 2019-09-18 11:47:33 · 129 阅读 · 0 评论