10-java入门:常用类库

导语

可以找官方API

常用类库简介

1.java.lang包
java.lang包 是Java中最常用的包,程序不需要注入,就可以使用该包中的类,利用包中的类可以设计最基本的Java程序。
2.java.awt包
java.awt包中的类提供了图形界面的创建方法,包括按钮、文本框、列表框、容器、字体、颜色和图形等元素的建立和设置。
3.javax.swing包
javax.swing包为Java编写的图形界面提供创建类,利用javax.swing包的类建立的界面元素可调整为各种操作系统的界面风格,支持各种操作平台的界面的开发。此外,swing包还提供了树形控件、标签页控件、表格控件的类。Java.swing包中的很多类都是从java.awt包的类继承而来,Java保留使用java.awt包是为了保持技术的兼容性,但应尽量地使用javax.swing包来开发程序界面。
4.java.io包
java.io包的类提供数据流方式的系统输入输出控制、文件和对象的读写串行化处理,比较常用的类包括:BufferInputStream、BufferOutputStream、BufferedReader、BufferedWriter、DataInputStream、DataOutputStream、FileInputStream和FileOutputStream等。
5.java.util包
java.util包提供时间日期、随机数以及列表、集合、哈希表和堆栈等创建复杂数据结构的类,比较常见的类有:Date、Timer、Random和LinkedList等。
6.java.net包
java.net包提供网络开发的支持,包括封装了Socket套接字功能的服务器Serversocket类、客户端Socket类以及访问互联网上的各种资源的URL类。
7.java.applet包
java.applet包只有一个Applet类,用于开发网页上的Applet小程序,使网页具有更强的交互能力以及多媒体、网络功能。
下文有一部分类库的详细介绍

String

String类表示字符串。 Java程序中的所有字符串文字(例如"abc" )都实现为此类的实例。
字符串是不变的; 它们的值在创建后无法更改。 字符串缓冲区支持可变字符串。 因为String对象是不可变的,所以可以共享它们。如:

 String str = "abc";

相当于:

 char data[] = {'a', 'b', 'c'};
 String str = new String(data);

以下是一些如何使用字符串的示例:

 System.out.println("abc");
 String cde = "cde";
 System.out.println("abc" + cde);
 String c = "abc".substring(2,3);
 String d = cde.substring(1, 2);

类String包括用于检查序列的各个字符,用于比较字符串,用于搜索字符串,用于提取子字符串以及用于创建具有被翻译为大写或小写的所有字符的字符串的副本的方法。 案例映射基于Character类指定的Unicode标准版本。

Java语言为字符串连接运算符(+)提供特殊支持,并为其他对象转换为字符串。
除非另有说明,否则将null参数传递给null中的构造函数或方法将导致抛出NullPointerException 。

String表示,其中补充字符由代理对表示的UTF-16格式的字符串。 索引值是指char代码单位,因此补充字符在String使用两个位置。

String类提供了处理Unicode代码点(即字符)的方法,以及处理Unicode代码单元(即char值)的方法。

除非另有说明,否则比较字符串的方法不会考虑区域设置。 Collator类提供了更细粒度,区域敏感的String比较方法。

Implementation Note:
只要编译器最终符合Java的语言规范 ,字符串连接运算符的实现由Java编译器决定。 例如, javac编译器可实现运营商StringBuffer , StringBuilder ,或java.lang.invoke.StringConcatFactory取决于JDK版本。 字符串转换的实现通常是通过方法toString ,由Object定义并由Java中的所有类继承。

至于用法,暂时参考java中String类的使用详解,等我有空了再重写一篇= =

java.util.Objects

Class Objects
java.lang.Object
java.util.Objects

public final class Objects
extends Object

此类包含static实用程序方法,用于操作对象或在操作前检查某些条件。 这些实用程序包括null或null方法,用于计算对象的哈希代码,返回对象的字符串,比较两个对象,以及检查索引或子范围值是否超出范围。

API Note

静态方法如checkIndex(int, int) , checkFromToIndex(int, int, int) ,和checkFromIndexSize(int, int, int)提供用于如果对应于索引和子范围的值超出边界的检查的便利性。 这些静态方法的变体支持定义运行时异常以及相应的异常详细消息,这些消息在值超出范围时抛出。 此类方法接受功能接口参数,即BiFunction实例,它将超出范围的值映射到运行时异常。 将这些方法与作为lambda表达式,方法引用或捕获值的类的参数结合使用时应小心。 在这种情况下,与功能接口分配相关的捕获成本可能超过检查边界的成本。
常用方法摘要

变量和类型方法描述
static intcheckFromIndexSize​(int fromIndex, int size, int length)检查是否在子范围从 fromIndex (包括)到 fromIndex + size (不包括)是范围界限内 0 (包括)到 length (不包括)。
static intcheckFromToIndex​(int fromIndex, int toIndex, int length)检查是否在子范围从 fromIndex (包括)到 toIndex (不包括)是范围界限内 0 (包括)到 length (不包括)。
static intcheckIndex​(int index, int length)检查 index是否在 0 (含)到 length (不包括)范围内。
static int compare​(T a, T b, Comparator<? super T> c)如果参数相同则返回0,否则返回 c.compare(a, b) 。
static booleandeepEquals​(Object a, Object b)返回 true如果参数是深层相等,彼此 false其他。
static booleanequals​(Object a, Object b)返回 true如果参数相等,彼此 false其他。
static inthash​(Object… values)为一系列输入值生成哈希码。
static inthashCode​(Object o)返回非的哈希码 null参数,0为 null的论点。
static booleanisNull​(Object obj)返回 true如果提供的参考是 null ,否则返回 false 。
static booleannonNull​(Object obj)返回 true如果提供的参考是非 null否则返回 false 。
static TrequireNonNull​(T obj)检查指定的对象引用是否不是 null 。
static TrequireNonNull​(T obj, String message)检查指定的对象引用是否为null ,如果是,则抛出自定义的NullPointerException 。
static TrequireNonNull​(T obj, Supplier messageSupplier)检查指定的对象引用是否为null ,如果是,则抛出自定义的NullPointerException 。
static TrequireNonNullElse​(T obj, T defaultObj)如果它是非 null ,则返回第一个参数,否则返回非 null第二个参数。
static TrequireNonNullElseGet​(T obj, Supplier<? extends T> supplier)如果它是非 null ,则返回第一个参数,否则返回非 null值 supplier.get() 。
static StringtoString​(Object o)返回调用的结果 toString对于非 null参数, "null"为 null的说法。
static StringtoString​(Object o, String nullDefault)如果第一个参数不是 null ,则返回在第一个参数上调用 toString的结果,否则返回第二个参数。

声明方法的类 java.lang.Object clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

java.lang.math

模块 java.base
软件包 java.lang
Class Math
java.lang.Object
java.lang.Math


public final class Math
extends Object类Math包含用于执行基本数字运算的方法,例如基本指数,对数,平方根和三角函数。
不像一些类的数值方法StrictMath ,类相当于所有功能的实现Math没有定义返回位对位相同的结果。 这种放松允许在不需要严格再现性的情况下实现更好的实施。

默认情况下,许多Math方法只需调用中的对应方法是StrictMath组织落实。 鼓励代码生成器使用特定于平台的本机库或微处理器指令(如果可用),以提供Math方法的更高性能实现。 此类更高性能的实现仍必须符合Math的规范。

实现规范的质量涉及两个属性,返回结果的准确性和方法的单调性。 的浮点精度Math方法在ULPS,单位在最后的地方来衡量。 对于给定的浮点格式,特定实数值的ulp是包围该数值的两个浮点值之间的距离。 在讨论整个方法的准确性而不是特定的参数时,引用的ulps数量是针对任何参数的最坏情况误差。 如果方法的错误总是小于0.5 ulps,则该方法始终返回最接近精确结果的浮点数; 这样的方法是正确的舍入 。 正确舍入的方法通常是浮点近似的最佳方法; 但是,对于许多浮点方法来说,正确舍入是不切实际的。 相反,对于Math类,某些方法允许使用1或2 Math的较大误差范围。 非正式地,当1 ulp错误界限时,如果确切结果是可表示的数字,则应将精确结果作为计算结果返回; 否则,可以返回包含确切结果的两个浮点值中的任何一个。 对于幅度较大的精确结果,括号的一个端点可能是无限的。 除了单个参数的准确性之外,在不同参数下维持方法之间的正确关系也很重要。 因此,大多数超过0.5 ulp误差的方法都需要是半单调的 :每当数学函数不递减时,浮点近似也是如此,同样,只要数学函数不增加,浮动也是如此。点近似。 并非所有具有1 ulp精度的近似值都将自动满足单调性要求。

该平台使用带有int和long基本类型的带符号二进制补码整数算法。 开发人员应选择基本类型以确保算术运算始终产生正确的结果,这在某些情况下意味着操作不会溢出计算值的范围。 最佳实践是选择基本类型和算法以避免溢出。 在情况下,大小为int或long ,需要检测溢出错误,方法addExact , subtractExact , multiplyExact和toIntExact抛出ArithmeticException结果溢出时。 对于其他算术运算,例如除法,绝对值,递增1,递减1和否定,溢出仅在特定的最小值或最大值时发生,应根据需要检查最小值或最大值。

常用方法摘要

变量和类型方法描述
static doubleabs​(double a)返回 double值的绝对值。
static floatabs​(float a)返回 float值的绝对值。
static intabs​(int a)返回 int值的绝对值。
static longabs​(long a)返回 long值的绝对值。
static doubleacos​(double a)返回值的反余弦值; 返回的角度在0.0到pi的范围内。
static intaddExact​(int x, int y)返回其参数的总和,如果结果溢出 int则抛出异常。
static longaddExact​(long x, long y)返回其参数的总和,如果结果溢出 long则抛出异常。
static doubleasin​(double a)返回值的反正弦值; 返回的角度在-pi / 2到pi / 2的范围内。
static doubleatan​(double a)返回值的反正切值; 返回的角度在-pi / 2到pi / 2的范围内。
static doubleatan2​(double y, double x)返回从直角坐标(转换角度 theta x , y )为极坐标 (R,θ-)。
static doublecbrt​(double a)返回 double值的多维数据集根。
static doubleceil​(double a)返回大于或等于参数且等于数学整数的最小值(最接近负无穷大) double 。
static doublecopySign​(double magnitude, double sign)返回带有第二个浮点参数符号的第一个浮点参数。
static floatcopySign​(float magnitude, float sign)返回带有第二个浮点参数符号的第一个浮点参数。
static doublecos​(double a)返回角度的三角余弦值。
static doublecosh​(double x)返回 double值的双曲余弦值。
static intdecrementExact​(int a)返回参数递减1,如果结果溢出 int则抛出异常。
static longdecrementExact​(long a)返回参数递减1,如果结果溢出 long则抛出异常。
static doubleexp​(double a)返回Euler的数字 e ,其值 double值。
static doubleexpm1​(double x)返回 e x -1。
static doublefloor​(double a)返回小于或等于参数且等于数学整数的最大值(最接近正无穷大) double 。
static intfloorDiv​(int x, int y)返回小于或等于代数商的最大值(最接近正无穷大) int 。
static longfloorDiv​(long x, int y)返回小于或等于代数商的最大值(最接近正无穷大) long 。
static longfloorDiv​(long x, long y)返回小于或等于代数商的最大值(最接近正无穷大) long 。
static intfloorMod​(int x, int y)返回 int参数的floor模数。
static intfloorMod​(long x, int y)返回 long和 int参数的floor数。
static longfloorMod​(long x, long y)返回 long参数的floor模数。
static doublefma​(double a, double b, double c)返回三个参数的融合乘法加法; 也就是说,返回与第三个参数相加的前两个参数的精确乘积,然后舍入一次到最接近的double 。
static floatfma​(float a, float b, float c)返回三个参数的融合乘法加法; 也就是说,返回与第三个参数相加的前两个参数的精确乘积,然后舍入一次到最接近的float 。
static intgetExponent​(double d)返回 double表示中使用的无偏指数。
static intgetExponent​(float f)返回 float表示中使用的无偏指数。
static doublehypot​(double x, double y)返回sqrt( x 2 + y 2 ),没有中间溢出或下溢。
static doubleIEEEremainder​(double f1, double f2)根据IEEE 754标准规定,计算两个参数的余数运算。
static intincrementExact​(int a)返回以1递增的参数,如果结果溢出 int则抛出异常。
static longincrementExact​(long a)返回以1递增的参数,如果结果溢出 long则抛出异常。
static doublelog​(double a)返回 double值的自然对数(基数 e )。
static doublelog10​(double a)返回 double值的基数10对数。
static doublemax​(double a, double b)返回两个 double值中较大的 double 。
static floatmax​(float a, float b)返回两个 float值中较大的 float 。
static intmax​(int a, int b)返回两个 int值中较大的 int 。
static longmax​(long a, long b)返回两个 long值中较大的 long 。
static doublemin​(double a, double b)返回两个 double值中较小的 double 。
static floatmin​(float a, float b)返回两个 float值中较小的 float 。
static intmin​(int a, int b)返回两个 int值中较小的 int 。
static longmin​(long a, long b)返回两个 long值中较小的 long 。
static intmultiplyExact​(int x, int y)返回参数的乘积,如果结果溢出 int则抛出异常。
static longmultiplyExact​(long x, int y)返回参数的乘积,如果结果溢出 long则抛出异常。
static longmultiplyExact​(long x, long y)返回参数的乘积,如果结果溢出 long则抛出异常。
static longmultiplyFull​(int x, int y)返回参数的确切数学乘积。
static intnegateExact​(int a)返回参数的否定,如果结果溢出 int则抛出异常。
static longnegateExact​(long a)返回参数的否定,如果结果溢出 long则抛出异常。
static doublenextAfter​(double start, double direction)返回第二个参数方向上第一个参数旁边的浮点数。
static floatnextAfter​(float start, double direction)返回第二个参数方向上第一个参数旁边的浮点数。
static doublepow​(double a, double b)返回第一个参数的值,该值是第二个参数的幂。
static doublerandom()返回带有正号的 double值,大于或等于 0.0且小于 1.0 。
static doublerint​(double a)返回与 double值最接近的 double值,该值等于数学整数。
static longround​(double a)返回与参数最接近的 long ,并将关系四舍五入为正无穷大。
static intround​(float a)返回与参数最接近的 int ,并将关系四舍五入为正无穷大。
static doublesin​(double a)返回角度的三角正弦值。
static doublesinh​(double x)返回 double值的双曲正弦值。
static doublesqrt​(double a)返回 double值的正确舍入正平方根。
static intsubtractExact​(int x, int y)返回参数的差异,如果结果溢出 int则抛出异常。
static longsubtractExact​(long x, long y)返回参数的差异,如果结果溢出 long则抛出异常。
static doubletan​(double a)返回角度的三角正切。
static doubletanh​(double x)返回 double值的双曲正切值。
static inttoIntExact​(long value)返回long参数的值; 如果值溢出int则抛出异常。
static doubletoRadians​(double angdeg)将以度为单位测量的角度转换为以弧度为单位测量的近似等效角度。

声明方法的类 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

java.util.arrays

模块 java.base
软件包 java.util
Class Arrays
java.lang.Object
java.util.Arrays


public class Arrays
extends Object该类包含用于操作数组的各种方法(例如排序和搜索)。 此类还包含一个静态工厂,允许将数组视为列表。
如果指定的数组引用为null,则此类中的方法都抛出NullPointerException ,除非另有说明。

包含在此类的方法中的文件包括的实施方式的简要描述。 这些描述应被视为实施说明 ,而不是规范的一部分 。 只要遵守规范本身,实现者就可以随意替换其他算法。 (例如, sort(Object[])使用的算法不一定是sort(Object[]) ,但它必须是稳定的 。)

该类是Java Collections Framework的成员。

从以下版本开始:
1.2

常用方法摘要

变量和类型方法描述
static List asList​(T… a)返回由指定数组支持的固定大小的列表。
static intbinarySearch​(byte[] a, byte key)使用二进制搜索算法在指定的字节数组中搜索指定的值。
static intcompare​(boolean[] a, boolean[] b)boolean字典顺序比较两个 boolean阵列。
static booleanequals​(int[] a, int[] a2)如果两个指定的int数组彼此 相等 ,则返回 true 。
static double[]copyOf​(double[] original, int newLength)使用零复制指定的数组,截断或填充(如有必要),以使副本具有指定的长度。 (多用于动态扩容)
static inthashCode​(double[] a)根据指定数组的内容返回哈希码。
static StringtoString​(double[] a)返回指定数组内容的字符串表示形式。
static voidsort​(double[] a)将指定的数组按升序排序。
static voidsort​(double[] a, int fromIndex, int toIndex)按升序对数组的指定范围进行排序。

java.math.BigDecimal

通过在控制台运行0.1+0.2会发现float和double的运算误差,为了实现精度运算需要辅助javaBigDecimal:

public BigDecimal(String val){
}

常用方法
以下运算方法不影响参与运算的数据本身,运算的结果会被封禁为一个新的BigDeciaml对象,这个对象会通过return返回出去。

public BigDecimal add(BigDecimal augend) //加法运算
public BigDecimal substract(BigDecimal augend) //减法运算
public BigDecimal multiply(BigDecimal augend)  //乘法运算
public BigDecimal divide(BigDecimal augend)  //除法运算

日期和时间

在JDK 1.1之前, Date类还有两个附加功能。 它允许将日期解释为年,月,日,小时,分钟和秒值。 它还允许格式化和解析日期字符串。
但从JDK 1.1开始, Calendar类应该用于在日期和时间字段之间进行转换,而DateFormat类应该用于格式化和解析日期字符串

java.util.Date

Date类表示特定的时刻,精度为毫秒
构造方法
Date() 分配Date对象并对其进行初始化,表示当前时间,精确到毫秒。

常用方法摘要

变量和类型方法描述
longgetTime()返回自此 Date对象表示的1970年1月1日00:00:00 GMT以来的毫秒数。
inthashCode()返回此对象的哈希码值

其他都被标注已过时了。

java.text.DateForamt

DateFormat是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化和分析日期或时间。 日期/时间格式化子类(例如SimpleDateFormat )允许格式化(即,日期→文本),解析(文本“日期”)和规范化。 日期表示为Date对象或自1970年1月1日00:00:00 GMT以来的毫秒数。

//date format
SimpleDateDormat format = new SimpleDateFormate=(pattern:"yyyy年mm月dd日 HH:mm:ss");
//format 将ate对象转换为字符串(yyyy-mm-dd HH:mm:ss)
String text = format.format(new Date());
//parse将yyyy-mm-dd HH:mm:ss的日期字符串转换为Date对象,获取时间戳(可以用get获取时间计算时间差)
format.parse(source:"2020-02-02 02:02:02")

java.util.Calender

所述Calendar类是一个抽象类,可以为在某一特定时刻和一组之间的转换的方法calendar fields如YEAR , MONTH , DAY_OF_MONTH , HOUR ,等等,以及用于操纵该日历字段,如获取的日期下个星期。

Calendar抽象类,getInstance()方法创建。

public static Calendar getInstance()
{
    Locale aLocale = Locale.getDefault(Locale.Category.FORMAT);
    return createCalendar(defaultTimeZone(aLocale), aLocale);
}
public static Calendar getInstance(TimeZone zone,
                                       Locale aLocale)
    {
        return createCalendar(zone, aLocale);
    }

    private static TimeZone defaultTimeZone(Locale l) {
        TimeZone defaultTZ = TimeZone.getDefault();
        String shortTZID = l.getUnicodeLocaleType("tz");
        return shortTZID != null ?
            TimeZoneNameUtility.convertLDMLShortID(shortTZID)
                .map(TimeZone::getTimeZone)
                .orElse(defaultTZ) :
            defaultTZ;
    }

    private static Calendar createCalendar(TimeZone zone,
                                           Locale aLocale)
    {
        CalendarProvider provider =
            LocaleProviderAdapter.getAdapter(CalendarProvider.class, aLocale)
                                 .getCalendarProvider();
        if (provider != null) {
            try {
                return provider.getInstance(zone, aLocale);
            } catch (IllegalArgumentException iae) {
                // fall back to the default instantiation
            }
        }

        Calendar cal = null;

        if (aLocale.hasExtensions()) {
            String caltype = aLocale.getUnicodeLocaleType("ca");
            if (caltype != null) {
                switch (caltype) {
                case "buddhist":
                cal = new BuddhistCalendar(zone, aLocale);
                    break;
                case "japanese":
                    cal = new JapaneseImperialCalendar(zone, aLocale);
                    break;
                case "gregory":
                    cal = new GregorianCalendar(zone, aLocale);
                    break;
                }
            }
        }
        if (cal == null) {
            // If no known calendar type is explicitly specified,
            // perform the traditional way to create a Calendar:
            // create a BuddhistCalendar for th_TH locale,
            // a JapaneseImperialCalendar for ja_JP_JP locale, or
            // a GregorianCalendar for any other locales.
            // NOTE: The language, country and variant strings are interned.
            if (aLocale.getLanguage() == "th" && aLocale.getCountry() == "TH") {
                cal = new BuddhistCalendar(zone, aLocale);
            } else if (aLocale.getVariant() == "JP" && aLocale.getLanguage() == "ja"
                       && aLocale.getCountry() == "JP") {
                cal = new JapaneseImperialCalendar(zone, aLocale);
            } else {
                cal = new GregorianCalendar(zone, aLocale);
            }
        }
        return cal;
    }

java.lang.System

System类包含几个有用的类字段和方法。 它无法实例化。 System类提供的设施包括标准输入,标准输出和错误输出流; 访问外部定义的属性和环境变量; 加载文件和库的方法; 以及用于快速复制阵列的一部分的实用方法。

字段

变量和类型字段描述
staticPrintStream err“标准”错误输出流。
staticInputStream in“标准”输入流。
staticPrintStream out“标准”输出流。

常用方法

变量和类型方法描述
static longcurrentTimeMillis()以毫秒为单位返回当前时间。
static voidarraycopy​(Object src, int srcPos, Object dest, int destPos, int length)将指定源数组中的数组从指定位置开始复制到目标数组的指定位置。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星野时雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值