API常用类

目录

一,API概述

二,Object类

1.概述

2,Object类中的常用方法

(1) toString方法

(2)equals方法

三,Arrays类

1.概述:

2.Arrays类中的常用方法:

(1)equals:

(2)sort:排序对数组排序

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

(4)copyOf()方法:数组复制(数组扩容)

(5)fill方法:

(6)toString()方法

四,基本数据类型包装类

1.概述

2.包装类常用属性方法

(1)常用静态方法

(2)构造方法

(3)实例方法

3.装箱和拆箱

(1)装箱

(2)拆箱

五,String类

1.概述:

2.String类中的两种创建方法

(1)直接赋值方式创建

(2) new 创建字符串对象

3.String类的构造方法

4.String类中的方法

六,StringBuffer

1.概述:

2.构造方法

3.String Buffer类中的常用方法

七.StringBulider 

1.概述:

2.String 和 StringBulider 和 StringBuffer的区别

八.Math类

1.概述:

2.类中常用方法

九.Random类

1.概述:

2.类中常用方法


一,API概述

API(Application Programming Interface)应用程序编程接口

一般在开发中用api表示Java语言中为我们提供的各种类和接口

一般所说的是api文档。是对Java预先定义的类或接口功能和函数功能的说明文档,目的是提供给开发人员,进行使用帮助说明

二,Object类

1.概述

Object类是所有Java类的祖先(根基类)。

每个类都使用Object作为超类(父类)。

所有对象(包括数组)都继承实现这个方法。

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

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

2,Object类中的常用方法

(1) toString方法

   开发中,经常用到输出一个对象,但是对象在内存中存储,是不能直接输出控制台的
    一旦输出某个对象,那么会默认自动调用toString(),把对象中的信息,以字符串的形式输出

    如果类中没有定义toString(),那么会找父类(Object)
    object类中的toString(),默认输出的是对象在内存中的地址
      public String toString(){
                         类的全名
               return getClass().getName() + "@" + Integer.toHexString(hashCode()); + 返回的时对象在内存中的地址值,转为16进制

所以在通常使用时,可以通过在用户自定义类型中重写toString()方法 

(2)equals方法

1.

返回值类型:boolean类型

所需参数类型:Object

2.

与 == 的对比

==左右为引用类型数据时,比较的是左右两个对象的地址是否相等

Object中默认的equals(Object obj) 其实质比较的是两个对象的地址是否相等,与我们使用==比较的效果是一样的

equals的使用:

对象名+“.”+equals(对象名)

使用时默认调用Object类中的equals(),也就是比较地址

Object类中的equals()等价于== 存在意义就不大了

所以广大的开发者,就对equals方法进行重写,

用于比较两个对象的内容是否相等。

3.

==与equals的区别

==:两边是引用数据类型时直接比较两对象的地址

equals():为重写:等价于==

                      重写后:比较两对象中的内容

4.

结论:java中几乎所有类都对Object中的equals进行重写

          都用来比较内容是否相等,所以我们一般的就把

          equals()用来比较对象内容是否相等。

          用==比较对象地址是否相等

三,Arrays类

1.概述:

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

2.Arrays类中的常用方法:

(1)equals:

相较于父类Object类中的Equals方法已被重写

判断两数组中元素是否相同。

声明:public statuc boolean equals(type[] a,type[] b)

参数的类型可以是原生数据类型和引用类型的任意一种类型

返回值类型:如果两个相等,则返回true,否则返回false

(2)sort:排序对数组排序

作用域数组的所偶有元素

声明:public static void sort(type[] a)

 作用域数组指定范围内的元素

public static void sort(type[] a ,int formIndex(包括),int toIndex(不包括))

将指定的类型数组所有元素按数字升序进行排序

自定义对象排序

需要对自定义类实现Comparable接口

重写comoareto方法

对引用类型数组排序时

需要为自定义类提供一个排序规则指定用哪个属性进行排序

此方法会在Arrays类中sort()排序时自动调用

根据返回结果进行排序

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

public static int binarySearch(type[] a,type key)

public static int binarySearch(long[] a,int fromIndex ,int toIndex ,long key)

参数:

a: 要搜索的数组

key:要搜索的值

fromIndex : 要排序的第一个元素的索引(包括)

toIndex : 要排序的最后一个元素的索引(不包括)

如果返回值为负数,就说明未找到,若找到呢返回该搜索值的索引

二分查找算法(折半查找算法):

前提:数组有序

每次找到数组的中间值,用我们要找的值与中间值进行比较,

如果要找的值大于中间的值,那么就向右边找,继续在右边找一个中间值进行比较

如果要找的值小于中间的值,那么就向左边找,继续在左边找一个中间值进行比较

(4)copyOf()方法:数组复制(数组扩容)

将原数组的内容,复制到一个新创建的指定长度的数组中。

static int[] copy(int[] a , int newLength)

(5)fill方法:

将指定的int值分配到指定的int数组的每一个元素

fill(int[] a , int val)

也可以选择填充

fill(int[] a , int x , int y)//将指定的int值y 填充到数组a的索引x到a.length-1索引中

(6)toString()方法

返回指定数组内容的字符串表示形式

public static String toString(type[] a)

四,基本数据类型包装类

1.概述

由于java语言是面外的

而八种基本数据类型,不是面向对象的,使用起来不方便

所以java为基本八种基本数据类型,各提供一个包装类进行表示,类中包含一个基本类型值

类中还包含一些对整数常用操作的方法(如:转二进制,最大值,最小值)

基本数据类型                            包装类

byte                                           Byte

short                                         Short

char                                          Character

int                                             Integer

long                                          Long

float                                          Float

double                                      Double

boolean                                    Boolean

2.包装类常用属性方法

以java.lang.Integer为例

(1)常用静态方法

Integer.MIN_VALUE);//最小值

Integer.MAX_VALUE);//最大值Integer.SIZE);

//字节Integer.BYTES);//比特位Integer.max(,)//比较两值,返回较大的

Integer.min(,)//比较两值,返回较小的Integer.toBinaryString(6)//转为二进制

Integer.toHexString(17)//转为十六进制

Integer.toOctalString(9)//转为八进制

Integer.compare(6,10)//-1前小后大,0一样大,1前大后小

Integer.parseInt(c);//把字符串类型的数值,转为基本类型整数 转换时,不能出现非数字字符

(2)构造方法

Integer(int a);

Integer (String a);

(3)实例方法

boolean equals(Object);

比较两个Integer对象内容是否相等

int compareTo (Integer anotherInteger);

比较两个Ingeter对象内容的大小

String toString();

将整数转为String类型

int intValue();

取出包装类型中的基本类型值

3.装箱和拆箱

(1)装箱

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

Static Integer valueOf(int i)

Static Integer valueOf(String s)

eg:

int a0 = 10;

Integer a = a0;;自动装箱,自动的将基本类型转为包装类型

底层默认调用valueOf()

Integer a = a0     等价于  Integer a = Integer.valueOf(a);

自动装箱时需注意:

public static Integer valueOf (int i){

//在-128~127之间的值缓存在同一个数组中

//只要自动装箱时值的返回在-128~127直接按

//返回的就是同一个Integer对象。

 if (i >= IntegerCache.low && i <= IntegerCache.high)
            return IntegerCache.cache[i + (-IntegerCache.low)];

//如果不在-128~127之间每次都会new一个新的Integer对象
        return new Integer(i);

}

(2)拆箱

自动的将包装类型转换为基本数据类型

拆箱时自动调用Integer对象的intValue()方法

int a = i1.intvalue();//手动拆箱

int a = i1;//自动拆箱,底层默认调用intValue()

在计算机领域将这种简化写法,称为语法糖

五,String类

1.概述:

String类表示Java字符串(java语言,“”表示字符串)

String类被final修饰,不能被其他类继承

String类中,有一个char数组,用来存储字符串内容

private final char value[];

字符串一旦被创建后,值就不能改变了。

一旦值改变了,就会创建一个新的字符串对象。

2.String类中的两种创建方法

(1)直接赋值方式创建

 String s = "abc";隐式的创建了一个字符串对象   类似于自动装包
    创建对象都在一个叫字符串常量池中存储
    创建时,如果字符串常量池中没有对应的字符串对象,就会在字符串常量池中创建一个字符串对象,并返回地址
    如果字符串常量池已经存在了对应额字符串中的对象,那么就不会创建新的字符串对象,直接返回已有的字符串对象地址即可

(2) new 创建字符串对象

String s = new String(“abc”);
只要是new出来的对象,每一个对象都是独一无二的

3.String类的构造方法

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

4.String类中的方法

        String s1 = "abc";
        String s2 = "acd";
        System.out.println(s1.equals(s2));//比较两个字符串对象中的内容是一致
        System.out.println(s1.equalsIgnoreCase(s2));//比较两个对象内容是否相等,忽略大小写
        System.out.println(s1.contains("a"));//true    判断s1中是否包含一个指定字串
        System.out.println(s1.contains("ac"));//flase

        System.out.println(s1.isEmpty());//判断字符串值是否是空串 ,空串返回true,否则flase

        System.out.println(s1.startsWith("ac"));//判断是否以我们指定的子串开头
        System.out.println(s1.endsWith("bc"));//判断是否以我们制定的子串结尾
        String s1 = "asdfghjkl";
        System.out.println(s1.length());//获取字符串长度
        System.out.println(s1.charAt(4));//获取字符串中指定位置上的字符
        System.out.println(s1.indexOf("s"));//获取指定字符首次出现的位置    若没有则返回-1
        System.out.println(s1.indexOf("s",2));//从指定位置开始查找,指定字符首次出现的位置
        System.out.println(s1.lastIndexOf("s"));//获取字符串中指定字符的最后一次位置
        String s2 = s1.substring(2);//从指定位置开始截取
        System.out.println(s2);
        String s3 = s1.substring(2,6);//从指定位置开,截取到指定位置结束(不包含结束位置),截取后返回的是一个新的字符串对象
        System.out.println(s3);
        //讲不通的数据类型转为字符串类型
        Integer a = null;
//        String s1 = a.toString();//用的较少  值为null时会报错
        String s = String.valueOf(a);//用的较多  即使值为null 转换是也不会报错
        System.out.println(s);

        char[] chars = {'a','b','c'};
        String s2 = String.valueOf(chars);
        System.out.println(s2);

        String s3 = "  abCD"  ;
        System.out.println(s3.toLowerCase());//转小写
        System.out.println(s3.toUpperCase());//转大写

        String s4 = s3.concat("efg");//连接字符串
        System.out.println(s4);

        String s5 = s3.trim();//去掉字符串前后的空格,不能去除字符串中间的空格
        System.out.println(s3);
        System.out.println(s5);

        String s6 = "as:as;S;xz";
        String[] strings = s6.split(":");//将字符串中的指定字符串删掉,并分成数组
        System.out.println(Arrays.toString(strings));


        String s7 = "asdf";
        String s8 = s7.replace("s","S");//将字符串中指定字符,用另外的指定字符替换
        System.out.println(s8);
        String s1 = new String();//创建一个空字符串对象    this。value = “”.value
        String s2 = new String("abcd");
        char[] chars = {'a','b','c','d'};
        String s3 = String.valueOf(chars);
        String s4 = new String(chars);

        String s5 = "cabd";
        char[] chars1 =  s5.toCharArray();//把字符串转为char数组
        Arrays.sort(chars1);
        String s6 = new String(chars1);//将char数组转为字符串
        System.out.println(s6);

        String s = "abcd";//传输时,以数字进行传递
        byte[] bytes = s.getBytes();//编码   将字符串转为对应ASCII码并存储
        System.out.println(Arrays.toString(bytes));

        String s7 = new String(bytes);//解码   将ASCII码转化成对应字符并存入字符串
        System.out.println(s7);

六,StringBuffer

1.概述:

如果我们使用String声明的字符串对其进行拼接操作,每次拼接,都会构建一个新的String对象,纸样既耗时,又浪费空间。而StringBuffer就可以解决这个问题

StringBuffer时线程安全的可变字符串。

StringBuffer stringBuffer = new StringBuffer();
char[] value;内部有一个未被final修饰的数组,默认长度是16,就可以向数组中放元素,装满后,据会自动扩容
不会创建StringBuffer对象,只会扩容内部的数组,提高了效率

2.构造方法

public StringBuffer();

public StringBuffer(String str);

3.String Buffer类中的常用方法

        StringBuffer stringBuffer = new StringBuffer();//无参的构造方法,默认容量是16
        StringBuffer stringBuffer1 = new StringBuffer("a");//super(str.length() + 16);
        StringBuffer stringBuffer3 = new StringBuffer(10);//指定默认容量
                     stringBuffer3.append("abcd");
                     stringBuffer3.append("efgh");
                     stringBuffer3.append("lmno");//从字符串末尾添加
                     stringBuffer3.insert(5,"aa");//向指定位置添加指定字符串,指定位置及以后元素向后挪动
                     stringBuffer3.deleteCharAt(3);//删除指定位置上的内容
                     stringBuffer3.delete(5,7);//删除指定区间上的内容,不包含结束位置
                     stringBuffer3.replace(0,5,"ooo");//将指定位置上的内容替换
                     stringBuffer3.reverse();//逆置

七.StringBulider 

1.概述:

StringBulider 类功能和 StringBuffer 功能完全一致,但StringBuffer是多线程场景下安全的,而StringBulider不适合多线程场景下使用。

2.String 和 StringBulider 和 StringBuffer的区别

String:是字符常量,每次修改是都会创建新对象,适用于少量的字符串操作。

StringBulider:可变字符串,适用于单线程场景下操作。

StringBuffer:可变字符串,适用于多线程场景下操作,因为它的方法都上了锁

八.Math类

1.概述:

提供了一系列静态方法用于科学计算

2.类中常用方法

        System.out.println(Math.sqrt(a));//开根号
        System.out.println(Math.abs(b));//绝对值
        System.out.println(Math.pow(b,2));//b的2次方

max(double a, double b)//返回两数中较大值

min(double a, double b)//返回较小值

random() 返回 0.0 1.0 的随机数

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

九.Random类

1.概述:

Random用于产生随机数

2.类中常用方法

构造方法

public Random()

成员方法

public int nextInt()

public int nextInt(int n)

十,Date类/Calendar类/SimpleDateFormal类

1.Date类

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

(1)构造方法

Date d = new Date();

Date d = new Date(long d);

(2)常用方法

        System.out.println(date.getYear()+1900);
        System.out.println(date.getMonth()+1);//月份从0开始
        System.out.println(date.getDate());//月中的天
        System.out.println(date.getDay());//获取星期   星期天是0
        System.out.println(date.getHours());//时
        System.out.println(date.getMinutes());//分
        System.out.println(date.getSeconds());//秒
        //getTime()  获取的是 自1970.1.1 0:0:0秒 至date对象创建时的毫秒值
        System.out.println(date.getTime());//1739429670638

2.Calendar类

(1)概述:

Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,只需要使用getlnstance方法创建即可

(2)构造

Calendar c1 = Calendar.getInstance();

c1.get(Calendar. YEAR);

(3)类中常用方法:

        Calendar calendar = Calendar.getInstance();//获得 Calendar的一个子类对象   GregorianCalendar
        System.out.println(calendar.get(Calendar.YEAR));   //年
        System.out.println(calendar.get(Calendar.MONTH));  //月
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));//日
        System.out.println(calendar.get(Calendar.HOUR_OF_DAY));//一天中第几小时
        System.out.println(calendar.get(Calendar.MINUTE));//分
        System.out.println(calendar.get(Calendar.SECOND));//秒
        System.out.println(calendar.get(Calendar.DAY_OF_YEAR));//一年中的第几天
        System.out.println(calendar.get(Calendar.DAY_OF_WEEK));//一周中的第几天
        System.out.println(calendar.get(Calendar.WEEK_OF_YEAR));//一年中的第几周

        System.out.println(calendar.getTimeInMillis());//获取的是 自1970.1.1 0:0:0秒 至date对象创建时的毫秒值

3.SimpleDateFormat 日期格式化类

(1)构造

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

(2)常用方法

        /*
        日期类型 转为  指定格式的字符串    从后端向前端传递数据时,需要进行转化
         */
        Date date = new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss S E");
        String string = simpleDateFormat.format(date);
        System.out.println(string);
        /*
            字符串类型 转为日期类型从前端向后端发送数据时间,在后端进行转化
         */
        String dataStr = "2002年02月22日";
        SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy年MM月dd日");
        Date date1 = simpleDateFormat1.parse(dataStr);
        System.out.println(date1);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值