《Java自学180天笔记》

Object类介绍

Object类是所有类的父类。一个类都会直接或者间接的继承自该类

toString()方法

作用:打印对象信息

重写前:打印的包名类名@地址值

重写后:打印的是对象中的属性值

equals()方法

Object.equals(a,b) 比较两个对象是否相同,但是加了一些健壮性的判断

DateFormat类

package demo02;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/*java.text.DateFormat:是日期/时间格式化子类的抽象类作用:   格式化(也就是日期->文本)、解析(文本->日期)成员方法:   String format(Date date)按照指定的模式,把Date日期,格式化为符合模式的字符串    Date parse(String source)把符合模式的字符串,解析为Date日期DateFormat类是一个抽象类,无法直接创建对象使用,可以使用DateFormat的子类java.text.SimpleDateFormat extends DateFormat构造方法:   SimpleDateFormat(String pattern)用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat.    参数:       String pattern:传递指定的模式    模式:区分大小写        y年  M月  d日  H小时  m分  s秒    yyyy-MM-dd HH:mm:ss    注意:   模式中的字母是不能更改的,连接模式的-符号可以改变 */public class DemoDateFormat {    public static void main(String[] args) {        demo01();    }    /*    使用DateFormat类中的方法parse,把文本解析为日期    Date parse(String source)把符合模式的字符串,解析为Date日期    使用步骤:       1.创建SimpleDateFormat对象,构造方法中传递指定的模式        2.调用SimpleDateFormat对象中的方法parse,把符合构造方法中模式的字符串,解析为Date日期    注意:       public Date parse(String source) throws ParseException        parse方法声明了一个异常叫ParseException解析异常        如果字符串和构造方法中的模式不一样,那么程序就会抛出异常     */    private static void demo02() throws ParseException {        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        Date date = sdf.parse("2020-10-04 22:42:20");        System.out.println(date);    }    /*    使用DateFormat类中的方法format,把日期格式化为文本    使用步骤:       1.创建SimpleDateFormat对象,构造方法中传递指定的模式        2.调用SimpleDateFormat对象中的方法format,按照构造方法中指定的模式,把Date日期格式化为符合模式的字符串        (文本)     */    private static void demo01(){        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        Date date = new Date();        String text = sdf.format(date);        System.out.println(date);        System.out.println(text);    }}
Sun Oct 04 22:50:44 CST 20202020-10-04 22:50:44

Calendar类常用成员方法

package demo02;import java.util.Calendar;import java.util.Date;/*java.util.Calendar类:日历类Calendar类是一个抽象类,里面提供了很多操作日历字段的方法Calendar类无法直接创建对象使用,里边有一个静态方法叫getInstance(),该方法返回了Calendar类子类的对象Calendar类的成员方法:   public int get(int field):返回给定日历字段的值。   public void set(int field,int value):将给定的日历字段设置为给定值。   public abstract void add(int field,int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。   public Date getTime():返回一个元素此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象 */public class DemoCalendar {    public static void main(String[] args) {        Calendar c = Calendar.getInstance();//多态        System.out.println(c);        demo01();        demo02();        demo03();    }    private static void demo04(){        Calendar c = Calendar.getInstance();        Date date = c.getTime();        System.out.println(date);    }    private static void demo03(){        Calendar c = Calendar.getInstance();        c.add(Calendar.YEAR,2);        int year = c.get(Calendar.YEAR);        System.out.println(year);    }    /*    public void set(int field,int value):将给定的日历字段设置为给定值    参数:       int field:传递指定日历字段(YEAR,MONTH...)        int value:传递的字段设置的具体的值     */    private static void demo02(){        Calendar c = Calendar.getInstance();        //设置年为2021        c.set(Calendar.YEAR,2021);        int year = c.get(Calendar.YEAR);        System.out.println(year);    }    /*    public int get(int field):返回给定日历字段的值。   参数:传递指定的日历字段(YEAR,MONTH...)    返回值:日历字段代表具体的值     */    private static void demo01(){        //使用getInstance方法获取Calendar对象        Calendar c = Calendar.getInstance();        int year = c.get(Calendar.YEAR);        System.out.println(year);    }}

System类的常用方法

package demo02;import java.util.Arrays;public class DemoSystem {    public static void main(String[] args) {        demo01();        demo02();    }    /*    public static void arraycopy():将数组中指定的数据拷贝到另一个数组中。    */    private static void demo02() {        //定义源数组        int[] src = {1,2,3,4,5};        int[] dest = {6,7,8,9,10};        System.out.println("复制前:"+ Arrays.toString(dest));        System.arraycopy(src,0,dest,0,3);        System.out.println("复制后:"+ Arrays.toString(dest));    }    /*    public static long currentTimeMillis():返回以毫秒为单位的当前时间。   用来测试程序的效率    练习:       验证for循环打印数字1~9999所需要使用的时间(毫秒)     */    public static void demo01(){        //程序执行前,获取一次毫秒值        long s = System.currentTimeMillis();        for (int i = 0; i <9999 ; i++) {            System.out.println(i);        }        //程序执行后,在获取一次毫秒值        long e = System.currentTimeMillis();        System.out.println("程序共耗时:"+(e-s)+"毫秒");    }}

StringBuilder原理

AccessData FTK Imager用法 access中format_字符串

StringBuilder的构造方法和append方法

package demo03;/*java.lang.StringBuilder类:字符串缓冲区,可以提高字符串的效率构造方法:   public StringBuilder():构造一个空的StringBuilder容器。   public StringBuilder(String str):构造一个StringBuilder容器,并将字符串添加进去。成员方法:   public StringBuilder append(...):添加任意类型数据的字符串形式,并返回当前对象自身。   参数:       可以是任意的数据类型 */public class DemoStringBuilder {    public static void main(String[] args) {        //创建StringBuilder对象        StringBuilder bu1 = new StringBuilder("abc");        System.out.println("bu1:"+bu1);        //使用append方法往StringBuilder中添加数据        //append方法返回的是this,调用方法的对象bu1        StringBuilder bu2 = bu1.append("dddd");        System.out.println(bu1);        System.out.println(bu2);        //使用append方法无需接收返回值        bu1.append("wewfe");    }}

包装类_装箱与拆箱

package demo03;/*装箱:把基本类型的数据,包装到包装类中(基本类型的数据->包装类)    构造方法:       Integer(int value)构造一个新分配的Integer对象,它表示指定的int值。       Integer(String s)构造一个新分配的Integer对象,它表示String参数所指示的int值。           传递的字符串,必须是基本类型的字符串,否则会抛出异常“100”正确,“a”抛异常    静态方法:       static Integer valueOf(int i)返回一个表示指定的int值的Integer实例。       static Integer valueOf(String s)返回保存指定的String的值的Integer对象。   拆箱:在包装类中取出基本类型数据(包装类->基本类型的数据)        成员方法:           int intValue()以int类型返回该Integer的值。*/public class DemoInteger {    public static void main(String[] args) {        //装箱:把基本类型的数据,包装到包装类中(基本类型的数据->包装类)        //构造方法        Integer int1 = new Integer(1);//方法上有横线,说明方法过时了        System.out.println(int1);//1 重写了toString方法。       //静态方法        Integer int3 = Integer.valueOf("1");        System.out.println(int3);        //拆箱:在包装类中取出基本类型数据(包装类->基本类型的数据)        int i = int1.intValue();        System.out.println(i);    }}

包装类_自动装箱与自动拆箱

package demo03;import java.util.ArrayList;/*自动装箱与自动拆箱    基本类型的数据和包装类之间可以自动的相互转换    JDK1.5之后出现的新特性 */public class Demo02Integer {    public static void main(String[] args) {        /*        自动装箱:直接把int类型的整数赋值给包装类         */        Integer in = 1;//相当于Integer in = new Integer(1);        /*        自动拆箱:in是包装类,无法直接参与运算,可以自动转换为基本类型的数据,再参与计算        in+2;就相当于in.intValue()+3=3;         */        in = in + 2;        //ArrayList集合无法直接存储整数,可以存储Integer包装类        ArrayList list = new ArrayList<>();        list.add(1);//自动装箱list.add(new Integer(1));        int a = list.get(0);//自动拆箱list.get(0).intValue();    }}

包装类_基本类型与字符串之间的相互转换

package demo03;/*基本类型与字符串之间的转换基本类型-->字符串    1.基本类型数据的值+" "最简单的方式(工作中常用)    2.使用包装类中的静态方法        static String toString(int i)返回一个表示指定整数的String对象。   3.使用String类中的静态方法        static String vaule(int i )返回int参数的字符串表示形式。字符串-->基本类型    使用包装类的静态方法parseXX("字符串")        Integer类:static int parseInt(String s)        Double类:static double parseDouble(String s)        ... */public class Demo03Integer {    public static void main(String[] args) {        //基本类型-->字符串        String s = Integer.toString(100);        String s3 = String.valueOf(200);        //字符串-->基本类型        int i = Integer.parseInt("100");    }}