丙午🐎年

acc8226 的博客

Java 是彻底的、纯粹的面向对象语言。面向对象是 Java 最重要的特性。本章将介绍面向对象基础知识。

特点:

  • 相对面向过程而言,面向对象和面向过程都是一种思想

  • 将功能封装进对象,强调具备了功能的对象。

  • 是一种符合人们思考习惯的思想,可以将复杂的事情简单化,将程序员从执行者转换成了指挥者

  • 面向对象的开发过程:其实就是不断的创建对象,使用对象,指挥对象做事情。

  • 面向对象的设计过程:其实就是在管理和维护对象之间的关系。

面向对象的特征:

  • 封装(encapsulation):封装能够使外部访问者不能随意存取对象的内部数据,隐藏了对象的内部细节,只保留有限的对外接口。外部访问者不用关心对象的内部细节,使得操作对象变得简单。
  • 继承(inheritance)
  • 多态(polymorphism):指在父类中成员变量和成员方法被子类继承之后,可以具有不同的状态或表现行为。
阅读全文 »

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 获得它。

阅读全文 »
0%