javaApi常用类 详解

API

应用程序编程接口

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

基本数据类型包装类

基本数据类型 byte short int long double float char boolean

包装类 这些类封装了一个相应的基本数据类型数值,并为其提供了一系列操作方法。

package com.ff.javaapi.day1;

public class IntDemo {

    public static void main(String[] args) {
        int num=10;
        System.out.println(num);
        //构造方法
        Integer num1=new Integer(10);//将int 值包装在 Integer类对象中
        Integer num2=new Integer("11");//将String值 包装在Integer类对象中
        //Integer类中 提供了很多方法对 int类型进行操作
        System.out.println(Integer.MAX_VALUE);//最大值
        System.out.println(Integer.MIN_VALUE);//最小值
        System.out.println(Integer.SIZE);//表示二进制补码二进制形式的 int值的位数。
        System.out.println(Integer.BYTES);//表示二进制补码二进制形式的 int值的字节数。
        System.out.println(Integer.toHexString(18));//由参数以十六进制表示的无符号整数值的字符串表示
        System.out.println(Integer.toOctalString(14));//八进制
        System.out.println(Integer.toBinaryString(6));//二进制

        System.out.println(num1.equals(num2));//equals比较的是两个对象具体包含的值是否相等
        System.out.println(num1==num2);//用于比较引用对象是 比较的是对象的地址是否相等
        
        //int 引用类型转换为基本类型
        Integer num3=new Integer(5);
        int num4=num3.intValue();//取出对象中具体包含的值
        long num5=num3.longValue();
        int num6=Integer.parseInt("6");

        //基本类型转换为引用类型
        Integer num7= Integer.valueOf(7);
        Integer num8= Integer.valueOf(7);
        System.out.println(num7==num8);
        
        //数值转换为字符串
        System.out.println(num7.toString());
        System.out.println(Integer.toString(9));


    }

}

装箱和拆箱

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

package com.ff.javaapi.day1;

public class IntDemo2 {
    //装箱 基本类型转换为引用类型 默认调用 valueOf()
    //拆箱 引用类型转换为基本类型  默认调用  intValue()
    Integer num1=new Integer(5);
    int num3=2;
    int num2=num1;
    Integer num4=num3;
}

valueOf

package com.ff.javaapi.day1;

public class IntDemo1 {
    public static void main(String[] args) {
        Integer num1=new Integer(2);
        Integer num2=new Integer(2);
        System.out.println(num1.equals(num2));//true  Integer中的equals比较的是值是否相等
        System.out.println(num1==num2);//false 比较的是地址是否相等
       /*
       valueOf 值在-128到127   在创建对象时如果多个值相同并且数值在valueOf值范围内 多个对象指的是同一个内存地址
        */
        Integer num3=Integer.valueOf(8);
        Integer num4=Integer.valueOf(8);
        System.out.println(num3.equals(num4));//true
        System.out.println(num3==num4);//true

    }


}

Object

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

equals方法

object类中 equals比较的是对象地址是否相等 相当于==

package com.ff.javaapi.day1.object;

public class ObjectDemo2 {
    public static void main(String[] args) {
        Person p=new Person("siri",8);
        Person p1=new Person("siri",8);
        /*
        object类中 equals比较的是对象地址是否相等 相当于==
        public boolean equals(Object obj){
        return (this==obj);
        }
         */
        System.out.println(p.equals(p1));//true
        System.out.println(p==p1);//false
         //其他类基本上都重写了equals方法
        String a="abc";
        String b="abc";
        System.out.println(a.equals(b));//true

        Integer c=10;
        Integer d=10;
        System.out.println(c.equals(d));//true
    }


}
package com.ff.javaapi.day1.object;

import java.util.Objects;

public class Person {
    String name;
    int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
//重写的toString()方法
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
//重写的equals()方法
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Person person = (Person) o;
        return age == person.age &&
                Objects.equals(name, person.name);
    }

}

toString方法

package com.ff.javaapi.day1.object;

public class ObjectDemo {
    public static void main(String[] args) {
        Person p=new Person("wangcao",8);//上面的Person类
        /*
        将对象输出是时会调用toString()
        当类中没有定义toString()时会调用 Object类中的toString()

         */
        System.out.println(p);
    }

}

Arrays类

String类/StringBuffer类/StringBuilder类

字符串是由多个字符组成的一串数据的字符串常量

java中所有字符串都是String类的实例.

创建形式:

第一种 String s = “abc”;
第二种: String s = new String(“abc”);

package com.ff.javaapi.day1.string;

public class StringDemo1 {
    public static void main(String[] args) {


    /*
    字符串对象创建的两种方式
    String a="abc"; 第一次创建时会在字符串常量池中检测有没有  没有的话就创建一个 如果常量池中有 则直接指向这个字符串的地址
    String b=new String("bcd"); 只要是new出来的 就在内存中是独一无二的空间
     */
    String a="abc";
    String b="abc";
        System.out.println(a.equals(b));
        System.out.println(a==b);

        String c=new String("bcd");
        String d=new String("bcd");
        System.out.println(c.equals(d));
        System.out.println(c==d);

    }
}

字符串是常量但是不能改变 一旦改变是在内存中创建新的对象

package com.ff.javaapi.day1.string;

public class StringDemo2 {
    /*
    字符串是常量但是不能改变 一旦改变是在内存中创建新的对象
    private final char value[]
    字符串的底层是char数组存储
    final修饰的值不能改变
     */
    public static void main(String[] args) {
        String s="abc";
        s+="def";
        s+="hi";
        s+="gk";
        s+="lmn";
        System.out.println(s);//abcdefhigklmn
    }
}

判断功能
package com.ff.javaapi.day1.string;

public class StringDemo3 {
  
    public static void main(String[] args) {


        String a = "abcd";
        String b="abcD";
        String c="ab";
        String d="";
        System.out.println(a.equals(b));//a和b的值是否相等
        System.out.println(a.equalsIgnoreCase(b));//不区分大小写比较值是否相等
        System.out.println(a.contains(c));//a字符串中是否包含c字符串
        System.out.println(d.isEmpty());//d是否为空
        System.out.println(a.startsWith(a));//判断a字符串是不是有b这个字符开头
        System.out.println(a.endsWith(c));
    }
}

获取功能
package com.ff.javaapi.day1.string;

public class StringDemo4 {

    public static void main(String[] args) {
        String s="djaihsnaca";
        System.out.println(s.length());//获取s字符串的长度
        System.out.println(s.charAt(5));//获取索引为5的位置的值
        System.out.println(s.indexOf("i"));//获取值为i的索引
        System.out.println(s.indexOf("h",2));//返回h第一次出现的字符串内的索引,以2的位置开始搜索
        System.out.println(s.substring(2));//截取索引2(包括2)后面的字符串
        System.out.println(s);
        System.out.println(s.substring(3,8));//截取索引3-8的字符串不包括8
    }
}

转换功能
package com.ff.javaapi.day2;

import java.io.UnsupportedEncodingException;
import java.util.Arrays;
public class StringDemo5 {

    public static void main(String[] args) {
        String s = "abAd";
        byte[] b = s.getBytes();//编码 字符转为字节
        System.out.println(Arrays.toString(b));
        String s1 = new String(b);//解码 字节转为字符
        System.out.println(s1);

        String s4 = "中文";
        try {
            byte[] b1 = s4.getBytes("utf-8");
            System.out.println(Arrays.toString(b1));
            String s5 = new String(b1, "gbk");//乱码 因为编码用utf-8 解码用gbk
            System.out.println(s5);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }


        String ss = "lolto";
        char[] c = ss.toCharArray();//转换为数组 编码
        System.out.println(Arrays.toString(c));
        String s2 = new String(c);
        System.out.println(s2);//解码

        String s3 = String.valueOf(c);//将char数组转换为字符串
        System.out.println(s3);


    }

}


package com.ff.javaapi.day2;

import java.util.Arrays;

public class StringDemo2 {
    public static void main(String[] args) {
        String s="AbCDefG";
        System.out.println(s.toUpperCase());//全部转换为大写
        System.out.println(s.toLowerCase());//全部转换为小写

        String s1="xxxx";
        System.out.println(s.concat(s1));//向字符串的尾部拼接一个字符串  效率高
        String s2=s+s1;//效率最低的字符串拼接
        System.out.println(s2);

        String s3="abc:d:ef:ghi:jk";
        String []s4=s3.split(":");
        System.out.println(Arrays.toString(s4));
        String s5="ab1cde2f3g4hijk5m";
        String[]s6=s5.split("\\d");//将字符串用指定的正则表达式 分割为字符串数组
        System.out.println(Arrays.toString(s6));
    }
}

StringBuffer

StringBuffer解决了字符串每次拼接都要构建一个新的String对象既耗时,又浪费空间的问题

线程安全的可变字符序列

package com.ff.javaapi.day2;

public class StringBufferDemo {
    public static void main(String[] args) {
        StringBuffer s=new StringBuffer();无参的构造方法 底层创建一个长度为16的char数组
        StringBuffer s1=new StringBuffer(10);
        StringBuffer s2=new StringBuffer("df");
        //大量的字符串拼接 使用StringBuffer 不会创建新的对象
      s.append("aaa");//拼接字符串
      s.append("abc");
//        System.out.println(s);
        s2.append("abc");
        s2.insert(1,"xxx");//向指定位置插入字符串
//        s2.delete(0,2);//删除0-2位置的字符
//        s2.deleteCharAt(4);//删除索引为4位置的字符
//        s2.replace(1,2,"d");//将1-2索引位置的字符替换为d
//        s2.reverse();//字符串反转
        System.out.println(s.substring(2,5));//将字符串索引为2-5位置的字符串截取出来
        System.out.println(s);
        System.out.println(s2);


    }
}

StringBuilder

与StirngBuffer基本一样

String 和StringBuffer,StringBuilder的区别

String 内容不可变

StringBuffer 线程安全 内容可变

StringBuilder 内容可变

Math类/Random类/System类

  public static void main(String[] args) {

//        long round(double a) double型的数据a转换为long型(四舍五入)
        double a=-2.45;
        double b=9.00;
        System.out.println(Math.abs(a));//绝对值
        System.out.println(Math.sqrt(b));//平方根
        System.out.println(Math.pow(Math.abs(a),b));//a的b次幂
        System.out.println(Math.max(a,b));//最大值
        System.out.println(Math.min(a,b));//最小值
        System.out.println(Math.random());//0.0 到 1.0 的随机数
        System.out.println(Math.round(a));//四舍五入
        System.out.println(Math.floor(8.2));
        System.out.println(Math.ceil(8.2));

    }
   public static void main(String[] args) {

        Random r=new Random();//随机数
        double b1=r.nextDouble();
        double b2=r.nextDouble()*5+1;
        System.out.println(b1);
        System.out.println(b2);
        System.out.println( r.nextBoolean());

        byte []b=new byte[5];
       r.nextBytes(b);
        System.out.println(Arrays.toString(b));

        Random r1=new Random(100);
        Random r2=new Random(100);
        for (int i = 0; i < 100; i ++) {
            System.out.println(r1.nextInt(10)+", "+r2.nextInt(10));
        }

    }
  public static void main(String[] args) {
//        System.out.println("旺财");
//        System.exit(0);//退出虚拟机
//        System.out.println("旺财1");

        long start = System.currentTimeMillis();//返回以毫秒为单位的当前时间
        for (int x = 0; x < 100000; x++) {
            System.out.println("hello" + x);
        }
        long end = System.currentTimeMillis();
        System.out.println("共耗时:" + (end - start));
    }

Date类/Calendar类/ SimpleDateFormat类

 
public class DateUtil {

//固定格式的字符串转日期
public static Date stringToDate(String s) throws ParseException {
    if (s==null)
        throw new NullPointerException("日期为空");
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
   return sdf.parse(s);

}

//自定义格式的字符串转日期
    public static Date stringToDate(String s,String p) throws ParseException {
        if (s==null)
            throw new NullPointerException("日期为空");
        SimpleDateFormat sdf=new SimpleDateFormat(p);
        return sdf.parse(s);

    }

    //将当前日期转为指定格式字符串
public static String dateToString(String p){
    SimpleDateFormat sdf=new SimpleDateFormat(p);
   return sdf.format(new Date());
}
//将指定的时间对象 转为指定格式的字符串
    public static String dateToString(Date date,String p){
        SimpleDateFormat sdf=new SimpleDateFormat(p);
        return sdf.format(date);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值