Javase阶段API总结

API

StringBuilder\StringBuffer

作用:

可变的字符串对象,提供了操作字符串一些方法,拼接时效率更高,会使用该对象。拼接时不会创建新的字符串对象

创建对象:

//public StringBuilder()    创建一个空白的可变的字符串对象,不包含任何内容
//public StringBuilder(String str)  创建一个指定字符串内容的可变字符串对象

常见方法:

//public StringBuilder append(任意类型) 添加数据并返回StringBuilder对象本身
//public StringBuilder reverse()    将对象的内容反转
//public int length()    返回对象内容长度
//public String toString()   通过toString()就可以实现把StringBuilder转换为String

Math

作用:

数学类,工具类,提供了一些数学运算的方法

常见方法:

// 1、public static int abs(int a):取绝对值(拿到的结果一定是正数)
// 2、public static double ceil(double a): 向上取整
// 3、public static double floor(double a): 向下取整
// 4、public static long round(double a):四舍五入
// 5、public static int max(int a, int b):取较大值
//   public static int min(int a, int b):取较小值
// 6、 public static double pow(double a, double b):取次方
// 7、public static double random(): 取随机数 [0.0 , 1.0) (包前不包后)

System

作用:

系统类,工具类,提供了操作当前系统的方法

常见方法:

// 1、public static void exit(int status):   终止当前运行的Java虚拟机。
//该参数用作状态代码; 按照惯例,非零状态代码表示异常终止。
​
// 2、public static long currentTimeMillis():    获取当前系统的时间
//返回的是long类型的时间毫秒值:指的是从1970-1-1 0:0:0开始走到此刻的总的毫秒值,1s = 1000ms

BigDecimal

作用:

大小数类,解决浮点型运算时出现的精度丢失问题

创建对象:

// 1、把浮点型数据封装成BigDecimal对象,再来参与运算。
// a、public BigDecimal(double val) 得到的BigDecimal对象是无法精确计算浮点型数据的。 注意:不推荐使用这个,
// b、public BigDecimal(String val)  得到的BigDecimal对象是可以精确计算浮点型数据的。 推荐使用。

常见方法:

// 2、public BigDecimal add(BigDecimal augend): 加法
// 3、public BigDecimal subtract(BigDecimal augend): 减法
// 4、public BigDecimal multiply(BigDecimal augend): 乘法
// 5、public BigDecimal divide(BigDecimal b): 除法 //注意:如果除不尽,就会报错ArithmeticException
// 6、public BigDecimal divide(另一个BigDecimal对象,精确几位,舍入模式:RoundingMode.HALF_UP) : 除法,可以设置精确几位。
// 7、public double doubleValue() : 把BigDecimal对象又转换成double类型的数据。

jdk1.8之前的时间日期类(不推荐,不做介绍)

jdk1.8开始时间日期类(推荐)

LocalDate

作用:

代表年月日星期

LocalTime

作用:

代表时分秒纳秒

LocalDateTime

作用:

代表年月日时分秒纳秒

创建对象:

// 01、获取本地日期和时间对象 now()。
// 02、获取指定日期和时间的LocalDateTime对象:// public static LocalDateTime of(int year, Month month, int dayOfMonth, int hour)

常见方法:

// 1、可以获取日期和时间的全部信息
// getYear getMonthValue getDayOfMonth getDayOfWeek().getValue()获取周几 getHour getMinute getSecond getNano
// 2、修改时间信息:
// withYear withMonth withDayOfMonth withDayOfYear withHour
// withMinute withSecond withNano
// 3、加多少:
// plusYears  plusMonths plusDays plusWeeks plusHours plusMinutes plusSeconds plusNanos
// 4、减多少:
// minusDays minusYears minusMonths minusWeeks minusHours minusMinutes minusSeconds minusNanos
// 6、 判断2个日期、时间对象,是否相等,在前还是在后: equals、isBefore、isAfter
// 7、可以把LocalDateTime 转换成 LocalDate和LocalTime
// public LocalDate toLocalDate()
// public LocalTime toLocalTime()
// 8、LocalDate和LocalTime 转换成 LocalDateTime
// public static LocalDateTime of(LocalDate date, LocalTime time)

Zoneld

作用:

代表时区对象

创建对象:

// public static ZoneId of(String zoneId) : 把某个时区id封装成ZoneId对象。 America/New_York

常见方法:

// public static Set getAvailableZoneIds(): 获取Java支持的全部时区Id
// public static ZoneId systemDefault(): 获取系统默认的时区

ZonedDateTime

作用:

代表是时区时间对象

创建对象:

// public static ZonedDateTime now(ZoneId zone): 获取某个时区的ZonedDateTime对象。
// public static ZonedDateTime now():获取系统默认时区的ZonedDateTime对象

常见方法:

// getXxx()获取  withXxx(时间)修改  minusXxx(时间)减少  plusXxx(时间)增加

Instant

作用:

代表时间戳对象

创建对象:

// 1、public static Instant now(); 创建Instant的不可变对象,获取此刻时间戳信息,世界标准时间

常见方法:

// 2、public long getEpochSecond();获取从时间原点开始记录的总秒数
// 3、public int getNano(); 获取当前时间戳对象中不够1秒的纳秒数

DateTimeFormatter

作用:

时间格式化解析类

创建对象;

//public static DateTimeFormatter ofPattern(时间格式)  获取格式化器对象

常见方法:

//public String format(时间对象) 格式化时间
LocalDateTime类中的方法://public static LocalDateTime parse(CharSequence text, DateTimeFormatter formatter)  解析时间

Period

作用:

代表年月日时间间隔对象

创建对象;

// 1、public static Period between(LocalDate start, LocalDate end); 创建Period对象,封装两个日期对象。

常见方法:

// 2、通过period对象获取两个日期对象相差的信息。public int getYears(); public int getMonths(); public int getDays();

Duration

作用:

代表时分秒时间间隔对象

创建对象:

// 1、public static Duration between(开始时间对象1,截止时间对象2); 得到Duration对象

常见方法:

// 2、获取两个时间对象间隔的信息 toxxx()

Arrays

作用:

操作数组的工具类

常见方法:

// 1、public static String toString(类型[] arr): 返回数组的内容
// 2、public static 类型[] copyOfRange(类型[] arr, 起始索引(包含), 结束索引(不包含)) :拷贝数组
// 3、public static 类型[] copyOf(类型[] arr, int newLength):拷贝数组,可以指定新数组的长度。
// 4、public static void sort(类型[] arr):对数组进行排序(默认是升序排序)

集合

Collection单列集合

常见方法:

//public boolean add(E e):  把给定的对象添加到当前集合中 。
//public void clear() :清空集合中所有的元素。
//public boolean remove(E e): 把给定的对象在当前集合中删除。
//public boolean contains(Object obj): 判断当前集合中是否包含给定的对象。
//public boolean isEmpty(): 判断当前集合是否为空。
//public int size(): 返回集合中元素的个数。
//public Object[] toArray(): 把集合中的元素,存储到数组中。
//public boolean addAll(Collection c): 把一个集合的全部数据倒入到另一个集合中去。

三种遍历方式:

迭代器遍历
增强for遍历
forEach遍历(Lambda简化)

List单列集合

特点:

元素存取有序、可重复、有索引

常见特有方法:

//public void add(int index, E element): 在某个索引位置插入元素。
//public E remove(int index): 根据索引删除元素,返回被删除元素
//public E get(int index): 返回集合中指定位置的元素。
//public E set(int index, E element): 修改索引位置处的元素,修改成功后,会返回原来的数据

特有遍历方式:

普通for遍历

ArrayList单列集合

特点:

元素存取有序、可重复、有索引

数据结构:

数组结构,查询快、增删慢

底层原理:

1.创建集合对象时,先创建一个长度为0的数组
2.当添加第一个元素时,再创建一个长度为10的数组,将元素添加到第一个位置
3.元素添加满,再创建长度为原数组1.5倍的新数组,并将原数组元素拷贝新数组中
4.如果一次添加多个元素,1.5存不下时,创建一个长度为实际长度的数组

LinkedList单列集合

特点:

元素存取有序、可重复、有索引

数据结构:

双向链表结构,查询慢、增删快,对收尾元素的增删改查都极快

底层原理:

1.存储每个元素时,都会创建一个结点对象,该对象中会存储元素本身的值、上结点的地址值、下结点的地址值
2.如果在增删元素时,破坏结点原有指向、建立结点新的指向,增删效率较高
3.如果查询元素时,只能从头节点、尾结点,依次查找,查询效率较低,但对首尾元素操作效率极高

常见特有方法:

//public void addFirst(E e)    在该列表开头插入指定的元素
//public void addLast(E e)  将指定的元素追加到此列表的末尾
//public E getFirst()  返回此列表中的第一个元素
//public E getLast()   返回此列表中的最后一个元素
//public E removeFirst()   从此列表中删除并返回第一个元素
//public E removeLast()    从此列表中删除并返回最后一个元素

Set单列集合

使用:

几乎没有自己特有的方法,都是使用Collection中的方法 及 三种遍历方式

HashSet单列集合

特点:

无序、不重复、无索引

底层原理:

1.创建HashSet对象时,先创建一个长度为16的数组
2.添加元素时,会调用该对象的hashCode(),获取哈希值,和数组长度取余计算存储位置
3.判断该位置是否有元素,没有是null,直接存
4.如果有,调用该对象的equals(),和已经存储的元素一一对比,相等:直接不存(不重复原理),不相等:1.8之前挂载在老元素上面  1.8开始挂载在老元素下面
5.1.8开始后,挂载的链表如果过长>8,且数组长度>=64,会将链表转为红黑树结构
加载因子0.75,如果数组存储的元素是当前数组长度的0.75时,此时数组会自动扩容,创建原数组长度的2倍的新数组,原数组的元素会和新数组的长度重新计算存储位置

LinkedHashSet单列集合

特点:

有序、不重复、无索引

底层原理:

和HashSet基本一样,多维护了一个双向链表,保证元素有序

TreeSet单列集合

特点:

可排序、不重复、无索引

底层原理:

红黑树结构
存储元素时,以结点的方式存储,创建一个结点对象:元素值、父结点地址值、左子结点地址值、右子结点地址值、颜色。 从根结点依次往下存,遵循左小右大的原则。

注意:

使用TreeSet集合存储元素时,该元素必须要指定排序规则

Collections

作用:

操作集合的工具类

常见方法:

// 1、public static  boolean addAll(Collection c, T...elements):为集合批量添加数据
// 2、public static void shuffle(List list):随机打乱List集合中的元素顺序。
// 3、 public static  void sort(List list):对List集合中的元素进行升序排序。
// 4、public static  void sort(List list, Comparator c): 对List集合中元素,按照比较器对象指定的规则进行排序

Map双列集合

特点:

HashMap  针对于键:无序、不重复、无索引
LinkedHashMap  针对于键:有序、不重复、无索引
TreeMap  针对于键:可排序、不重复、无索引
Set底层复用Map键的源码

常见方法:

// 1.put添加元素: 无序,不重复,无索引。
// 2.public int size():获取集合的大小
// 3、public void clear():清空集合
// 4.public boolean isEmpty(): 判断集合是否为空,为空返回true ,反之!
// 5.public V get(Object key):根据键获取对应值
// 6. public V remove(Object key):根据键删除整个元素(删除键会返回键的值)
// 7.public  boolean containsKey(Object key): 判断是否包含某个键 ,包含返回true ,反之
// 8.public boolean containsValue(Object value): 判断是否包含某个值。
// 9.public Set keySet(): 获取Map集合的全部键。
// 10.public Collection values(); 获取Map集合的全部值。
// 11.public boolean putAll(Map map); 把其他Map集合的数据倒入到自己集合中来。

三种遍历方式:

方式一:
1.获取所有键的set集合keySet(),遍历该集合获取每个键
2.get(key)通过键获取对应的值
方式二:
1.获取所有键值对的set集合entrySet(),遍历该集合获取每个键值对对象Entry
2.通过键值对对象entry分别获取键getKey()和值getValue()
方式三:
forEach(BiConsumer匿名内部类对象),底层使用方式二

Map集合底层原理:

HashMap:
底层原理:和HashSet一样
不重复原理:重写hashCode和equasl方法
LinkedHashMap:
底层原理:和LinkedHashSet一样
不重复原理:重写hashCode和equasl方法
TreeMap:
底层原理:和TreeSet一样
不重复原理:排序规则重写方法的返回结果为0,即将存入的元素就不存

Stream流

作用:

是一套API,操作集合和数组,代码更为简洁

创建对象:

集合.steram()
Arrays.stream(数组)
Stream.of(数组)

常见方法:

中间方法:
特点:所有的中间方法,调用完后,都会返回一个新的Stream流对象,可以进行链式编程

Javase阶段API总结_第1张图片

终结方法:
特点:调用完后,不会返回Stream流对象,无法进行链式编程

Javase阶段API总结_第2张图片

File

作用:

代表文件或文件夹的类,提供操作文件、文件夹的方法

创建对象:

//public File(String pathname)  根据文件路径创建文件对象
//public File(String parent, String child)  根据父路径和子路径名字创建文件对象
//public File(File  parent, String child) 根据父路径对应文件对象和子路径名字创建文件对象

常见方法:

// 2、public boolean exists():判断当前文件对象,对应的文件路径是否存在,存在返回true.
// 3、public boolean isFile() : 判断当前文件对象指代的是否是文件,是文件返回true,反之。
// 4、public boolean isDirectory()  : 判断当前文件对象指代的是否是文件夹,是文件夹返回true,反之。
// 5.public String getName():获取文件的名称(包含后缀)
// 6.public long length():获取文件的大小,返回字节个数
// 7.public long lastModified():获取文件的最后修改时间。
// 8.public String getPath():获取创建文件对象时,使用的路径
// 9.public String getAbsolutePath():获取绝对路径
// 1、public boolean createNewFile():创建一个新文件(文件内容为空),创建成功返回true,反之返回false。
// 2、public boolean mkdir():用于创建文件夹,注意:只能创建一级文件夹
// 3、public boolean mkdirs():用于创建文件夹,注意:可以创建多级文件夹
// 4、public boolean delete():删除文件,或者空文件夹,注意:不能删除非空文件夹。
//public File[] listFiles():(重点)获取当前目录下所有的"一级文件File对象"到一个文件对象数组中去返回(重点)

IO流

分类:

字节输入流:InputStream,FileInputStream
字节输出流:OutputStream,FileOutputStream
字符输入流:Reader,FileReader
字符输出流:Writer,FileWriter

FileInputStream

作用:

从磁盘\网络中,将文件数据以字节形式读取到内存java程序中

创建对象:

new FileInputStream(String路径)

常见方法:

read():每次读取一个字节,返回该字节的数据,读到文件末尾返回-1
read(byte数组):每次读取一个字节数组,将读到的数据存到该数组中,返回本次读取到的字节个数,读到文件末尾返回-1

FileOutputStream

作用:

将内存java程序中的数据,以字节形式写入到磁盘\网络中

创建对象:

new FileOutputStream(String路径);
new FileOutputStream(String路径, 布尔); //追加写入

常见方法:

write(一个字节)
write(一个字节数组)
write(一个字节数组的一部分, 起始索引, 写入个数)

FileReader

作用:

从磁盘\网络中,将文件数据以字符形式读取到内存java程序中

创建对象:

new FileReader(String路径)

常见方法:

read():每次读取一个字符,返回该字符的数据,读到文件末尾返回-1
read(char数组):每次读取一个字符数组,将读到的数据存到该数组中,返回本次读取到的字符个数,读到文件末尾返回-1

FileWriter

作用:

将内存java程序中的数据,以字符形式写入到磁盘\网络中

创建对象:

new FileWriter(String路径);
new FileWriter(String路径, 布尔); //追加写入

常见方法:

write(一个字符)
write(一个字符数组)
write(一个字符数组的一部分, 起始索引, 写入个数)
write(一个字符串)
write(一个字符串的一部分,起始索引, 写入个数)

缓冲流

作用:

对基本流进行包装,提高读写效率,底层默认有8k大小的缓冲区,提高读写速度

分类:

字节缓冲输入流:

对象创建:
new BufferedInputStream(普通字节输入流);
常见方法:
read();读一个字节
read(byte[]);读一个字节数组

字节缓冲输出流:

对象创建:
new BufferedOutputStream(普通字节输出流);
常见方法:
write(int);写一个字节
write(byte[]);写一个字节数组
write(byte[],起始索引, 字节个数);写一个字节数组的一部分

字符缓冲输入流:

对象创建:
new BufferedReader(普通字符输入流);
常见方法:
read();读一个字符
read(char[]);读一个字符数组
特有方法:
readLine();读取文本数据一行,返回String,如果读取到文件末尾,返回null

字符缓冲输出流:

对象创建:
new BufferedWriter(普通字符输出流);
常见方法:
write(int);写一个字符
write(char[]);写一个字符数组
write(char[],起始索引, 字符个数);写一个字符数组的一部分
write(String);写一个字符串
write(String , 起始索引,字符个数);写一个字符串的一部分
特有方法:
newLine(); 写入一个换行符

转换流

作用:

解决读写时字符乱码问题,指定字符集读、指定字符集写

分类:

字符转换输入流:

创建对象:
new InputStreamReader(普通字节输入流, 指定读的字符集)
常见方法:
所有方法来自于字符输入流

字符转换输出流:

创建对象:
new OutputStreamWriter(普通字节输出流,指定写的字符集)
常见方法:
所有方法来自于字符输出流

打印流

作用:

更为方便高效的写入数据

分类:

字节打印流:

创建对象:
new PrintStream(普通字节输出流,是否自动刷新,指定字符集)
常见方法:
所有方法来自于字节输出流
特有方法:
println(任意类型数据)

字符打印流:

创建对象:
new PrintWriter(普通字节输出流,是否自动刷新,指定字符集Charset.forName("字符集"))
常见方法:
所有方法来自于字符输出流
特有方法:
println(任意类型数据)

数据流

作用:

将数据和其数据类型一块读写文件

分类:

字节数据输入流:

创建对象:
new DataInputStream(普通字节输入流)
常见方法:
所有方法来自于字节输入流
特有方法:
read数据类型();四类八种,String是UTF

字节数据输出流:

创建对象:
new DataOutputStream(普通字节输出流)
常见方法:
所有方法来自于字节输出流
特有方法:
write数据类型(传参);

序列化流

作用:

将java对象读写到文件中,读:反序列化  写:序列化

分类:

字节序列化流:

创建对象:
new ObjectOutputStream(普通字节输出流)
常见方法:
所有方法来自于字节输出流
特有方法:
writeObject(任意对象)

字节反序列化流:

创建对象:
new ObjectinputStream(普通字节输入流)
常见方法:
所有方法来自于字节输入流
特有方法:
(任意对象)readObject()

注意事项:

1.序列化流时,该对象的类必须实现序列化接口Serializable
2.如果想避免某个成员变量被序列化,可以使用transient关键字修饰该成员变量

Thread

作用:

代表线程类,里面提供操作线程的方法

创建对象:

new Thread(String 线程名)
new Thread(Runnable 任务对象)
new Thread(Runnable 任务对象,String 线程名)

常见方法:

run() 该线程开启后执行的任务代码
start()开启线程
setName(String) 给线程设置名字
getName()获取线程名字
static currentThread() 获取当前执行的线程对象
static sleep(毫秒值) 让当前线程睡眠多少毫秒
join() 让当前线程先执行完毕

线程池

作用:

可以复用线程,提高性能

创建对象(重点):

new ThreadPoolExcutor(七个参数)
核心线程数
最大线程数
临时线程存活时间
时间单位
任务队列
线程工厂
拒绝策略

常见方法:

excutor(Runnable任务)
Future = submit(Callable任务)
shutdown()等任务执行完后关闭线程池
shutdownNow()直接关闭线程池,返回未执行的任务

InetAddress

作用:

代表IP地址类,提供针对于ip的操作

创建对象:

//public static InetAddress getLocalHost()  获取本机IP,会以一个inetAddress的对象返回
//public static InetAddress getByName (String host) 根据ip地址或者域名,返回一个inetAdress对象

常见方法

//public String getHostName()   获取该ip地址对象对应的主机名
//public String getHostAddress()    获取该ip地址对象中的ip地址信息
//public boolean isReachable(int timeout)   在指定毫秒内,判断主机与该ip对应的主机是否能连通

你可能感兴趣的:(java,开发语言)