目录

Life in Flow

知不知,尚矣;不知知,病矣。
不知不知,殆矣。

File、Directory

File  通常以计算机硬盘为载体存储在计算机上的信息集合,可以是 ⽂本、图 ⽚、视频、程序等,⽂件 ⼀般有拓展名,表示 ⽂件的类型。 Directory  为了便于对 ⽂件进 ⾏存取和管理,⽂件 ⽬录是由 ⽂件 ⽬录项组成的。⽂件 ⽬录分为 ⼀级 ⽬录、⼆级 ⽬录和多级 ⽬录。多级 ⽬录 结构也称为树形结构,在多级 ⽬录结构中,每 ⼀个磁盘有 ⼀个根 ⽬录,在根 ⽬录中可以包含 若 ⼲ ⼦ ⽬录和 ⽂件,在 ⼦ ⽬录中不但可以包含 ⽂件,⽽且还可以包含下 ⼀级 ⼦ ⽬录。 转义符 反斜杠(\)是 ⼀个特殊的字符,被称为转义字符,⽤来转义后 ⾯ ⼀个字符。转义后的字符通常 ⽤于表示 ⼀个不可 ⻅的字符或具有特殊含义的字符,⽐如 \n 则表示换 ⾏,?问号 ," 则表示 双引号,' 表示 ⼀个单引号 等 在 Java 中的字 ⺟前 ⾯加上反斜线""来表示常 ⻅的那些不能显示的 ASCII 字符,我们称之为转 义字符。 相对路径 相对某个基准 ⽬录或者 ⽂件的路径, ./ 表示当前路径; ../ 表示上级 ⽬录。 绝对路径 存储在硬盘上的真正路径 window 路径分割符  \....

《 The Definitive Guide to NightElf》

该文章已经加密。

HashCode、Equals

HashCode 方法 顶级类 Object⾥ ⾯的 ⽅法,所有类都是继承 Object 的,返回值 int 类型。 根据 ⼀定的 hash 规则(存储地址,字段,或者 ⻓度等),映射成 ⼀个数值,即散列值。 Equals 方法 顶级类 Object⾥ ⾯的 ⽅法,所有类都是继承 Object 的,返回值 boolean 类型。 根据 ⾃定义的匹配规则,⽤于匹配两个对象是否 ⼀样, ⼀般逻辑是如下: 重写规则如下: /** * 1、判断地址是否⼀样 * 2、⾮空判断和class类型判断 * 3、强转 * 4、对象里面的字段一一匹配 */ @Override public boolean equals(Object o) { //判断地址是否一样 if (this == o) { return true; } //⾮空判断和class类型判断 if (o == null || getClass() != o.getClass()) { return false; } //强转 Student student = (Student) o; //对象里面的字段一一匹配 return ....

Objects工具类

Objects 工具类 jdk1.7 引进的 ⼯具类,都是静态调 ⽤的 ⽅法,jdk1.8 新增了部分 ⽅法。 重点方法 equals:⽤于字符串和包装对象的 ⽐较,先 ⽐较内存地址,再 ⽐较值 String str1 = "abc"; String str2 = "abc"; System.out.println(Objects.equals(str1, str2)); //true deepEquals:数组的 ⽐较,先 ⽐较内存地址,再 ⽐较值,如 String/char/byte/int 数组, 或者包 装类型 Integer 等数组。 String[] arr1 = {"aa", "bb", "cc"}; String[] arr2 = {"aa", "bb", "cc"}; System.out.println(Objects.deepEquals(arr1,arr2)); //true hashCode:返回对象的 hashCode,若传 ⼊的为 null,返回 0 System.out.println(Objects.hashCode("abc"))....

Comparable排序接口

Comparable 是 ⼀个接 ⼝,定制排序规则。 对实现它的每个类的对象进 ⾏整体排序,⾥ ⾯ compareTo ⽅法是实现排序的具体 ⽅法。 比如 TreeSet、SortedSet、Collections.sort() ⽅法调 ⽤进 ⾏排序。 String、Integer 等类默认实现了这个接 ⼝,所以可以排序(看源码)。 Comparable 适合于排序规则固定的情况,Comparator(匿名内部类)适合于排序规则变化的情况。 public interface Comparable<T> { public int compareTo(T o); } POJO 类需要实现 Comparable 接口 package com.javase.demo; import lombok.AllArgsConstructor; import lombok.Data; @AllArgsConstructor @Data public class Student implements Comparable{ private String name; private int....

Collections工具类

Collections  Java⾥关于集合的 ⼯具类,包含有各种有关集合操作的静态多态 ⽅法,不能实例化(把构造函 数私有化)。 Collection 与 Collections 区别 Collection 是接 ⼝,提供了对集合对象进 ⾏基本操作的通 ⽤接 ⼝ ⽅法,List、Set 等多种具体的 实现类。 Collections 是 ⼯具类,专 ⻔操作 Collection 接 ⼝实现类 ⾥ ⾯的元素。 常见方法 排序 @Test public void collectionsIteratorTesting() { ArrayList<String> list = new ArrayList<>(); list.add("bbb"); list.add("aaa"); list.add("ccc"); System.out.println(list);////不指定排序,默认按照自然升序排序 [aaa, bbb, ccc] Collections.sort(list,Comparator.naturalOrder()); //升序 [aaa, bbb,....

Iterator(迭代器)

循环遍历集合 //普通for循环 for (int i = 0; i < list.size(); i++) {} //增强for循环 for (String str : list) {} 迭代器(Iterator)  Iterator 是 Java 中的 ⼀个接 ⼝,核 ⼼作 ⽤就是 ⽤来遍历容器的元素,当容器实现了 Iterator 接 ⼝后,可以通过调 ⽤ Iterator()⽅法获取 ⼀个 Iterator 对象。  因为容器的实现有多种,不同的容器遍历规则不 ⼀样,⽐如 ArrayList/LinkedList/HashSet/TreeSet 等,所以设计了 Iterator 接 ⼝,让容器本身去实 现这个接 ⼝,实现 ⾥ ⾯的 ⽅法,从 ⽽让开发 ⼈员不 ⽤关系容器的遍历机制,直接使 ⽤对应的 ⽅法即可。 核心方法 //⽤于判断iterator内是否有下个元素,如果有则返回true,没有则false boolean hashNext() //返回iterator的下⼀个元素,同时指针也会向后移动1位 Obejct next() //删除指针的上⼀个元素(容易出问题....