目录

JavaAPI概述

基本数据类型包装类

装箱

拆箱

Object类

toString方法

equals方法

Arrays类

String类

StringBuffer类

Math类

Random类

Date类/Calendar类/ SimpleDateFormat类

Date类

Calendar类

SimpleDateFormat日期格式化类 

BigInteger类

BigDecima类


JavaAPI概述

API(Application Programming Interface)应用程序编程接口,是对java预先定义的类或接口功能和函数功能的说明文档,目的是提供给开发人员进行使用帮助说明。

基本数据类型包装类

Java语言是一个面向对象的语言,但Java中的基本数据类型却不是面向对象,导致在使用时会产生很多不便,为解决此问题,在设计类时为每个基础数据类型设计相对应的类进行代表,将八个基本数据类型于此相对应,统称为包装类。

api什么意思 java java常用api类_算法

 对于包装类而言,用途主要有两种:

  1. 作为和基本数据类型对应的类类型存在
  2. 包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操 作方法

装箱

  • 自动将基本数据类型转换为包装器类型
  • 装箱的时候自动调用的是Integer的valueOf(int)方法

拆箱

  • 自动将包装器类型转换为基本数据类型
  • 拆箱的时候自动调用的是Integer的intValue方法

Object类

Object类是所有Java类的祖先(根基类)。每个类都使用 Object 作为 超类(父类)。所有对象(包括数组)都实现这个类的方法。

如果在类的声明中未使用extends关键字指明其基类,则默认基类为 Object类

public class Person { ... }
// 等价于
public class Person extends Object {... }

toString方法

Object类中定义有public String toString()方法,其返回值是 String 类型,描述当前对象的有关信息。

可以根据需要重写方法

int[] a=new int[5];
String mm=new String(Arrays.toString(a));

equals方法

Object 的 equals 方法 定义为:x.equals ( y ) ,当 x 和 y是同一 个对象的引用时返回 true 否则返回 false

String a1=new String();
        System.out.println(a1.equals(mm));

Arrays类

用于操作数组工具类,里面定义了常见操作数组的静态方法。

equals 方法

  • 比较两个非同一数组是否相等,而数组本身的equals判断另一个数 组是否它本身。
  • 声明:public static boolean equals(type[]a,type[]a2)
  • 参数的类型可以是原生数据类型和引用类型的任意一种类型。
  • 返回:如果两个相等,则返回true,否则返回false

sort -排序

  • 作用于数组的所有元素 public static void sort(type[] a)
  • 作用于数组指定范围内的元素 public static void sort(type[] a, int fromIndex(包括), int toIndex(不包括)) 将指定的类型(除boolean以外的任意原生数据类型)数组所有元素(或指定范 围内的元素)按数字升序进行排序。 object型数组,根据元素的自然顺序,对指定对象数组进行升序排序。 (fromIndex==toIndex,则排序范围为空)
  • 自定义对象排序 自定义类实现Comparable接口 重写compareTo方法

binarySearch 使用二分搜索算法搜索指定数组

  •  声明: public static int binarySearch(type[] a, type key) public static int binarySearch(long[] a,int fromIndex,int toIndex,long key)
  • 描述: 使用二分搜索算法搜索指定的type型数组,以获得指定的值。
  • 参数: a - 要搜索的数组。 key - 要搜索的值。 fromIndex - 要排序的第一个元素的索引(包括)。 toIndex - 要排序的最后一个元素的索引(不包括)。 type -byte、double、float、object、long、int、short、char
  • 如果key在数组中,则返回搜索值的索引;否则返回-1或者”-“(插入点)

toString() 方法

  •  声明:public static String toString(type[] a) 
  • 描述:返回指定数组内容的字符串表示形式。
  • 基本数组,字符串表示形式由数组的元素列表组成,括在[],相邻元素 用“ , ”(逗号加空格)分隔

String类

字符串是由多个字符组成的一串数据(字符序列)的字符串常量,java中所有字 符串都是String类的实例

创建形式:

第一种:

String a = "abc";

先在栈中创建一个对String类的对象引用变量s,然后去字符串常量池中查找 有没有"abc", 如果没有则在常量池中添加”abc”, s引用变量指向常量池中 的”abc”,如果常量池中有,则直接指向改地址即可,不用重新创建

第二种:

String s = new String("abc");

一概在堆中创建新对象,值存储在堆内存的对象中

构造方法:

public String()
public String(String str)
public String(byte[] bytes)
public String(char[] value)

判断功能:

boolean equals(Object obj)
boolean equalsIgnoreCase(String str)
boolean contains(String str)
boolean isEmpty()
boolean startsWith(String prefix)
boolean endsWith(String suffix)

获取功能:

int length()
char charAt(int index)
int indexOf(String str)
int indexOf(String str,int fromIndex)
String substring(int start)
String substring(int start,int end)

转换功能:

byte[] getBytes()
char[] toCharArray()
static String valueOf(char[] chs)
String toLowerCase()
String toUpperCase()
String concat(String str)
Stirng[] split(分割符);

StringBuffer类

我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String 对象,既耗时,又浪费空间。而StringBuffer就可以解决这个问题 线程安全的可变字符序列

 StringBuffer和String的区别:



/*
    测试String与StringBuffer的性能区别
     先使用String连接1000000个字符串,计算消耗的时间
      String s = "a";
       s+="1";
     再使用StringBuffer连接1000000个字符串,计算各自消耗的时间
  对比在大量字符串内容拼接的性能.
*/
String str=new String("a");
       long start =System.currentTimeMillis();
       for(int i=0;i<10000;i++) {
           str += "第"+i;
       }
       long end =System.currentTimeMillis();
       long s=end-start;
        System.out.println("String需要"+s+"ms");
        StringBuffer str2=new StringBuffer("b");
        long start1 =System.currentTimeMillis();
        for(int j=0;j<10000;j++) {
            str2.append("第" + j);
        }
        long end1 =System.currentTimeMillis();
        long s2=end1-start1;
        System.out.println("StringBuffer需要"+s2+"ms");
        /**
         * String为字符串常量,创建之后就无法更改,每增加一次就会新创一个;StringBuffer为字符串变量,可以随时改变;
         */
//添加功能
public StringBuffer append(String str)
public StringBuffer insert(int offset,String str)
//删除功能
public StringBuffer deleteCharAt(int index)
public StringBuffer delete(int start,int end)
//替换功能
public StringBuffer replace(int start,int end,String str)

String类StringBuffer类StringBuilder区别

  • String:是字符常量,适用于少量的字符串操作的情况
  • StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况
  • StringBuffer:适用多线程下在字符缓冲区进行大量操作的情

Math类

java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和 返回值类型一般为double型。

abs 绝对值

sqrt 平方根

pow(double a, double b)

a的b次幂

max(double a, double b)

min(double a, double b)

random() 返回 0.0 到 1.0 的随机数

long round(double a) double型的数据a转换为long型(四舍五入)

Random类

用于产生随机数

成员方法

public int nextInt() public int nextInt(int n

Date类/Calendar类/ SimpleDateFormat类

Date类

使用Date类代表当前系统时间

Date d = new Date();

Date d = new Date(long d);

Calendar类

Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建 对象的过程对程序员来说是透明的,只需要使用getInstance方法创建 即可。

Calendar c1 = Calendar.getInstance();
c1.get(Calendar. YEAR);

SimpleDateFormat日期格式化类 

构造方法

SimpleDateFormat(格式); 
// yyyy-MM-dd

日期转字符串

Date now=new Date(); myFmt.format(now);

字符串转日期

myFmt.parse(“2018-02-10”);

字符串日期格式与 指定格式必须一致

例如:

String s = “2018-03-15”; new SimpleDateFormat(“yyyy-MM-dd”)

BigInteger类

 在 Java 中,有许多数字处理的类,比如 Integer类,但是Integer类有一定的 局限性。

我们都知道 Integer 是 Int 的包装类,int 的最大值为 2^31-1。若希望描述 更大的整数数据时,使用Integer 数据类型就无法实现了,所以Java中提供了 BigInteger 类。

BigInteger类型的数字范围较Integer,Long类型的数字范围要大得多,它支 持任意精度的整数,也就是说在运算中 BigInteger 类型可以准确地表示任何 大小的整数值而不会丢失任何信息。 ● BigInteger类位于java.math包中

构造方法

BigInteger(String val) /BigInteger(byte[] val) ...

基本运算方法

add(),subtract(),multiply(),divide()

BigDecima类

在计算机中不论是float 还是double都是浮点数,而计算机是二进制的,浮点数会失去 一定的精确度。

 根本原因是:十进制值通常没有完全相同的二进制表示形式;十进制数的二进制表示形式可 能不精确。只能无限接近于那个值. double a = 1.0-0.9; double b = 0.8-0.7; System.out.println(a==b); // 结果?

但是,在项目中,我们不可能让这种情况出现,特别是金融项目,因为涉及金额的计算 都必须十分精确,你想想,如果你的支付宝账户余额显示193.99999999999998,那是 一种怎么样的体验? Java在java.math包中提供的API类BigDecimal

构造方法

BigDecimal(String val)

基本运算方法

add(),subtract(),multiply(),divide()