javaapi中文手册_java调用api接口[通俗易懂]

javaapi中文手册_java调用api接口[通俗易懂]JavaAPI_javaapi

javaapi中文手册_java调用api接口[通俗易懂]"

目录

一、API 概述

二、Object类

Object中定义的一些方法

toString()

equals()

三、基本类型包装类

自动装箱与自动拆箱

四、Arrays

对于自定义类

数组的扩容

五、String

String类中的构造方法

String中的判断功能

String中的获取功能

String中的替换功能

六、正则表达式

七、StringBuffer

八、Stringbuilder

九、Math,Random

十、日期相关类

Data

Calender(日历)

SimpleDateFormat

十一、BigInteger    BigDecimal

BigInteger

BigDecimal


一、API 概述

Java–API(官方对提供的类,接口功能进行说明的文档)

API文档 在文档中对Java语言中提供的类和接口的功能进行说明

二、Object类

在继承中,当一个类没有直接使用extends关键字继承其他类时,这个类默认继承Object类,Object是整个Java类体系中最顶级的类

Object中定义的一些方法

toString()

在输出对象时,将对象转为字符串形式,默认调用类中的toString()

如果类中没有toString(),那么会调用父类的方法,Object类中的toSrting默认输出对象内存地址需要对象中的值,

拿到类名 @ hashCode()难道对象在内存中的哈希值(10进制整数)

Integer.toHexString(哈希值) 转为16进制整数

public String toString() {     
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

equals()

== 基本类型比较 比较值是否相等

引用类型比较 比较的是引用变量所指向的内存空间的地址是否相等

有时需要比较对象内容是否相等,重写object中equals()方法比较内容是否一致

常用的String,Integer….几乎都重写了这一方法

public boolean equals(Object obj) {    
    return (this == obj);  
}

三、基本类型包装类

基本类型———-8中基本数据类型

byte short int long float double Boolean char

基本类型通过8种关键字,声明定义

int a=10;值就为10 结构简单,实际使用时存在很多的不便。

基本数据类型,使用关键字定义,不是面向对象的,实际使用时存在很多的不便。

在Java语言种,为每种基本类型都提供了一个类进行包装表示,这样就是以面向对象的方式进行操作

public static void main(String[] args) {
        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);
        System.out.println(Integer.BYTES);//4
        System.out.println(Integer.SIZE);//32
        System.out.println(Integer.toBinaryString(3));//11
        System.out.println(Integer.toOctalString(9));//11
        System.out.println(Integer.toHexString(15));//F

        //通过构造方法,将字符串数字,将基本类型的值,包装到一个包装类对象中,
//        使用面向对象方式进行操作
        Integer integer = new Integer("10");
        Integer integer1 = new Integer(10);

        System.out.println(integer==integer1);//比较地址
        System.out.println(integer.equals(integer1));//比较内容

        System.out.println(integer.compareTo(integer1));//比较对象内容大小

        int a=integer.intValue();//返回包装类型的原始基本值

        int c=Integer.parseInt("100");//把字符串数字 转为基本类型int

        Integer d=Integer.valueOf(10);//把基本类型转为包装类型
        Integer e=Integer.valueOf("100");//把字符串数字也可以转为包装类型


    }

自动装箱与自动拆箱

基本类型与基本类型包装类之间的转换:
             有时需要以面向对象方式操作,希望拿到包装类型
             有时需要获取包装类型的基本数据类型
                自动装箱:把基本类型 转为包装类型
                自动拆箱:把包装类型 转为基本类型

public static void main(String[] args) {
                int a=10;
                /*
                    把基本类型,直接付给引用类型,进行包装,产生了一个Integer类的对象
                    称为自动装箱
                    【-128,127】
                    integer类中为了节省空间,对-128----127之间的255个对象进行缓存
                    在这之间直接从数组中获取,值相同的时候,取得的对象是相同的
                    如果不在这之间,每次会创建新的对象
                      Integer a=127; 默认会调  Integer.valueof(int i)
                 */
                Integer ba=a;
                /*
                    把包装类型 转为基本类型
                    称为自动拆箱
                 */
                Integer c=new Integer(10);
                int d=c;//拆箱时,默认会调用c.intvalue();取出其中的int值  是隐式的
    }

四、Arrays

public static void main(String[] args) {
        int []a={9,8,7,6,5,4,3,2,1};
        System.out.println(Arrays.toString(a));//输出数组
        Arrays.sort(a);//对数组进行排序
        System.out.println(Arrays.toString(a));

        int []b={9,8,7,6,5,4,3,2,1};
        Arrays.sort(b,2,7);//对指定下标 进行排序
        System.out.println(Arrays.toString(b));

        System.out.println(Arrays.binarySearch(a,55));
        //二分搜索 查找值的下标  返回下标  不存在返回  -(插入点)  -10
        System.out.println(Arrays.binarySearch(a,0,5,6));
        //在指定下标范围内查找元素 返回下标 不存在返回  -(插入点)  -6
        System.out.println(Arrays.binarySearch(a,0,5,3));
        
        int []c={1,2};
        int []d={1,2,3};
        System.out.println(Arrays.equals(c,d));//flase比较数组是否相等
    }

对于自定义类

Comparable是Java中进行排序功能,进行方法的定义

public static void main(String[] args) {

        String []arrays={"b","c","d","a"};
        Arrays.sort(arrays);
        System.out.println(Arrays.toString(arrays));
        /*
            有四位学生,想对他们排序
         */
        Student student1 = new Student(101,"jim1");
        Student student2 = new Student(102,"jim2");
        Student student3 = new Student(103,"jim3");
        Student student4 = new Student(104,"jim4");
        Student []students=new Student[4];
        students [0]=student4;
        students [1]=student3;
        students [2]=student2;
        students [3]=student1;

        /*
            使用Array。sort()对自定义的数组进行排序
            Animal a=new cat();
            Dog b=(Animal)a;类型不匹配

         */
        Arrays.sort(students);
        System.out.println(Arrays.toString(students));
        //输出的是对象的地址,在Student中重写
/*
/*
        compareto就是提供的自定义排序比较规则的方法
        此方法会在sort()方法中的源码中调用
        返回值是整数,小于0,等于0,大于0
     */
    @Override
    public int compareTo(Student o) {
        return this.num-o.num;//定义通过学号进行排序
    }
    */



    }

数组的扩容

 public static void main(String[] args) {
        /*
            java中的数组长度是固定的,但是程序运行时的数据长度是变化的
            又时数据多了,需要对数组进行扩容
         */
        int []a={1,2,3,4,5};
        //int []b=new int[a.length*2];
        //创建一个指定容量的新数组,并把原来的数组复制到新数组中
        //Arrays.copyOf(原数组,新数组长度);
        int[]b=Arrays.copyOf(a,a.length*2);
        System.out.println(Arrays.toString(b));



    }

五、String

开发使用频率最高的类型 字符串

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

字符串:一串字符,一串字符由多个单个字符组成,只是对外表示为一个整体,底层还是一个一个的独立的字符。

字符:指的是一个单独的字符 计算机中能显示的所有符号都是一个个独立是,对应一个编码表。

Java中字符串不变:他们的值在创建后不能被更改

public static void main(String[] args) {
        /*
            字符串
            private final char value[];['a','b','c']
                          byte value[];[97,98,99]
         */
        String s="abc";//在内存中创建了一个String对象,创建后值就不可改变
        String s1=new String("abc");//字符串地址是1001
                s1+="def";
         //字符串地址是1002  创建一个字符串对象,把新数组填充到字符串中,给新数组地址赋为是s1
        System.out.println(s1);
    }

创建字符串对象

String s1=“abc”;

String s2=”abc”;

System.out.println(s1==s2);//true
        //隐式的创建,会先去字符串常量池中检测,有没有对应的字符串对象
        //字符串常量池:堆内存中
        //如果没有,就会在字符串常量池创建一个字符串对象
        //如果有,就会直接将字符串常量池中的地址返回

String类中的构造方法

public static void main(String[] args) {
        /*
            String类中的构造方法
            String()   无参构造
            String(String s)  有一个 String类型参数
            String(byte[] b)  把一个byte数组转为字符串
            String(char[] c)  把一个char类型数组转为字符串
            String()
         */
        String s=new String();
        String s1=new String("abc");
        byte[] bytes="abc".getBytes();
        System.out.println(Arrays.toString(bytes));
        //编码 :把字符串转为byte数组  数字化传输
        String s2=new String(bytes);
        System.out.println(s2);
        //解码 :把byte数组转为字符串

        //getBytes()转为byte数组
        //toCharArray()转为char数组

        char[] chars="cba".toCharArray();
        Arrays.sort(chars);
        String s3=new String(chars);
        System.out.println(s3);
        /*
            排序
            char[] chars="cba".toCharArray();
            将字符串转为数组,以数组的形式进行操作,把char数组转为字符串
         */
        System.out.println(String.valueOf(chars));

String中的判断功能

public static void main(String[] args) {
        /*
            boolean equals(Object obj) 重写object的方法判断内容是否相同
            boolean equalsIgnoreCase(String str) 不区分大小写比较内容
            boolean contains(String str)  是否包含某个指定的子串(连续的)
            boolean isEmpty()   判断是否为空  ""
            boolean startsWith(String prefix) 判断是否以指定子串为开头
            boolean endsWith(String suffix) 判断是否以指定子串结尾
            boolean compareTo(String anotherString)  按照字典比较字符串
         */
        String s1="abc";
        System.out.println(s1.equals("ab"));
        System.out.println(s1.equalsIgnoreCase("ABC"));
        System.out.println(s1.contains("bc"));
        System.out.println(s1.isEmpty());
        System.out.println(s1.startsWith("a"));
        System.out.println(s1.endsWith("bc"));

        System.out.println("a".compareTo("b"));
    }

String中的获取功能

public static void main(String[] args) {
        /*
            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)截取字符串,指定开始,指定结束
         */
        String s="abcdecfdsdfs";
        System.out.println(s.length());

        char a=s.charAt(2);
        System.out.println(a);//c

        int index=s.indexOf("c");
        int index1=s.indexOf("c",index+1);
        System.out.println(index);
        System.out.println(index1);

        String sub=s.substring(2);
        String sub1=s.substring(2,5);
        //sub是新字符串  s不变
        System.out.println(sub);
        System.out.println(sub1);
    }

String中的替换功能

替换功能
            String replace(char old,char new)  新的替换旧的
            String replace(String old,String new)用新的字符串替换指定的所有的子串
            replaceAll(String regex, String replacement) regex
            用新的字符串替换指定的所有的子串,使用正则表达式匹配
            replaceFirst(String regex, String replacement)
            用新的字串替换指定的第一个子串
              *去除字符串两端的空格,中间的空格不能去除

六、正则表达式

正则—-规则—-模式 去匹配某个字符串,看字符串是否满足某种规则

String s=”dsfsgsa64565654″;//手机号格式

可以通过正则表达式来制定一个规则,用规则去匹配某个字符串,可以快速的进行模式匹配。

使用字符串对象中的内容,去与指定的正则表达式匹配,成功返回true,否则返回false

matches(“正则表达式”)学习正则表达式常用的特点的字符

匹配数字[0-9],[1,2,3,4], \d, \D(非数字)

匹配单词字符 \w == [a-z,A-Z,0-9,_] .匹配任意的字符 需要进行转义

匹配数量 ? * + {n} {n,} {n,m}

.表示任意字符 有时需要转义 //.

 String s="13754245437";
        //boolean res=s.matches("[0-9]");
        //boolean res=s.matches("[1,2,3,4]");
        //boolean res=s.matches("\\d");
        //boolean res=s.matches("\\D");
        //boolean res=s.matches("[0-9]?");//?表示一次或一次也没有
        //boolean res=s.matches("[0-9]*");  *0次或多次
        //boolean res=s.matches("[0-9]+"); +一次或多次
        //boolean res=s.matches("[0-9]{6}");  固定的n位
        //boolean res=s.matches("[0-9]{6,}");  //至少是n位
        //boolean res=s.matches("[0-9]{6,9}");  //最少是n位,最大m位
        //boolean res=s.matches("[1][3,5,7,8,9]\\d{9}"); 手机号码
        boolean res=s.matches("[1-9]\\d{6,12}");
        System.out.println(res);


        String s = "aa9644_";
        //boolean res=s.matches("[a-z]"); 小写
        //boolean res=s.matches("[A-Z]"); 大写
        //boolean res=s.matches("[A-z]"); 大小写
        boolean res=s.matches("\\w+"); // [a-z,A-Z,0-9,_]
boolean res = s.matches("[\\u4e00-\\u9fa5]+");//匹配汉字
        System.out.println(res);


//邮箱规则?  有字母, 数字   @ qq/163/sina,yahu .com/com.cn(或)
boolean res  = s.matches("\\w{6,10}@\\w{2,6}\\.(com|com\\.cn)");

七、StringBuffer

          String对象的值是不可改变的,产生问题,经常拼接字符串时,会创建对各字符串对象,造成浪费
            如果某一些场景需要大量拼接字符串,可以使用StringBuffer

  StringBuffer: 线程安全的,可变的字符串
         

public static void main(String[] args) {
        /*
          
            capacity 容量=16
            new StringBuffer()默认底层数组容量是16
            new StringBuffer(20) 指定底层数组容量是20
            new StringBuffer("abcd")容量是  内容长度+16
            char[] value 没有被final修饰,可以改变
         */
        StringBuffer s=new StringBuffer("abcd");//4+16=20
            s.append("efg");//在末尾添加字符串,并没有创建新的StringBuffer和底层数组对象
            s.append("fksdjfljfojfosdjfosdj");
            //当底层数组容量不够时,会创建一个新的数组对象赋给value数组
        s.insert(1,"000");//在指定的位置上插入字符串
        System.out.println(s);
        s.deleteCharAt(1);//删除指定位置的字符串
        System.out.println(s);
        s.delete(1,2);//删除指定区间的字符串
        System.out.println(s);
        s.replace(2,5,"55");//替换字符串
        System.out.println(s);
        s.reverse();//反转字符串
        System.out.println(s);
        //上面都是在底层数组进行操作

        String s1  = s.substring(2,8);//截取时,返回一个新的字符串,原字符串不变,新创建一次
        System.out.println(s1);
        System.out.println(s);
    sofjds
jdsofjdsofjofjlfjdskfgfe550a

    }

八、Stringbuilder

StringBuffer 是线程安全的 这个类中的方法上加了一个synchronized(同步锁)关键字, StringBuilder 类中的方法没有加synchronized关键字,是多线程不安全

StringBuffer 和 StringBuilder区别

不同点: StringBuffer是线程安全的 StringBuilder是线程不安全的(适合单线程情况)

相同点: 都是可变的字符串对象

底层都有一个char数组,

char[] value; 创建之初,会创建一个指定容量的数组,增删改查都是在此数组上操作. ​ 数组如果空间不够,会新创建一个数组,Arrays.copyOf();

最终实现,调用的都是AbstractStringBuilder父类中方法实现.

String,StringBuffer 和 StringBuilder区别

String 值不可改变,适用于少量拼接的

StringBuffer 可变 多线程安全的 适用于大量拼接的

StringBuilder区别 可变 多线程不安全的 适用于大量拼接的

九、Math,Random

/*
            Math类: 提供了许多关于数学运算的方法 例如平方根,四舍五入,三角函数
         */
        System.out.println(Math.PI);//Π
        System.out.println(Math.abs(-9));//绝对值
        System.out.println(Math.sqrt(9));//平方根
        //public static native double pow(double a, double b);
        //native修饰的方法是本地方法(操作系统中的方法),没有方法体,java没有实现,直接调用C/C++系统
        System.out.println(Math.pow(2,3));//求幂次方

        System.out.println(Math.random());//返回0-1之间的随机数
        System.out.println(Math.round(5.4));//四舍五入
        System.out.println(Math.floor(5.9));//向下取整
        System.out.println(Math.ceil(5.1));//向上取整
        System.out.println(Math.max(2,5));//返回大的


        Random random=new Random();
        System.out.println(random.nextInt());//返回int型随机数 int范围内


        System.out.println(random.nextInt(10));//0-9之间 不包含10
        //获取指定区间的随机数

十、日期相关类

Data

public static void main(String[] args) {
        /*
            想知道此时程序运行的时间
             Date date =new Date();
             创建一个日期对象,包含程序员运行那一刻的时间信息
         */
        Date date =new Date();
        System.out.println(date);
        //Thu Dec 29 20:43:39 CST 2022
        System.out.println(date.getYear()+1900);//2022-1900
        System.out.println(date.getMonth()+1);//月份从0开始
        System.out.println(date.getDate());
        System.out.println(date.getDay());
        System.out.println(date.getHours());
        System.out.println(date.getMinutes());
        System.out.println(date.getSeconds());
        //删除线 表示选择的Java版本中已经不建议使用,有新的方法代替
        System.out.println(date.getTime());
        //返回1970.1.1 0:0:0 至今(程序运行时间)的毫秒差
        //1672318611802L

    }

Calender(日历)

日历类中,提供了更多关于日期时间的方法

public static void main(String[] args) {
        /*
            输入一个日期(年月日),计算是当年的第几天
            日历类中,提供了更多关于日期时间的方法
         */
        //Calendar calendar=Calendar.getInstance();
        //返回的是Calendar这个抽象类的子类对象
        Calendar calendar=new GregorianCalendar();
        System.out.println(calendar.get(Calendar.YEAR));
        System.out.println(calendar.get(Calendar.MONTH)+1);
        System.out.println(calendar.get(Calendar.DATE));
        System.out.println(calendar.get(Calendar.DAY_OF_YEAR));
        //今年的第几天
        System.out.println(calendar.get(Calendar.WEEK_OF_YEAR));
        //今年的第几周
        System.out.println(calendar.get(Calendar.DAY_OF_WEEK));
        //这周的第几天 从0开始
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
    }

SimpleDateFormat

 public static void main(String[] args) throws ParseException {
        /*
            SimpleDateFormat 简单的日期格式化
            Java中表示日期  new Date()  new GregorianCalendar();
            在前端需要显示时,需要把Java中的Date对象,转为指定格式的字符串
            Date date=new Date();
        String s=date.getYear()+"-"+date.getMonth();  不灵活
         */
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy年MM-dd HH:mm:ss");
        Date date=new Date();
        String s=simpleDateFormat.format(date);
        System.out.println(s);
        // 把日期对象转为字符串
​
        /*
            把字符串转为日期对象
            2001-4-1 从前端获取的都是String,获取年月日非常麻烦
            将字符串日期转为date对象,就可以以面向对象的方式操作
         */
         String bir="2002-4-4";
        SimpleDateFormat simpleDateFormat1=new SimpleDateFormat("yyyy-MM-dd");
        Date date1=simpleDateFormat1.parse(bir);
        System.out.println(date1.getYear()+1900);

十一、BigInteger    BigDecimal

BigInteger

类型可以准确地表示任何大小的整数值而不会丢失任何信息。

public static void main(String[] args) {
        /*
            BigInteger  大整数

         */
        //System.out.println(Long.MAX_VALUE);//9223372036854775807
        BigInteger a=new BigInteger("999999999999990000000999999999999");
        BigInteger b=new BigInteger("11111111111111111111111");
        BigInteger c=a.add(b);// add+ subtract()- multiply()* divide()/
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
    }

BigDecimal

计算机中 float double 都是浮点数,计算机是二进制的,浮点数会失去精度
            根本原因是:十进制值通常没有完全相同的二进制表示形式;十进制数的二进制表示形式可
                    能不精确。只能无限接近于那个值
             例如
               2  —   10
               2.5 —   无限接近的一个近似值

public static void main(String[] args) {
   
        /*double a = 1.0-0.9;//0.09999999999999998
        double b = 0.8-0.7;//10000000000000009
        System.out.println(a);
        System.out.println(b);
        System.out.println(a==b); // false*/

        BigDecimal a=new BigDecimal("1.0");
        BigDecimal b=new BigDecimal("0.9");
        BigDecimal c=a.subtract(b);
        System.out.println(c);
        // add+ subtract()- multiply()* divide()/
    }

今天的文章javaapi中文手册_java调用api接口[通俗易懂]分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/71703.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注