Java 类库提供了不少常用类,可以在编程中直接调用使用。本节讲重点讲解 Arrays、StringBuilder、Calendar、Date、Math、System、Random 类以及类的常用方法。

知识点

  • Arrays
  • StringBuilder
  • Calendar
  • Date
  • Math
  • System
  • Random
  • Iterator
  • BufferedReader
  • BufferedWriter
  • Object
  • 基本类型包装类
  • String

Arrays

Arrays 类包含用于操作数组的各种方法(例如排序和搜索)。还包含一个静态工厂,允许将数组转为 List。

image.png

ArrayList
数组列表是一个存储同一类对象或具有共同超类的对象的数据结构,在程序运行时,列表可以根据需要调整大小,创建数组列表最简单的方法是调用其不带参数的构造函数(这个是集合不是数组,ArrayList代表数组集合,是一个动态的数组)

ArrayList的创建
ArrayList list = new ArrayList();

设置大小
ArrayList list = new ArrayList(20);

ArrayList list = new ArrayList(); (泛型)

add增加元素

list.add(“one”);
list.add(“two”):


Arrays实例编程

image.png

length , toSring , nextInt应该是public的方法,根据类的不同实现不同的方法

在Random下实现nextInt方法,,在Arrays下实现toString方法,Arrays应该是一个大类,用来处理数组用的。


StringBuiler类

StringBuilder 类是可变的。它是 String 的对等类,它可以增加和编写字符的可变序列,并且能够将字符插入到字符串中间或附加到字符串末尾(当然是不用创建其他对象的)

image.png

image.png

image.png

image.png

StringBuilder里面的,appened方法返回的是对象本身,执行的是添加字符串的操作。
——链式编程
如果返回的是对象本身,就可以继续调方法。

image.png


Calendar

在早期的 JDK 版本中,Date 类附有两大功能:

  1. 允许用年、月、日、时、分、秒来解释日期。
  2. 允许对表示日期的字符串进行格式化和句法分析。

在 JDK1.1 中提供了类 Calendar 来完成第一种功能,类 DateFormat 来完成第二项功能。DateFormat 是 java.text 包中的一个类。与 Date 类有所不同的是,DateFormat 类可以接受用各种语言和不同习惯表示的日期字符串。
但是 Calendar 类是一个抽象类,它完成 Date 类与普通日期表示法之间的转换,而我们更多的是使用 Calendar 类的子类 GregorianCalendar 类。它实现了世界上普遍使用的公历系统。当然我们也可以继承 Calendar 类,然后自己定义实现日历方法。
先来看一看 GregorianCalendar 类的构造函数:
image.png


Date

Date 类表示日期和时间,里面封装了操作日期和时间的方法。Date 类经常用来获取系统当前时间。
来看看类 Date 中定义的未过时的构造方法:


image.png

image.png

image.png


Math包

Math 类在 java.lang 包中,包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。

image.png
image.png

这里是通过类名直接调用方法,说明这些方法是static修饰的,直接归属于类所有,而非对象所有。

image.png

image.png


System

System 类提供了以下功能:

  • 标准输入,标准输出和错误输出流;
  • 访问外部定义的属性和环境变量;
  • 加载文件和库的方法;
  • 以及用于快速复制数组的实用方法。

System 不可以被实例化,只可以使用其静态方法。

System的静态方法:

image.png

image.png

image.png

利用System.currentTimeMillis();
检测程序运行时间

image.png


Random

Random 类用于生成伪随机数流,在 java.util包下。


Iterator

Java Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法,可用于迭代ArrayList和HashSet等集合。

迭代器 it 的两个基本操作是 next 、hasNext 和 remove。
调用 it.next() 会返回迭代器的下一个元素,并且更新迭代器的状态。
调用 it.hasNext() 用于检测集合中是否还有元素。
调用 it.remove() 将迭代器返回的元素删除。
Iterator 类位于 java.util 包中,使用前需要引入它,语法格式如下:

image.png

image.png

循环集合元素

image.png

image.png
image.png

删除元素,删除集合中的元素可以用remove方法。

image.png

这里的
Iterator it = numbers.iterator();
Integer i = it.next();

这里的 i 和 it 都指向同一个引用,就是numbers。

不用new开辟新的内存空间都是引用传递。。

image.png


BufferedReader

BufferedReader和BufferedWriter简介为了提高字符流读写的效率,引入了缓冲机制,进行字符批量的读写,提高了单个字符读写的效率。BufferedReader用于加快读取字符的速度,BufferedWriter用于加快写入的速度

BufferedReader和BufferedWriter类各拥有8192个字符的缓冲区。当BufferedReader在读取文本文件时,会先尽量从文件中读入字符数据并放满缓冲区,而之后若使用read()方法,会先从缓冲区中进行读取。如果缓冲区数据不足,才会再从文件中读取,使用BufferedWriter时,写入的数据并不会先输出到目的地,而是先存储至缓冲区中。如果缓冲区中的数据满了,才会一次对目的地进行写出。

BufferedReader
BufferedReader是为了提供读的效率而设计的一个包装类,它可以包装字符流。可以从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。

构造方法

image.png

成员方法

image.png


Object类

所有的类都继承Object类,Object类中能使用的方法,所有类都能使用

image.png

在System类中有println方法,println方法输出的是s.toString

所以我们要搞清楚toString方法的返回值

在这里toString方法的返回值是,
类的字符串表示,所以我们要在类中,重写toString方法。

image.png

image.png

equals()方法

在Object中,equals()方法比较的是两个对象的地址是否相同,但这并不能满足我们的需求,我们需要比较对象内的内容是否相同,所以我们要重写equals方法

image.png
在IDEA中按Alt + Ins就可以了


基本类型包装类

image.png

将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据常用操作之一:用于基本数据类型与字符串之间的转换。

image.png


String类

image.png