常用类(API)

概述

java API 就是java应用程序编程接口。在我们程序员看来,API就是对java中预定义的类或者接口中的、属性、方法的功能进行说明的文档。

Object

  1. Object类是所有类的祖先类。java中所有的类都之间或间接的继承了objece类。(数组Arrays类也不例外)。继承Object类的目的就是实现多态性。

  2. Object类中的方法

    tip. 当我们要查看系统代码时,只需shift+左击即可。

基本类型包装类

  1. 使用原因:基本数据类型没有可操作的方法,在某种情况下不方便转换。为方便操作,java为每一种基本数据类型都提供了一个对应的类,用来包装基本数据类型的值。这个类的对象可以提供对被包装后的值得操作。

  2. 包装类位于java.lang包下。一共有八种,分别是:Integer、Character、Byte、Boolean、Float、Double、Long、Short。

  3. 包装类中的内容
    以下都是以Integer类进行举例。

    • 属性

      • BYTE(用于表示二进制补码的int值的位数。)
      • MAX_VALUE(包装类型的最大值2^31-1)
      • MIN_VALUE(包装类型的最小值-2^31)
    • 构造方法

      • Integer(int value)

        构造一个新分配的 Integer对象,该对象表示指定的 int值。

      • Integer(String s)
        构造一个新分配的Integer对象,该对象表示指定的String对应的int值。

    • 常用方法

      • toBinaryString()、toHexString()、toOctalString分别表示将Integer类型的对象的值转化成二进制、十六进制、八进制。
      • intVlue(),返回封装数据类型的int值。
      • parseInt(String s)将字符串解析为int型数据,返回该数据。
      • valueOf(String s)返回Integer对象。
      • toString(int i)返回一个表示该int值的字符串。
      • toString()返回一个表示该Integer对象值的String对象。
    • 自动装箱和拆箱

      装箱:自动将基本数据类型转化成(包装)引用数据类型,装箱的时候有时自动调用valueOf()

      //装箱
      int a = 10;
      Integer A = Integer.valueOf(a);
      //自动装箱
      Integer A = a;
      

      拆箱: 自动将包装数据类型转化成基本数据类型.拆箱时调用intvalue().

      //拆箱
      int a = A.intvalue();
      //自动拆箱
      int a = A;
      

Arrays

  • Arrays类是java.util包下面的一个重要的类.

  • 常用方法

  1. equals()

    比较两个数组中的元素是否相等.

     int []a = {1,2,3,4,5};int []b = {1,2,3,2,5};System.out.println(Arrays.equals(a,b));//equals()比较的是两个对象的值。
    
  2. toString()
    重写了object中的方法

    int [] a = {1,2,3};
    System.out.println(a);//[I@1b6d3586
    System.out.println(Arrays.toString(a));//[1, 2, 3]
  3. sort()

    默认为升序排序.在Arrays类中的sort()在排序时会默认调用compareTo()

    public static void sort(long[] a) //参数是:数组名.
    public static void sort(long[] a,int fromIndex(包含),int toIndex(不包含)//参数分别是:数组名\起始下标\终止下标/*
    自定义排序
    */public class SortDemo1 {public static void main(String[] args) {//基本类型可以用sort()排序int [] num ={1,2,3,6,5};Arrays.sort(num);System.out.println(Arrays.toString(num));//引用类型也可以用sort()方法排序。Integer []b= {1,4,3,3,2,2,3};Arrays.sort(b);System.out.println(Arrays.toString(b));Student s1 = new Student("杨琳", 22);Student s2 = new Student("袁华磊", 21);Student s3 = new Student("王旭", 21);Student []students ={s1,s2,s3};Arrays.sort(students);System.out.println( Arrays.toString(students));}
    }//自定义类进行排序时,必须实现comparable接口
    public class Student implements Comparable<Student>{//<>里面写的是泛型,Student表示只能比较Student类对象。T为任意类对象。private String name;private int age;/*用构造方法创建对象,并给对象赋初值更方便。*/public Student(String name,int age){this.name = name;this.age = age;}@Overridepublic int compareTo(Student a) {//coppaerTo()用于比较两个对象的选定属性进行排序this-o是升序,o-this是降序。return this.age-a.age;}//this-o从小到大@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +'}';}
    }
  4. binarySearch()
    在有序数组中搜索某一特定元素的方法.

    算法描述:从中间元素开始,如果它是则输出中间元素.若中间元素大于目标值,则在数组前半段继续用该方法找,否则在数组后半段找.直到找到为止.

    声明:

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

    使用:

    public class ErFen {public static void main(String[] args) {int [] a = {3,5,1,4,2,6,3,8};Arrays.sort(a);//前提:能应用二分法的数组是有序的。System.out.println(Arrays.toString(a));System.out.println(Arrays.binarySearch(a,4));//二分法参数类型:数组名+key/*二分法参数类型:数组名+起始查找下标+结束查找下标+key。包含开始,不包含结束。如果没有找到查找的值,返回负数(最低位-1)*/System.out.println(Arrays.binarySearch(a,0,3,4));}/*   public static void search(){int low = fromIndex;//最小元素为第一个int high = toIndex - 1;最大元素为最后一个while (low <= high) {int mid = (low + high) >>> 1;//找到中间值的索引.int midVal = a[mid];//找到中间值if (midVal < key)low = mid + 1;else if (midVal > key)high = mid - 1;elsereturn mid; // key found}return -(low + 1);  // key not found.}*/
    }

String

  • 字符串是由多个字符组成的字符数组,它是常量,值改变后会创建一个新的对象

  • 结构:public final class String extends Object implements Serializable,Comparable,CharSequence

  • 创建形式

    
    String s = "111";//在栈中创建一个引用变量s,然后查找"111"是否在常量池中,如果在,则直接指向常量池中该字符串对应的对象,否则需要创建新的字符串对象.String s1 = new String("222");
    
  • 构造方法

             String s1 =  new String();//无参构造方法创建字符串,默认值为空串。String s2 = new String("abc");//有参构造方法可以直接给字符串赋值。char[] c1 =new char[]{'a','b','c'};String s3 =  new String(c1);String s4 =  new String(c1,0,2);//将字符数组特定区间转化为串。
  • 判断功能

    package com.ff.javaapi.arrays.day3;public class PD {public static void main(String[] args) {String s1 = "abcdef";String s2 = "Abcdef";System.out.println(s1.equalsIgnoreCase(s2));//不区分大小写比较System.out.println(s1.contains("b"));//判断s1中是否有bSystem.out.println(s1.isEmpty());//判断是否为空字符串System.out.println(s1.startsWith("abc"));//是否以abc开头System.out.println(s1.endsWith("def"));//是否以def结尾}
    }
    
  • 获取功能

    package com.ff.javaapi.arrays.day3;public class HQ {public static void main(String[] args) {String s1 = "abcde";System.out.println(s1.length());//获取字符串长度System.out.println(s1.charAt(0));//返回指定下标元素System.out.println(s1.indexOf("c"));//返回指定元素首次索引System.out.println(s1.lastIndexOf("c"));//从后往前找System.out.println(s1.substring(3));//从下表3开始截取到结束。System.out.println(s1.substring(0,3));//从指定区间截取。返回一新串。}
    }
  • 转换功能

    package com.ff.javaapi.arrays.day3;import java.util.Arrays;public class ZH {public static void main(String[] args) {char [] c = "ab|cde".toCharArray();//把字符串转化成字符数组。String s = String.valueOf(c);//把字符数组转化成字符串。String s1 = s.toLowerCase();//将字符串中的小写和大写都转化为小写,保存到新字符串。String s2 = s.toUpperCase();//将字符串中的小写和大写都转化为大写,保存到新字符串。String s3 = s1.concat(s2);//将s1、s2连接起来保存到新的字符串。System.out.println(s3);String [] s4 = s3.split("|");System.out.println(Arrays.toString(s4));}
    }
  • 替换功能

      s3.replace("被修改元素","改后元素").s4.trim()//去掉字符串首尾空格
    
  • 正则表达式

    package com.ff.javaapi.arrays.day3;public class Regex {public static void main(String[] args) {String s ="13325476225";System.out.println(s.matches("\\d"));//判断字符串为数字,默认为一位数字。System.out.println(s.matches("[6-9]"));//字符串在数字区间匹配,默认为一位。System.out.println(s.matches("[1,3,7,6]"));//字符串在数字集合中匹配,默认为一位。System.out.println(s.matches("\\d?"));//?表示一次或一次也没有。System.out.println(s.matches("\\d*"));//*表示没有或者有多次。System.out.println(s.matches("\\d+"));//+表示一次或者多次。System.out.println(s.matches("\\d{11}"));//{n}表示恰好n次。System.out.println(s.matches("\\d{11,}"));//{n,}表示至少n次。System.out.println(s.matches("\\d{11,11}"));//{n,m}表示至少n次,至多m次。System.out.println(s.matches("[1][3578]\\d{9}"));//大陆手机号码格式System.out.println(s.matches("[1-9]\\d{5,9}"));//QQ号码格式。System.out.println(s.matches("\\D*"));//S非数字匹配System.out.println(s.matches("\\s*"));//s空白字符System.out.println(s.matches("\\S"));//S非空白字符System.out.println(s.matches("[A-z]"));//[A-z]所有的字母。System.out.println(s.matches("\\w"));//w匹配所有的字母数字。System.out.println(s.matches("\\W"));//W匹配特殊符号即非单词字母。System.out.println(s.matches("\\w{6,13}@\\w{2,6}\\.(com|com.cn)"));//邮箱格式。}
    }

StringBuffer

  • package com.ff.javaapi.arrays.day3;/*多线程安全的字符串缓冲区.多用于字符串的拼接*/
    public class StringBufferDemo {public static void main(String[] args) {StringBuffer s = new StringBuffer("abc");//默认长度为16+字符串内容长度。s.append(666);//调用append()向末尾添加字符串。s.insert(0,111);//从指定位置插入字符串。System.out.println(s);s.delete(0,3);//删除指定区间字符串。参数为两个字符数组索引,包左不包右。System.out.println(s);s.replace(0,5,"A");//replace()表示替换,参数为字符数组索引,包左不包右。System.out.println(s);s.deleteCharAt(1);//deleteChatAt()从指定位置删除。System.out.println(s);s.reverse();//倒序。System.out.println(s);String s1=  s.substring(0,1);//截取,建一个数组。System.out.println(s1);}
    }

StringBuilder

  • 字符串缓冲区不支持多线程.

  • 三者不同

    String支持少量字符串常规操作.
    StringBuilder支持数量大,单线程的字符串操作.
    StringBuffer支持数量大,多线程的字符串操作.
    

Math

  • Math类包含执行基本数字运算的方法,如基本指数,对数,平方根和三角函数。

System

  • System类提供的System包括标准输入,标准输出和错误输出流; 访问外部定义的属性和环境变量; 一种加载文件和库的方法; 以及用于快速复制阵列的一部分的实用方法。

  • 方法

System.out()//输出
System.in()//输入
System.getenv();//返回当前系统环境的不可修改的字符串映射视图.
System.exit(int status);//停止虚拟机.
System.currentTimeMillers()//返回当前时间(以毫秒为单位)。
System.gc()//垃圾回收机制
System.gc()

Data

  • Data在java.util包中

  • 声明:

    Data data = new Data();//日期对象中封装了当前时间信息,精确到毫秒.
    data.getTime();//1970-1-1-00.00.00到现在的时间精确到ms.
    data.getYear()+1970;
    data.getMonth()+1;
    data.getData();//一个月中的第几天.
    data.getDay();//一周中的第几天.
    Data data = new Data( long date);//将long型时间转化成Data对象.

Calenar

  • 所述Calendar类是一个抽象类,可以为在某一特定时刻和一组之间的转换的方法.

  • 声明:All Implemented Interfaces:

    Serializable , Cloneable , Comparable < Calendar >

data.getData();//一个月中的第几天.
data.getDay();//一周中的第几天.
Data data = new Data( long date);//将long型时间转化成Data对象.

Calenar

  • 所述Calendar类是一个抽象类,可以为在某一特定时刻和一组之间的转换的方法.

  • 声明:All Implemented Interfaces:

    Serializable , Cloneable , Comparable < Calendar >

javaSE探赜索隐六(常用类API)相关推荐

  1. 生活常用类API推荐

    之前在网上看到了一些很不错的生活常用类的API,今天在这里整理出来分享给大家~ 阿里云 中华万年历API,中华万年历 宜忌测开张.测乔迁.测结婚.测签约.测动工.测栽种.测出行.测入宅.测纳彩:逢凶化 ...

  2. 重学JavaSE 第11章 : 常用类API、String、日期API、比较器、BigDecimal、System等

    文章目录 一.字符串相关的类 1.1.String类的概述 1.2.理解String的不可变性 1.3.String不同实例化方式的对比 1.4.String不同拼接操作的对比 1.4.1.Strin ...

  3. Java学习——常用类(API)

    每日好句好段: 不理智的善良,都是犯罪.不要哭泣,不能哭泣,哭泣解决不了任何的问题!在这个冰冷的世界上,唯有实力才是一切啊! 文章目录 前言 一.Arrays 二.StringBuilder 三.日期 ...

  4. javaSE探赜索隐之三<类与对象的爱恨情仇中>

    文章目录 引用和对象 值传递和引用传递 static关键字 引用和对象 引用,顾名思义,就是借用.调用的意思.引用类型的变量系统也会在栈里面开辟一定的存储空间,与8种基本类型不同的是,引用类型的变量里 ...

  5. 【JavaSE】【常用类03】String

    String 一.String类声明 二.String类底层存储结构 三.String对象的不变性 四.字符串常量池 1.到底什么是常量? 2.字符串常量池 五.字符串对象的创建 1.直接引用字符串常 ...

  6. [19/03/16-星期六] 常用类_Date时间类DateFormat类

    一.Date时间类 计算机中 以1970 年 1 月 1 日 00:00:00定为基准时间,每个度量单位是毫秒(1秒的千分之一) 用ong类型的变量来表示时间,如当前时刻数值:long  now =n ...

  7. javaSE探赜索隐之三<类与对象的爱恨情仇上>

    文章目录 面向对象思想 面向对象 面向过程 类 面向对象思想 面向对象 面向对象适合处理复杂的事情,先使用对象对整体关系作出分类,然后根据不同类进行细节处理. 面向对象关注于从宏观上把握事物之间的关系 ...

  8. javaSE探赜索隐之三--<类与对象的爱恨情仇下>

    封装 封装就是将类的某些信息隐藏在类的内部,不允许外部直接访问.而是通过该类提供的方法对隐藏的信息进行访问. public class Person {//隐藏类的信息,这样外部就不能访问privat ...

  9. Java(六)——常用类 --- 日期和日历类

    Date 表示当前的日期对象,精确到毫秒值. java.util.Date类 构造方法 无参数构造方法 new Date() 有long型参数的构造方法 new Date(long 毫秒值) Date ...

最新文章

  1. vs发生生成错误_S7报告系统错误:
  2. 数据变异性的度量 - 极差、IQR、方差和标准偏差
  3. Mybatis学习错误之:重复加载mapper.xml
  4. inotify+rsync实时同步服务部署
  5. this指针用法详解
  6. sql如何遍历几百万的表_Oracle PL/SQL调优技巧分享
  7. [转载] Java对返回值的封装
  8. 《计算机操作系统》(慕课版) 第1章 操作系统引论
  9. 利用CAM350快速完成拼板
  10. centos安装ab测试工具
  11. Dreamweaver CC 2019中文版
  12. Html中怎么用CSS让ul中多个li标签不换行横排显示
  13. oracle集群启动状态,循序渐进:Oracle 11.2 RAC集群进程的初始化与启动过程
  14. 【随堂笔记】数据结构基础
  15. 张艾迪(创始人):DCM的不识人.我说我会像乔布斯一样成为投资者的骄傲
  16. 音乐欣赏之古典乐曲经典开头
  17. 如何开发一个鸿蒙的应用软件,别急,华为工程师已经告诉你了!动手开发鸿蒙系统的第一款应用
  18. 学习笔记:CODESYS(顺序功能图SFC)
  19. mac报错: vue-cli-service: command not found
  20. PLC数据操作系列之构造不同应用场景的缓存栈FIFO(算法详解)

热门文章

  1. MCE公司:黄芩苷通过激活肝脏 CPT1 酶改善饮食诱导的肥胖和脂肪肝病变
  2. 《数学之美(第一版)》笔记 —— 第6章
  3. Android_水平滚动控件HorizontalScrollView
  4. laydate-v5.0.9自定义小时范围和分钟间隔(半小时)
  5. Oracle取某个时间点前后的整半小时的时间点
  6. 高中就开始学的正态分布,原来如此重要
  7. ZYNQ PS GPIO MIO 基础知识
  8. formidable词根词缀_实用文档之英语单词(词根词缀)
  9. 推荐几款云服务器上搭建属于自己的私人网盘
  10. [渝粤教育] 西南科技大学 电子信息工程专业导论 在线考试复习资料