java 5 个常用的api包

简介: java 5 个常用的api包

一、java.lang包下的API

Java常用基础包,在开发中会自动导入到代码环境中,不需要import。

1.基本数据类型/包装类

(1)基本数据类型:byte、short、int、long、float、double、char、boolean

(2)包装类:

Byte:–提供了将字节数据转换为其他类型的方法,从Number抽象类继承过来.decode:将各种进制的数据内容的字符串,转换为十进制标识的字节类型,数字进制的标识符:无标识符:按十进制转换;ox、OX、#:按十六进制转换;o:按八进制转换.

Short、Integer –将short、Integer装换为其数据类型的方法,从Number抽象类继承过来。decode与Byte类中的decode方法一样可进行不同进制的装换。parseShort、parseInt、parseByte一样,可以进行不同的进制装换值。

注意:Integer十进制转其他进制的方法:toBinaryString()、toHexString()、toOctalString()。

Float、Double –isInfinite():用于判断数字是否有趋近无穷大,无法完整描述的情况。isNaN():判断浮点数据是否为有效数据(浮点类型参与运算后用于判断是否有效)

注:valueOf、parseXXX方法可以将字符串形式的值装换为数字。

(3)包装类与基本数据类型之间可以实现数据类型的自动转换,即装箱和拆箱。image.png2.数学运算类:Math;其重要方法有:

image.png3.字符串类

(1)String:不需要通过new就可以直接创建String对象;+运算符可以用来拼接String内容.

    方法:
          startsWith():字符串是否由指定字符开头.
          endsWith():字符串是否由指定字符结尾.
          indexOf():返回子串在父串中第一次出现的下标(从左起).
          lastIndexOf():返回子串在父串最后一次出现的下标(从右起).
          split():按特殊字符拆分字符内容
          replace():用新字符串内容,替换父串中原有的字符串内容.
          matches():字符验证方法。
    正则表达式:由一组通用的特殊字符所组成的一套字符串内容验证规则,String通过matchs()方法来使用正则表达式验证字符串内容是否合要求.
          语法-边界匹配器:
          ^:行的开头,代表一个正则表达式的开始.
         $:行的结尾,代表一个正则表达式的结束.
         \b:标识某一个单词的开头或结尾.
    字符:
        [abc]:a或b或c的任意一个.
        [^abc]:除a、b、c以外的任意字符.
        [a-zA-Z]:所有字母(大小都包括).
        [a-d[m-p]]:a到d或m到p([m-p]将该内容作为整体)
         [a-z&&[def]]:a-z和def两个表达式都满足.
         [a-z&&[^bc]]、[a-z&&[^m-p]]
         [0-9]
    预定义字符:
         .:代表任意字符.
         \d:字符内容只能是[0-9]的数字.
         \s:空白字符.
         \w:所有字符大小写、下划线、数字
    反向字符:\D、\S、\W
    数量词:?:一次或一次也没有.
                     *:零次或多次.
                     +:一次或多次.
                     {n}:n代表一定要出现的次数
                     {n,m}:n<=出现次数<=m.
    拓展:
    零宽断言\捕获-是使用正则表达式来获取字符串中对应内容的所在位置.(不能结合String的matchs方法),而应该结合String的replaceAll、replaceFirst方法使用,用来找到替换需要替换的内容)。语法:
    (?=exp):若字符串中有内容的结尾与exp匹配,则满足该断言.
    (?<=exp):若字符串中的内容的开头与exp匹配,则满足该断言.
    (?!=exp):若字符中的内容的结尾与exp不匹配,则满足该断言.
    (?<!exp):若字符串的内容的开头与exp不匹配,则满足该断言.

(2)StringBuffer:对于内容变动较大的字符串内容处理能力较好(线程安全)

image.png(3)StringBuilder:对于内容变动较大的的字符串内容处理能力较好(线程不安全 JDK1.5)

image.png(4) 其他程序的调用类:

image.png二、java.util包下的API

1.日期或时间类型:

(1)Date:java平台用于描述时间信息(包括用于精确描述年、月、日、小时、分钟、毫秒信息)的基类;常用方法:image.png3.基于经典数据结构的集合框架

集合对象:弥补传统的数组在批量数据存储中和访问上的不足,提供一组基于经典数据结构,并提供了对应操作方法的API来满足编程开发中对批量数据的操作要求.

(1)Iterable(接口):JDK1.5以后加入的API,为集合框架满足foreach语句提供类型的定义.image.pngArrayList

特点:底层基于数组来实现列表的功能,内部用于存储数据的结构是一个Object

    建议:其ArrayList的初始化大小,尽可能根据实际操作数据的大小来设定(避免因数组增长导致效率低下的问题).不善于对内容变动较大的集合数据提供存储。

LinkedList

特点:底层基于链表的结构来实现存储功能.(链表是非常灵活的顺序存储结构,基于指针,将数据相互串联起来)。image.pngVector

特点:是线程安全的API(让多个同时执行线程有序的访问Vector中的数据,但会消耗相对应的内存)。

(4)Set:不包含重复元素的集合image.pngHashSet – 实现基于Hash表来维护数据,不保证数据的顺序不变,但可以保证数据的唯一性。(保存数据:通过Hash表来保存数据,但不会保存重复的数据)

TreeSet –按照二叉树的结果来存放数据,保证数据的顺序;采用红黑树(二叉树):小的值放在左节点,大的值放在右节点.获取数据时,采用中序访问节点,将数据内容按大小排列比大小:会使用对象的compareTo()方法比较两个对象的大小由TreeSet保存的对象,最好能提供对Compareble接口的实现,并给出compareTo方法的实现。

LinkedHashSet

特点:基于Hash表来存放数据,但会对数据的插入顺序进行维护,按照数据放入Set集合的顺序给输出来,将对象在hash表中的hash值,按插入顺序保存在链表中,在生成的Iterator时,根据链表的结构一次访问获取对象,操作性能较低,在大数据量的集合操作上不建议使用。

(5)Iterator :将数据有序的组织在一起,并提供按序访问的方法:image.png(6)Map :基于键-值映射的关系来搭建存储结构,在整个结构中使用key值来唯一标识对象.(在JDK1.2之后出现用于替换原有API中的Dictionary类的作用)。常用方法: put(key,value)image.png三、java.io包下的API

    这个包下的api即java输入输出操作API,什么是 输入输出操作?即向程序输入信息,向程序外部输出信息,数据被输入或者是输出的基础单位是字节byte,输入输出流按流的功能分可分为:
    低级流(节点流):自己具有流的写入或者读取能力的流.
    高级流(功能流):基于低级流的功能,实现流操作功能的扩张.

1.字节流

(1)InputStream(输入流) :表示字节输入流的所有类的超类,常用方法有:

             available() :获取总字节数,获取缓存区中的字节个数
             close():负责释放IO资源,关闭流操作.
             mark():在输入输出流的字节位置上设标记,为后面reset反复读取该段字节做准备.
             reset():将流的操作重新定位
             markSupported():用于判断mark方法或reset方法是否可用.
             int read():用于读取一个字节信息:返回值是读取到的字节,若读到文件末尾,则返回-1.
             int read(byte[] b):将字节读入到byte[]数组中:返回值是读取到的字节数,若读到文件末尾,则返回-1.(将字节读取到byte[]数组中第off位开始之后的位置,读取长度为len个字节)

(2)OutputStream:表示输出字节流的所有类的超类,常用方法有:image.png(3)FileInputStream extends InputStream –(文件输入流)

(4)FileOutputStreamextends OutputStream –(文件输出流),构造方法:FileOutputStream(Stringname,boolean append),其中append为ture时:追加内容到文件尾部.

(5)FilterInputStream:输入过滤流,负责在其他流基础上扩展新的功能

(6)FilterOutputStream:输出过滤流,负责在其他基础上扩展新的功能.

(7)BufferedInputStream:为流操作提供字节缓存,减少直接申请的IO读取的次数;实现原理是在内存中创建了字节数组,缓存字节信息.

(8)BufferedOutputStream :为流操作提供字节缓存,减少直接申请IO写出的次数.

(9)DataInputStream:以java基本数据类型的格式读取信息.

(10)DataOutputStream :以java基本数据类型的格式输出信息.

(11)ObectInputStream:对象流输入,可以将对象信息整体读入.(注意:对象必须实现java.io.Serializable可序列化)

(12)ObjectOutputStream:对象流输出,可以将对象信息整体输出(注意:对象必须实现java.io.Serializable可序列化).

         注意:对象流使用的场景是大型数据的缓存,缓存一般会放在内存中。把数据量较大,且交互次数较低的数据放到文件中保存,再从文件中将数据还原内存;或者放在分布式系统(通过网络通信);如:发送远程调用的请求信息,远程调用的处理结果.

image.png2.字符流

(1)Reader:表示字符输入流的所有类的超类,常用方法有:read()、close()。

(2)Writer:表示字符输出流的所有类的超类,常用方法有:write()、flush()、close()。

(3)BufferedReader/BufferedWriter:为流操作提供字符缓存,减少直接申请的IO读取/写入的次数。

拓展:File :系统上一个文件资源,包括文件(.txt、.exe、*.doc等)和文件夹(用于组织和存放其他文件信息);作用:

获取文件夹的子文件信息—listFile()

获取文件的属性,如getName() –获取文件的名字.

判断是否为文件目录—isDirectory()返回结果是ture为目录,false为其他内容.

判断是否为文件—isFile()返回结果是ture为文件,false为其他内容.还可以修改文件和删除文件.

拓展:设计模式,是指在编程的开发过程中,被反复论证所总结出来的编程经验.这些经验被认定为解决具体问题的最佳方案.

eg:装饰模式—面向对象的常用模式之一.符合开关原则:原有代码不发生任何改变,而对原有代码进行扩展,结构:

     目标类(FileInputStream、FileOutputStream等)。
     装饰类(BufferdInputStream、BufferedOutStream等),与目标类都有相同的父类或接口。
     用途:改进原有API的功能—修改原有的方法,丰富原有API的实现—能实现的功能更多。
     最纯的装饰模式:目标类和装饰类从结构上一模一样(BufferedInputStream\BufferedOutputStream)。
     装饰的”另类”:对类的结构做出调整,如ObjectInputStream\ObjectOutputStream(readObject()\writeObject() )和DataInputStream\DataOutputStream( readXXX()\writeXXX() )。


目录
相关文章
|
12天前
|
Java Maven
【Java报错】显示错误“Error:java: 程序包org.springframework.boot不存在“
【Java报错】显示错误“Error:java: 程序包org.springframework.boot不存在“
33 3
|
3天前
|
Java API Apache
ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
【4月更文挑战第11天】ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
21 11
|
4天前
|
安全 Java API
java借助代理ip,解决访问api频繁导致ip被禁的问题
java借助代理ip,解决访问api频繁导致ip被禁的问题
|
7天前
|
存储 安全 Java
说说Java 8 引入的Stream API
说说Java 8 引入的Stream API
9 0
|
7天前
|
分布式计算 Java API
Java 8新特性之Lambda表达式与Stream API
【4月更文挑战第16天】本文将介绍Java 8中的两个重要新特性:Lambda表达式和Stream API。Lambda表达式是Java 8中引入的一种新的编程语法,它允许我们将函数作为参数传递给其他方法,从而使代码更加简洁、易读。Stream API是Java 8中引入的一种新的数据处理方式,它允许我们以声明式的方式处理数据,从而使代码更加简洁、高效。本文将通过实例代码详细讲解这两个新特性的使用方法和优势。
|
8天前
|
安全 Java API
RESTful API设计与实现:Java后台开发指南
【4月更文挑战第15天】本文介绍了如何使用Java开发RESTful API,重点是Spring Boot框架和Spring MVC。遵循无状态、统一接口、资源标识和JSON数据格式的设计原则,通过创建控制器处理HTTP请求,如示例中的用户管理操作。此外,文章还提及数据绑定、验证、异常处理和跨域支持。最后,提出了版本控制、安全性、文档测试以及限流和缓存的最佳实践,以确保API的稳定、安全和高效。
|
11天前
|
存储 Java 关系型数据库
掌握Java 8 Stream API的艺术:详解流式编程(一)
掌握Java 8 Stream API的艺术:详解流式编程
42 1
|
20天前
|
前端开发 Java API
构建RESTful API:Java中的RESTful服务开发
【4月更文挑战第3天】本文介绍了在Java环境中构建RESTful API的重要性及方法。遵循REST原则,利用HTTP方法处理资源,实现CRUD操作。在Java中,常用框架如Spring MVC简化了RESTful服务开发,包括定义资源、设计表示层、实现CRUD、考虑安全性、文档和测试。通过Spring MVC示例展示了创建RESTful服务的步骤,强调了其在现代Web服务开发中的关键角色,有助于提升互操作性和用户体验。
构建RESTful API:Java中的RESTful服务开发
|
30天前
|
Java 数据库连接 API
Java 学习路线:基础知识、数据类型、条件语句、函数、循环、异常处理、数据结构、面向对象编程、包、文件和 API
Java 是一种广泛使用的、面向对象的编程语言,始于1995年,以其跨平台性、安全性和可靠性著称,应用于从移动设备到数据中心的各种场景。基础概念包括变量(如局部、实例和静态变量)、数据类型(原始和非原始)、条件语句(if、else、switch等)、函数、循环、异常处理、数据结构(如数组、链表)和面向对象编程(类、接口、继承等)。深入学习还包括包、内存管理、集合框架、序列化、网络套接字、泛型、流、JVM、垃圾回收和线程。构建工具如Gradle、Maven和Ant简化了开发流程,Web框架如Spring和Spring Boot支持Web应用开发。ORM工具如JPA、Hibernate处理对象与数
92 3
|
1月前
|
分布式计算 Java 程序员
Java 8新特性之Lambda表达式与Stream API
本文将详细介绍Java 8中的两个重要新特性:Lambda表达式和Stream API。Lambda表达式是Java 8中引入的一种简洁、匿名的函数表示方法,它允许我们将函数作为参数传递给其他方法。而Stream API则是一种新的数据处理方式,它允许我们以声明式的方式处理数据,从而提高代码的可读性和可维护性。通过本文的学习,你将能够掌握Lambda表达式和Stream API的基本用法,以及如何在项目中应用这两个新特性。
31 10

热门文章

最新文章