Javase8 常用类API知识总结《一看就会》

      作者有话说:

        这篇文章会为你讲解javase的一些比较常用的类,同时附有代码实例、注释及运行结果,帮助读者和初学者更快速理解并掌握代码,希望看了这篇文章你能有所收获

目录

Java API概述

基本数据类型包装类 

装箱和拆箱 

Object类

Arrays类 

String类

String类的创建:

StringBuffer 和StringBuilder

扫描二维码关注公众号,回复: 15472788 查看本文章

Math类

 Random类

 Date类/Calendar类/ SimpleDateFormat类


Java API概述

API(Application Programming Interface):即 应用程序编程接口
API是 对java预先定义的类或接口功能和函数功能的说明文档,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组 例程的能力,而又无需访问源码,或理解内部工作机制的细节, 即就是为开发人员提供使用说明

Java API简介--来自百度 

 运行Java程序时,虚拟机装载程序的class文件所使用的Java API class文件。所有被装载的class文件(包括从应用程序中和从Java API中提取的)和所有已经装载的动态库(包含本地方法)共同组成了在Java虚拟机上运行的整个程序。 在一个平台能够支持Java程序以前,必须在这个特定平台上明确地实现API的功能。为访问主机上的本地资源,Java API调用了本地方法。由于Java API class文件调用了本地方法,Java程序就不需要再调用它们了。通过这种方法,Java API class文件为底层主机提供了具有平台无关性、标准接口的Java程序。对Java程序而言,无论平台内部如何,Java API都会有同样的表现和可预测的行为。正是由于在每个特定的主机平台上明确地实现了Java虚拟机和Java API,因此,Java程序自身就能够成为具有平台无关性的程序。

基本数据类型包装类 

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

 包装类(如:Integer,Double等)这些类封装了一个相应的基本数据类型数值,主要用途包含两种:1.作为和基本数据类型对应的类类型存在。 2.包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法。

代码展示:

    int i = 3;
    Integer inum = new Integer(i);
    double dnum = 9.8;
    Double d = new Double(dnum);
    char cnum = 'A';
    Character c = new Character(cnum);
    float fnum = 9.8f;
    Float f = new Float(fnum);
    boolean bnum = false;
    Boolean b = new Boolean(bnum)
以Integer为例:
public static final int MAX_VALUE 最大的 int 型数( 2 31 -1
public static final int MIN_VALUE 最小的 int 型数( -2 31
构造方法
Integer(int a);
Integer(String a);
比较方法
static int compareTo(Integer a);
boolean equals(Object);
int max(int a,int b);
int min(int a,int b);
转换方法
static toBinaryString(int i); //将输入的int值转化成二进制形式并返回这个二进制数的字符串
static String toHexString(int i);
/*public static String toHexString (int i)以十六进制的无符号整数形式返回一个整数参数的字符串表示形式。 如果参数为负,那么无符号整数值为参数加上 232;否则等于该参数。*/
static String toOctalString(int i);// 以八进制的无符号整数形式返回一个整数参数的字符串表示形式。
int intValue();
static int parseInt(String s); /* 将字符串参数作为有符号的十进制整数进行分析。 static Integer valueOf (int i) 返回一个表示指定的 int 值的 Integer 实例。*/
String toString();
static Integer valueOf(int i)
static Integer valueOf(String s)
static Integer valueOf (String s) 返回保持指定的 String 的值的 Integer 对象。 从返回值可以看出他们的区别 parseInt ()返回的是基本类型int 而valueOf ()返回的是包装类Integer Integer是可以使用对象方法的 而int类型就不能和Object类型进行互相转换

装箱和拆箱 

基本数据类型转换为包装类的过程称为装箱,例如把 int 包装成 Integer 类的对象;包装类变为基本数据类型的过程称为拆箱,例如把 Integer 类的对象重新简化为 int。

装箱
        自动将基本数据类型转换为包装器类型
       装箱的时候自动调用的是Integer的valueOf(int)方法
拆箱
        自动将包装器类型转换为基本数据类型
       拆箱的时候自动调用的是Integer的intValue方法
//装箱
 int a = 12;
 Integer b = Integer.valueOf(a);
//拆箱
 int c = b.intValue();

public class Demo {
    public static void main(String[] args) {
        int m = 500;
        Integer num = m;  // 自动装箱
        int n = num;  // 自动拆箱
        System.out.println("n = " + n);
      
        Integer num1 = 500;
        System.out.println("num等价于num1返回结果为" + num.equals(num1));
    }
}

Object类

Object类是所有Java类的祖先(根基类)。每个类都使用 Object 作为超类(父类)。 所有对象(包括数组)都实现这个类的方法。 如果在类的声明中未使用extends关键字指明其基类,则默认基类为Object类。
public class Person { ...
}
等价于:
public class Person extends Object {
...
}

需要特殊强调的是Object类中有两个方法 toStringequals方法

toString方法

Object类中定义有public String toString()方法,其返回值是 String类型,描述当前对象的有关信息。在进行String与其它类型数据的连接操作时(如:System.out.println(“info”+person)),将自动调用该对象类的toString()方法,当然我们也可以根据需要在用户自定义类型中重写toString()方法。

equals方法

 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。(比较值)

Arrays类 

 java.util.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类的创建:

  1. String s = "abjcka";

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

      2.String s = new String("sadasd");

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

功能 方法

 String s = "中国红";
        /*字符串转为字节数组  “转码”
        */
        byte [] bytes = s.getBytes();
        System.out.println(Arrays.toString(bytes));//字符串转为byte数组
        String c = new String(bytes, 3, 3, "utf-8");
        System.out.println(c);
        String q = f.toUpperCase();//把字符串中小写字母转换成大写字母
        String p = g.trim()+100;//去掉字符串首部和尾部的空白
String c = f.concat(s);//concat相当于+=
String h = g.replaceAll("\\|", "");//替换所有匹配项
String l = g.replaceAll("\\d", "A");
String j =g.replace("g", "G");//替换指定字符
String k = g.replaceFirst("f", "F");//替换第一个
String o = "66=10068:101=55";
String [] Strings1 = o.split(":"); //split分隔符 分割之后存进新数组里
System.out.println(Arrays.toString(Strings1));

详细String功能方法可以查阅API文档---

StringBuffer 和StringBuilder

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

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

构造方法 public StringBuffer() public StringBuffer(String str)

添加功能 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)

反转功能 public StringBuffer reverse()//逆序

截取功能 public String substring(int start) public String substring(int start,int end) 

截取功能和前面几个功能的不同 返回值类型是String类型,本身没有发生改变

StringBuilder类功能和StringBuffer功能完全一致, StringBuffer是线程安全的 

String和StringBuffer添加字符串区别

  StringBuffer s = new StringBuffer("abcdeee");
        s.append("fff");
        s.append("ggg");
        s.append("hhh");
        System.out.println(s);
        String c = "abcdeeee";
        String d = c.concat("ffff");
        String e = d.concat("gggg");
        System.out.println(e);//输出的都是拼接的结果

输出结果: 

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型(四舍五入)

代码实例: 

        System.out.println(Math.abs(-5));//5
        System.out.println(Math.ceil(9.2));//10.0向上取整
        System.out.println(Math.pow(2, 3));//8.0
        System.out.println(Math.sqrt(16));//4.0
        System.out.println(Math.random());//随机生成0-1的数

结果:

 

 Random类

                    Random类概述 此类用于产生随机数

构造方法 public Random()

成员方法 public int nextInt()

               public int nextInt(int n)

代码实例:

        Random r = new Random();
        byte [] bytes = new byte[6];
        r.nextBytes(bytes);
        System.out.println(Arrays.toString(bytes));//将随机数存进数组里
        System.out.println(r.nextInt());//随机找一个数
        System.out.println(r.nextBoolean());//随机选一个布尔值

结果:

 Date类/Calendar类/ SimpleDateFormat类

  1. date类表示当前系统时间
  2. Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可: Calendar c1 = Calendar.getInstance();
  3. SimpleDateFormat 日期格式化类

Date类代码演示:

Date d = new Date();
        System.out.println(d.getDate());
        /*带删除线的方法是过期方法,api中有新的方法代替它,它仍然可以使用*/
        System.out.println(d.getTime());//自1970-1-1 0:0:0 至今的毫秒差
        System.out.println(d.getYear());
        System.out.println(d.getMinutes());
        //SimpleDateFormat 日期格式化类
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS E");
        String sj = sdf.format(d);
        System.out.println(sj);

 

 Calendar类代码演示:

Calendar c = Calendar.getInstance();//日历类
        long a = c.getTimeInMillis();//自1970-1-1 0:0:0 至今的毫秒差
        System.out.println(a);
        Calendar c1=new GregorianCalendar();
        long b = c1.getTimeInMillis();//自1970-1-1 0:0:0 至今的毫秒差
        System.out.println(b);
        System.out.println(c1.get(Calendar.DAY_OF_WEEK));//今天是这周的第几天
        System.out.println(c1.get(Calendar.DAY_OF_YEAR));//今天是今年的第几天

 补充一下:

Calendar类实现了公历日历,GregorianCalendar是Calendar类的一个具体实现。Calendar 的getInstance()方法返回一个默认用当前的语言环境和时区初始化的GregorianCalendar对象。

猜你喜欢

转载自blog.csdn.net/weixin_56800176/article/details/125811868