java-API_常用类介绍及运用

1.概述

API应用程序编程接口

API文档:是对java预先定义的类或接口功能和方法功能的说明文档,目的是提供给开发人员进行使用帮助说明

2.基本数据类型包装类

Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类.

包装类(如:Integer,Double等)这些类封装了一个相应的基本数据类型数值,并为其提供了一系列操作。

基本数据类型 包装类
byte Byte
short Short
char Character
int Integer
long Long
float Float
double Double
boolean Boolean

对于包装类说,这些类的用途主要包含两种:

1.作为和基本数据类型对应的类类型存在,方便涉及到对象的操作。

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

包装类常见方法

以下方法以java.lang.Integer为例

public static final int MAX_VALUE 最大的int型数(231-1)

public static final int MIN_VALUE 最小的int型数(-231)

public int intValue() 返回封装数据的int型值

public static int parseInt(String s)将字符串解析成int型数据,返回该数据

public static Integer valueOf(String s)返回Integer对象,其中封装的整型数据为字符串s所表示。

public String toString()返回一个表示该 Integer 值的 String 对象。

public static String toString(int i)返回一个表示指定整数的 String 对象

装箱和拆箱Auto-boxing/unboxing

1.装箱

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

装箱的时候自动调用的是Integer的valueOf(int)方法

2.拆箱

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

拆箱的时候自动调用的是Integer的intValue方法

3.Object类

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

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

public class Person{…}

等价于:

public class Person extends Object{…}

3.1.toString方法

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

在进行String与其他类型数据的连接操作时(如:System.out.println(“info”+person)),将自动调用该对象类的toString()方法

可以根据需要在用户自定义类型中重写toString()方法.

3.2equal方法

Object类中定义有:

public boolean equals(Object obj)方法

提供定义对象是否"相等"的逻辑.

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

JDK提供的一些类,如String,Date等,重写了Object的equals方法,调用这些类的equals方法,x.equals(y),当x和y所引用的对象是同一类对象且属性内容相等时(并不一定是相同对象),返回true否则返回false.

import java.util.Arrays;
public class ObjectDemo extends Object{
   
public static void main(String[] args) {
    
ObjectDemo obj = new ObjectDemo();

 int[] a = new int[5];//数组也是继承了Object
       a.hashCode();
Person p = new Person("jim",18);

System.out.println(p);
System.out.println("info==="+p);

 String s1 = new String("abc");
 String s2 = new String("abc");

 // == 基本类型比较的就是具体的值
 // == 再对引用类型进行比较时,比较的是引用的对象地址是否相同
 System.out.println(s1==s2);

 //一般类都重写Object类中equals(), 他们有自己的实现方式,比较的是对象中包含的内容(具体值)是否相等
System.out.println(s1.equals(s2));
}
}
package com.ff.javaapi.day1;

public class Person extends  Object{
   
String name;
int age;

public Person(String name, int age) {
   
    this.name = name;
    this.age = age;
}

@Override
public String toString() {
   //对toString方法的重写
    return "Person{" +
            "name='" + name + '\'' +
            ", age=" + age +
            '}';
}
}

4.Arrays类

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

4.1equals 方法

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

4.2sort-排序
  1. sort()函数的基本格式(默认排序为升序排序)

    **Arrays.sort(int[] a, int fromIndex, int toIndex);**Arrays.sort(数组名,起始下标,终止下标);

    例如

    import java.util.Arrays;
    import java.util.Scanner;
    import java.util.*;
     
    public class Main {
         
     
    	public static void main(String[] args) {
         
    		// TODO Auto-generated method stub
    		Scanner sc= new Scanner(System.in);
    		int n=sc.nextInt();
    		int[] a= new int[10001];
    		for(int i=0;i<n;i++){
         
    			a[i]=sc.nextInt();
    		}
    		Arrays.sort(a,0,n);
    		for(int i=0;i<n;i++){
         
    			if(i==n-1){
         
    				System.out.println(a[i]);
    			}
    			else{
         
    				System.out.print(a[i]+" ");
    			}
    		}
    	}
     
    }
    
  2. 如果一个数组初始化时已经赋值。则sort函数可以另外一种格式

    Arrays.sort(数组名);

    例如

      import java.util.*;  
        import java.util.Arrays;  
        public class Main {
           
            public static void main(String[] args) {
           
                  
                Scanner sc=new Scanner(System.in);  
                    int num[]= {
         5,4,3,2,1};                    
                    Arrays.sort(num);                    
                    for(int i=0;i<5;i++)  
                    {
           
                        System.out.println(num[i]);  
                          
                    }  
              
          
            }  
        }
    
  3. 自定义排序

    sort(List list, Comparator c):根据指定比较器产生的顺序对指定列表进行排序,也就是自定义排序,第一个参数是传入的要排序的列表,第二个参数是指定的比较器。

    int compare(Object o1, Object o2) 返回一个基本类型的整型
    如果要按照升序排序,
    则o1 小于o2,返回-1(负数),相等返回0,01大于02返回1(正数)
    如果要按照降序排序
    则o1 小于o2,返回1(正数),相等返回0,01大于02返回-1(负数)

    例如----输入n个数,然后降序排序。

    import java.util.Arrays;
    import java.util.Comparator;
    import java.util.Scanner;
     
    class shu{
         
    	int x;
    }
    class cmp implements Comparator<shu>{
         
    	public int compare(shu a,shu b){
         
    		if(a.x<b.x){
         
    			return 1;
    		}
    		else if(a.x>b.x){
         
    			return -1;
    		}
    		else{
         
    			return 0;
    		}
    		//可以简化成
    		//return b.x-a.x
    	}
    }
    public class Main {
         
    	
    	public static void main(String[] args) {
         
    		
    		Scanner sc = new Scanner(System.in);
    		int n=sc.nextInt();
    		shu num[] = new shu[100];
    		for(int i=0;i<n;i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值