常用API(java)

 

目录

 

Object

 toString()

 equals()

System类

Date类

void setTime     long getTime

DateFormat类 & SimpleDateFormat

Calendar类

包装类

常用方法


Object

是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。

 toString()

返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。    此方法不常见于开发,可能在测试时使用

                               结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。

package lei;

/**
 * @author Lzy
 * @creat 2021-02-02-15:16
 * getClass().getName() + '@' + Integer.toHexString(hashCode())

 * 		 getClass():返回一个字节码对象
 * 		 Integer.toHexString():返回指定参数的十六进制字符串形式
 * 		 hashCode():返回该对象的哈希码值(内部地址)
*/
public class Object {
    public static void main(String[] args) {
        Man m = new Man();
        System.out.println(m.toString());
        System.out.println(m);//输出一个对象默认输出的是对象toString方法
    }
}
class Man extends Object {
}

 

对toString()改写赋值 :

由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。

package lei;


public class Object {
    public static void main(String[] args) {
        Man m = new Man();
        m.name = "li";
        m.age = 20;
        System.out.println(m.toString());
        System.out.println(m);//输出一个对象默认输出的是对象toString方法
    }
}
class Man extends Object {
    String name;
    int age;

    @Override
    public String toString() {
        return "Man{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

 

 equals()

用于比较两个对象是否相同,它其实就是使用两个对象的内存地址在比较。Object类中的equals方法内部使用的就是==比较运算符。

在开发中要比较两个对象是否相同,经常会根据对象中的属性值进行比较,也就是在开发经常需要子类重写equals方法根据对象的属性值进行比较。

System类

  System 类包含一些有用的类字段和方法。它不能被实例化。

static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) :

     从src源数组的srcPos索引开始,复制length个元素

  从destPost位置开始将这些元素放至到dest数组中

  static long currentTimeMillis()

      返回以毫秒为单位的当前时间

  static void exit(int status)

      终止当前正在运行的 Java 虚拟机

  static void gc() 

运行垃圾回收器

 

package Test;

/**
 * @author Lzy
 * @creat 2021-03-02-13:19
 * System:包含一些有用的类字段和方法,它不能实例化
 * static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
 * static long currentTimeMillis()
 * static void exit(int status)
 * static void gc()
 */
public class SystemDemo {
    public static void main(String[] args) {
//        method();
//        method2();
//        method3();
//        method4();
    }

    private static void method4() {
        /* static void gc()  尽可能从丢弃对象中回收空间 通过finalize方法        此方法用处不广泛*/
        new Demo();
        System.gc();
    }

    private static void method3() {
    /*static void exit(int status): 终止虚拟机 */
        for(int i = 0; i < 10000; i++){
            System.out.println(i);
            if(i == 50) System.exit(0);
        }
    }

    private static void method2() {
    /*  static long currentTimeMillis():以毫秒返回当前系统时间,用于计算程序运算时间
        直接调用的话这个计算时间是相对时间,相对于 1970-1-1 00:00:00
     */
        long start =System.currentTimeMillis();
        for (int i = 0; i < 1000; i++) System.out.println(i);
        long end = System.currentTimeMillis();
        System.out.println(end - start);
    }

    private static void method() {
    /* static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
   复制数组          参数1:源数组  参数2:源数组的起始索引位置   参数3:目标数组    参数4:目标数组的起始索引位置  参数5:指定接受的元素个数
     */
        int[] src = {1,2,3,4,5};
        int[] dest = new int[5];
        System.arraycopy(src,1,dest,0,4);
        for (int i = 0; i < dest.length; i++){
            System.out.print(dest[i]);
        }
    }
    static class Demo{
        @Override
        protected void finalize() throws Throwable {
            System.out.println("执行回收");
        }
    }
}

Date类

void setTime     long getTime

package Test;
import java.util.Date;

/**
 * @creat 2021-03-05-16:39
 * Date的常用方法
 * 毫秒值 --- Date    设置  返回值是void  参数long  void setTime(long time)
 * Date --- Date     获取  返回值long  无参    long getTime()
 */
public class DataDemo {
    public static void main(String[] args) {
        Date d = new Date();//默认是当前时间
        System.out.println(d);//可直接输出格式化时间
        System.out.println(d.toLocaleString());//以字符串打印当前获取时间(此方法已过时)
        System.out.println(d.getTime());//获取当前时间与相对时间之间的时间间隔(单位:毫秒)
        System.out.println("-------------");
        d.setTime(1000 * 60 * 60 * 24);  //相对于1970-1-1 8:00:00 后移24小时
        System.out.println(d.toLocaleString());
    }
}

 

 

DateFormat类 & SimpleDateFormat

package Test;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author Lzy
 * SimpleDateFormat: 格式化 Date -- String  例: 2021-3-5 或 2021年3月5日
 * String format(Date date)
 * 解析:  String -- Date  Date parse(String source)  检验构建模式是否符合规范
 * 构造方法: SimpleDateFormat():默认的模式进行对象构建
 * SimpleDateFormat(String Pattern): 使用指定的模式进行对象构建,参照模式字母表进行选择
 */
public class SimpleDateFormatDemo {
    public static void main(String[] args) throws ParseException {
        method1();
        System.out.println("----2-----");
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年 MM月 dd日 HH:mm:ss");
        Date date = new Date();
        String s = sdf.format(date);//格式化,日期对象转化 年月日 时分秒
        System.out.println(s);
    }

    private static void method1() throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat();//使用默认模式进行对象的构建
        Date date = new Date();
        //格式化 把日期对象转换成字符串
        String s = sdf.format(date);
        System.out.println(s);//21-3-5 下午5:59
        //解析 把字符串转换成日期对象
        Date d = sdf.parse("21-3-5 下午5:59");
        System.out.println(d.toLocaleString());
    }
}

Calendar类

日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。

抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,将语言敏感内容处理好,再返回子类对象

package Test;

import java.util.Calendar;

/**
 * @author Lzy
 * @creat 2021-03-08-8:08
 *获取 int get(int field) 返回给定日历字段值        修改 void set(int field, int value) 修改指定字段值
 *添加 void add(int field, int amount)  在指定字段加上指定值(可为负数,即减去)
 * */
public class CalendarDemo {
    public static void main(String[] args) {
        Calendar c = Calendar.getInstance(); //使用默认时区与语言环境获得日历
        c.set(Calendar.YEAR, 2022); //修改年
        c.add(Calendar.MONTH, 3); //在月份上做加法

        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH) + 1;//月份是零开始计入的,因此加1
        int day = c.get(Calendar.DAY_OF_MONTH);//获得天数为月的第 n 天
        int d = c.getFirstDayOfWeek();
        System.out.println(year + "年" + month + "月" + day + "日"+ "周" + d);
    }
}

   

包装类

8种基本类型对应的包装类

常用方法

package Test;

/**
 * @author Lzy
 * @creat 2021-03-08-8:43
 *  包装类就是封装了基本数据类型的类,为我们提供了更多复杂的方法和一些变量
 *  Integer:
 *  * 	String --- int       方式1:int intValue()   方式2: static int parseInt(String s)
 *  *
 *  int --- String   方式1: + ""   方式2:String toString()
 *  *
 *  * 构造方法:
 *  * 		Integer(int value)
 *  * 		Integer(String s)
 */
public class IntegerDemo {
    public static void main(String[] args) {
        Integer integer = new Integer("7");
        System.out.println(integer);
//第一种String转换int   int intValue()
        int a = integer.intValue();
        System.out.println(a + 3);
//第二种String转换int   static int parseInt(String s)
        int b = Integer.parseInt("13");
        System.out.println(b + 7);
//第一种int转换String  通过加字符串自动转换  此方法较为常用
        System.out.println("int转换String");
        Integer integer1 = new Integer(30);
        //这里可以看到加 "--" 前 完成30+5数值运算  转换为String后 3 + 5 为字符串连接
        System.out.println(integer1 + 5 +  "--" + 3 + 0);
//第二种int转换String  toString()
        String s = Integer.toString(40);
        System.out.println(s + 0);
        //成员方法表示
        Integer integer2 = new Integer(50);
        System.out.println(integer2 + 0);
        //转换前进行的是数值运算   转换后进行的是字符串拼接
        String s1 = integer2.toString();
        System.out.println(s1 + 0);
    }
}

自动装箱和拆箱

在需要的情况下,基本类型与包装类型可以通用。有些时候我们必须使用引用数据类型时,可以传入基本数据类型

自动拆箱:对象转成基本数值

自动装箱:基本数值转成对象

package Test;

import java.util.ArrayList;

public class IntegerDemo1 {
    public static void main(String[] args) {
        Integer i1 = 10;//自动装箱 相当于 Integer i = new Integer(10);
        Integer i2 = 15;
        Integer i3 = i1 + i2;
        System.out.println(i3);

        ArrayList list = new ArrayList();
        list.add(5);//自动装箱 相当于 list.add(new Integer(5));
        System.out.println(list);
    }
}

 

 正则表达式

正则表达式是专门解决字符串规则匹配的工具。正则表达式也是一个字符串,用来定义匹配规则。

参照帮助文档,在Pattern类中有简单的规则定义,可以结合字符串类的方法使用

package Test;

/**
 * @author Lzy
 * @creat 2021-03-11-19:52
 * 校验qq号码   要求必须是5-15位  不能以0开头  必须都是数字
 * 	正则表达式:就是一套规则,可以用于匹配字符串
 * 	boolean matches(String regex) :判断当前字符串是否匹配指定的正则表达式,如果匹配则返回true,否则返回false
 */
public class RegexDemo {
    public static void main(String[] args) {
        String qq = "473463";
        //正则表达定义中间不能有空格或符号
        boolean flag = qq.matches("[1-9][0-9]{4,14}");
        System.out.println(flag);
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值