0
点赞
收藏
分享

微信扫一扫

java - 常用API、常用类

穆熙沐 2022-01-24 阅读 188
java

常用API


    什么是API?
        应用程序编程接口;就是java已经写好的一些方法,可以直接拿过来用。
    Object类的作用:
        一个类要么默认继承了Object类,要么间接继承了Object类,Object类是java中的祖宗类
        Object类的方法是一切子类都可以直接使用的。
    Object类的常用方法
        public String toSting()
            默认是返回当前对象在堆内存中的地址信息:类的全限名@内存地址
            toSting()方法存在的意义就是为了被子类重写,以便返回对象的内容信息而不是地址信息。
        public Boolean equals(Object)
            默认是比较当前对象与另一个对象地址是否相同,相同返回true,不同返回false
        public Boolean equals(Object o)
            默认是表当前对象与另一个对象的地址是否相同,相同返回true,不同返回false;与“==”比较功能一致。
            父类equals方法存在的意义就是为了被子类重写,以便子类自己来定制比较规则。
    Objects
        概述:
            Objects类与Object是继承关系,Objects类是从JDK1.7开始有的
            官方在进行字符串比较时,没有用自己的equalse方法,而是选择了Objects的equals方法来进行比较两个对象。
            1.判断是否是同一个对象比较,如果是返回true。
2.如果不是则判断内容是否一致,如果是返回true,不是返回false
            Object的equals方法比较的结果是一样的,但是更安全。
        常见方法:
            public static boolean equals(Object a, Object b)
                比较两个对象,底层会先进行非空判断,从而可以避免空指针异常。在进行equals比较。
                            String s1 = null;
        String s2 = new String("hhh");
        System.out.println(s1.equals(s2));//有隐患,可能出现空指针异常
        System.out.println(Objects.equals(s1,s2));//更安全,结果更准确(开发优先使用)
            public static boolean isnull(Object obj)
                判断变量是否为null,为null返回true,反之

常用类

常用类
    String 
        String概述
            java.lang.String类代表字符串,String类定义的变量可以用于指向字符串对象,然后操作该字符串。
            java程序中所有的字符串文字(例如“abc“)都为此类对象。
        String类的特点详解
            String是什么,可以做什么?
                字符串类型, 可以定义字符串变量指向字符串对象。
            String是不可变字符串的原因?
                string变量每次的修改其实都是产生并指向了新的字符串对象。
                原来的字符串对象都是没有改变的,所以称为不可变字符串。
            创建字符串对象的2种方式:
                方式1:直接使用“”定义(推荐方式)
                方式2:通过String类的构造器创建对象
                有什么区别吗?
                    以“”方式给出的字符串对象,在字符串常量池中存储,而且相同内容只会在其中存储一份。
                    通过构造器new对象,每new一次都会产生一个新对象,放在堆内存中。
            字符串的内容比较:
                使用equals比较,只比较内容即可;== 比较的是内容和储存的存储地址。
        String类方法
            获取字符串长度    int length();
            获取特定位置的字符  char   charAt(int index);  
            获取特定字符的位置  int   indexOf(char ch);
int   indexOf(String str);
            获取指定字符最后一个的位置  int  lastIndexOf(char ch);
            字符串的拼接   concat();
            将字符数组转为字符串
                String(char[] chs);
                String(char[] chs, int offset, int count)
                static String valueOf(char[] chs);
            将字符串转为字符数组
                char[]   toCharArray();
            字符串替换
                 String  replace(char oldChar, char newChar);
                String replaceAll(String old, String new);
            切割字符串
                String[]   split(String regex);
            截取字符串
                String subString(int beginIndex);
                    String subString(int beginIndex, int endIndex);  要头不要尾
            将小写字母转为大写字母
                String  toUpperCase();
             将大写字母转为小写字母
                String toLowerCase();
            去除收尾空格的
                String  trim();
        StringBuffer类
            概念:
                线程安全,可变的字符序列。 字符串缓冲区就像一个String,但可以修改。  在任何时间点,它包含一些特定的字符序列,但可以通过某些方法调用来更改序列的长度和内容。

String类拼接是开辟另外一个内存   ,StringBuffer直接在缓冲区域的后面直接添加
                    StringBuilder(线程不安全的), 比StringBuffer(线程安全的)快  ,比String  快。

开发中遇到的String类型的数据偏多吗,所以用String用的比较多 
                         public class Demo1 {

    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer("start");//默认缓冲区的容量为16
        System.out.println(sb);//字符串的缓冲区  在堆区
        sb.append("top");//在后面追加
        System.out.println(sb);//是一个区域,随时可以向里面添加 的
        //start  字符串和  starttop这个字符字符串在同一个内存地址里面
        //如果是string  拼接字符串的话,他们不再同一个内存地址里面
        sb.insert(3, "大");//在某一个位置插入一个数据
        System.out.println(sb);//sta大rttop
        //....
        sb.delete(2, 4);//  a大删除了   包含2  不包含4  要头不要尾
        System.out.println(sb);
        //咱们这个里面也牵涉到扩容
        //确保最小瓶的容量。这个人家默认的是16  最低确保容量4567  
        //意味着要在内存开辟空间是耗内存的
        sb.ensureCapacity(4567);//确保最低的容量
        System.out.println(sb.length());//返回字符串的长度

    }
}

        StringBuilder类
            概念:
                StringBuilder是一个可变的字符串类,可以把它看成是一个对象容器
                作用:提高字符串操作的效率,如拼接、修改等
            构造器:
                public StringBuilder
                    创建一个空白的可变的字符串对象,不包含任何内容。
                public StringBuilder(String str)
                    创建一个指定字符串内容的可变字符串对象
    枚举类
        概念:
            Java中枚举类是一个特殊的类,一般是表示一组常量,一年的4个季节。一年12个月份。一个星期有7天。方向东西南北等

public  static   final  int  a = 20;java 声明常量的方式

可以使用枚举代替常量
                 public class Test2 {
    public static void main(String[] args) {
        //使用枚举下面的常量
//        Color c1 = Color.RED;
//        System.out.println(c1);
        printWeek(Week.FRI);

    }
    public static  void printWeek(Week week){
        switch(week){
            case MON :
                System.out.println("周一红烧肉");
                break;
            case TUR:
                System.out.println("周二大盘鸡");
                break;
            case WEN :
                System.out.println("周三烤鱼");
                break;
            case THUR:
                System.out.println("周四火锅");
                break;
            case FRI :
                System.out.println("周五烤全羊");
                break;
            case SRI :
                System.out.println("周六北京烤鸭");
                break;
            case SUN :
                System.out.println("周日吃灰");
                break;
        }
    }
}


    包装类
        概念
            每个基本数据类型在java中都有与之对应的包装类

包装类下面提供了很多的方法,让咱们对基本数据类型进行增删改查的操作
                int====>Integer

byte===>Byte

short====>Short

long====>Long

float====>Float

double ===>Double

char===>Charater

boolean===>Boolean

除了int 和char   其他的包装了都是首字母大写
                    【重点】:

​    1.JDK1.5之后有装箱和拆箱之说

​                装箱:将基本数据类型转为包装类对象

​                拆箱:将包装类对象转为基本数据类型

2.***Value();将包装类对象转为基本数据类型的

3.parse****();将字符串转为基本数据类型

4.valueOf();将基本数据类型转为包装类
                        public class Demo5 {
    public static void main(String[] args) {
        byte a = (byte)20;//20 int 类型的数据->byte 大转小,但是javajdk1.5之后自动转了
        Byte a1 = 20; //进行自动装箱的过程  将基本数据类型转为包装类对象
        Byte byte1 = new Byte((byte)20);//将基本数据类型转为包装类
        System.out.println(a1);
        System.out.println(byte1);
        
        Integer integer = new Integer(250);
        int int1 = integer;//自动拆箱  将包装类对象转为基本数据类型
        System.out.println(int1);
        Character c1Character = 'A';//装箱
        Boolean  boolean1= true;
        
        //将包装类对象转为基本数据类型的方法  ***Value()
        Integer integer2 = new Integer(34);
        int int2 = integer2.intValue();//返回值是int 类型的数据
        System.out.println(int2);
        Short short1  = new Short((short)45);
        short  short2 = short1.shortValue();
        System.out.println(short2);
        
        int v2 = Integer.parseInt("89");//开发要用  数字字符串
        System.out.println(v2);//int类型的89
        
        //一般如果怕精度丢失的的话,先用字符串来表示,然后再转为double
        double d2 = Double.parseDouble("89.99999");
        System.out.println(d2);
        
        byte byte4 = 45;
        Byte b4 = Byte.valueOf(byte4);//将 基本数据类型转为包装类
        System.out.println(b4);        
    }
}
    Math类
        概念:
            Math类是专门处理数学高级计算的类

Math全是静态方法,直接拿类名来调用的
                方法:
                    public class Test4 {
    public static void main(String[] args) {
        //学习Math类方法
        //绝对值
//        System.out.println(Math.abs(- 9.8)); //9.8
//        //求三个及以上数最大值
//        //System.out.println(Math.max(Math.max(45,56),67));
//        System.out.println(Math.max(Math.max(Math.max(34,56),789),45));
//        //向上取整
//        System.out.println(Math.ceil(5.3));//6
//        //向下取整
//        System.out.println(Math.floor(5.8));//5
//        //四舍五入
//        System.out.println(Math.round(4.5));//5
//        //0~1的随机数
//        System.out.println(Math.random());
//        //随机出来0-100的数
//        for (int i = 0; i < 20; i++) {
//            System.out.println((int)(Math.random() * 100));
//        }
        //System.out.println((int)(Math.random()*100));
        Random random = new Random();
        //随机生成一个boolean类型数据
        System.out.println(random.nextBoolean());
        System.out.println(random.nextInt(34)+34);
    }
}
    System类 
        概念:
            System类是系统类,提供了一静态的方法和静态的属性
                方法:
                    public class Test5 {
    public static void main(String[] args) {
//        System.out.println("hallo");
//        System.out.println(System.in);
//        System.err.println("hhh");

        //获取当前时间
      //  System.out.println(System.currentTimeMillis());

        //获取电脑系统一些信息
        Properties properties = System.getProperties();
        System.out.println(properties.get("os.name"));//Mac OS X
        System.out.println(properties.get("os.version"));//12.0.1
        System.out.println(properties.get("user.name"));//flying
//        System.out.println(properties.get("user.dir"));///Library/IDEACODE
        System.out.println(properties.get("java.version"));//17.0.1
    }
}
    Runtime类
        提供了java在运行时候的信息
            方法:
                public class Test6 {
    public static void main(String[] args) {
        //占位符
//        String str = String.format("我的名字是%s","hh");
//        System.out.println(str);

        //Runtime类
        Runtime runtime  = Runtime.getRuntime();
        System.out.println(runtime);//打印地址 java.lang.Runtime@4617c264
        //jvm占用内存
        System.out.println(runtime.maxMemory()/1024/1024);//2048M
        //jvm空闲内存
        System.out.println(runtime.freeMemory()/1024/1024);//127M

       // runtime.exec();
    }
}
    Date类
        专门处理电脑日期的一个类
            public class Test7 {
    public static void main(String[] args) {
        //大多方法已弃用
        Date d = new Date();
        System.out.println(d);//Wed Jan 12 23:24:47 CST 2022
        System.out.println(d.getTime());//1642001200702
        System.out.println(d.getYear()+1900);
        System.out.println(d.getMonth()+1);
    }
}
    Calendar类
        方法:
            public class Test8 {
    public static void main(String[] args) {
      Calendar calendar = Calendar.getInstance();
        System.out.println(calendar.get(Calendar.YEAR));//获取年
        System.out.println(calendar.get(Calendar.MONTH));//获取月
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH));//获取当月的日
        System.out.println(calendar.get(Calendar.WEDNESDAY));//星期x
        System.out.println(calendar.get(Calendar.DAY_OF_YEAR));//这一年的第几天
        System.out.println(calendar.get(Calendar.HOUR));//小时
        System.out.println(calendar.get(Calendar.MINUTE));//分钟
        System.out.println(calendar.get(Calendar.SECOND));//秒

        //获取当前时间
        Date time = calendar .getTime();
        System.out.println(time);//Wed Jan 12 23:42:00 CST 2022
        //格式化当前时间
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(sdf.format(time));//2022-01-12 23:45:26
    }
}

举报

相关推荐

0 条评论