乙巳🐍年

acc8226 的博客

Object 类

java.lang.Object 作为所有 Java 类的祖先,编译系统默认继承 Object 类,Object 类包含了所有 Java 类的公共属性和方法。

  • Object() 构造方法
  • getClass():Class<?>
  • public boolean equals(Object obj) 比较两对象封装的数据是否相等;而比较运算符“==”在比较两对象变量时,只有当两个对象引用指向同一对象时才为真值。
  • hashCode()
  • public String toString() 该方法返回对象的字符串描述,建议所有子类都重写此方法。如果没有覆盖toString()方法,默认的字符串是 “类名@对象的十六进制哈希码”
  • wait(), wait(long), wait(long, int) 让当前线程进入阻塞状态
  • notify(), notifyAll 唤醒阻塞状态的线程
  • protected Object clone() 克隆对象
  • protected void finalize() 该方法 Java 垃圾回收程序在删除对象前自动执行。不建议开发者直接调用

hashCode 方法的说明

哈希码(hashCode),每个 Java 对象都有哈希码(hashCode)属性,哈希码可以用来标识对象,提高对象在集合操作中的执行效率。

小技巧:为了减轻书写重复 equals 和 hashCode 代码的负担,不建议手巧,而是可借助 IDEA 自动的生成功能和一些公共的类库进行辅助工作,例如使用 google/guava: Google core libraries for Java 来做生成这两方法。

阅读全文 »

数组在计算机语言中是非常重要的集合类型,大部分计算机语言中数组具有如下三个基本特性:

  1. 一致性:数组只能保存相同数据类型元素,元素的数据类型可以是任何相同的数据类型。
  2. 有序性:数组中的元素是有序的,通过下标访问。
  3. 不可变性:数组一旦初始化,则长度(数组中预分配的元素个数)不可变。

一维数组

格式 1(推荐采用):元素类型[] 数组名;

格式 2:元素类型 数组名[];

数组元素的类型可以是基本类型,也可以是类或接口。

数组初始化

声明完成就要对数组进行初始化,数组初始化的过程就是为数组每一个元素分配内存空间。一旦初始化之后数组的长度就确定下来不能再变化了。

数组初始化可以分为静态初始化和动态初始化。

阅读全文 »

对于 Java 5 之前程序员而言,使用集合经常会面临一个很尴尬的问题:放入一个种特定类型,但是取出时候全部是 Object 类型,于是在具体使用时候需要将元素强转换为特定类型。但是强制类型转换是有风险的,如果不进行判断就臆断进行类型转换会发生 ClassCastException 异常。

泛型的引入可以将这些运行时异常提前到编译期暴露出来,这增强了类型安全检查。Java 5 之后提供泛型(Generics)支持,使用泛型可以最大限度地重用代码、保护类型的安全以及提高性能。泛型特性对 Java 影响最大是集合框架的使用。

阅读全文 »

File 类

将文件和文件夹封装成对象,方便操作文件和文件夹

1
2
3
File(String pathname); 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。 
File(String parent, String child); 根据parent路径名字符串和 child 路径名字符串创建一个新 File 实例。   
File(File parent, String child); 根据parent抽象路径名和 child 路径名字符串创建一个新 File 实例。

提示:所有在 java.io 中的类都将相对路径名解释为以用户工作目录开始,你可以通过调用 System.getProperty("user.dir") 来获得这个信息

警告: 由于反斜杠字符在 Java 字符串中是转义字符,因此要确保在 Windows 风格的路径名中使用 \\(例如,C:\\Windows\\win.ini)。在 Windows 中,还可以使用单斜杠字符(C:/Windows/win.ini),因为大部分 Windows 文件处理的系统调用都会将斜杠解释成文件分隔符。但是,并不推荐这样做,因为 Windows 系统函数的行为会因与时俱进而发生变化。因此,对于可移植的程序来说,应该使用程序所运行平台的文件分隔符,我们可以通过常量字符串 java.io.File.separator 获得它。

阅读全文 »

完整的流家族

IO(Input Output)流

  • IO 流用来处理设备之间的数据传输
  • Java 对数据的操作时通过流的方式
  • Java 用于操作流的对象都在 IO 包中
  • 流按操作数据分为两种: 字节流和字符流
  • 流按类型分为: 输入流, 输出流

IO 流常用基类

  • 字节流的抽象基类对象: InputStream, OutputStream
  • 字符流的抽象基类对象: Reader, Writer

注:有这四个类派生出来的子类名称都是由其父类名作为子类名的后缀

如: InputStream 的子类 FileInputStream
如: Reader 的子类 FileReader

阅读全文 »
0%