zoukankan      html  css  js  c++  java
  • Object--Date--calendar--System--StringBuilder--基本数据类型包装类型

    Object

    java.lang.Object类是Java语言中的根类,即所有类的父类

    • 默认toString()方法打印的是对象在堆中的地址值
    • 默认equals()方法比较的也是地址(String中对该方法进行了重写)

    Date

    ** java.util.Date类 表示特定的瞬间,精确到毫秒。**
    以1970年1月1日为时间原点

    构造方法

    Date()分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒),简单说就是当前系统时间。
    Date(long date)分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。简单说就是根据lang值来创建一个时间

    常用方法

    Date类中的多数方法已经过时,常用的方法有

    public long getTime()把日期对象转换成对应的时间毫秒值。返回值为lang的毫秒值

    构造方法与常用方法简单案例

    package java常用API.MyDate;
    
    import java.util.Date;
    
    public class Main {
        public static void main(String[] args) {
            demo01();
            demo02();
    
        }
    
        /**
         * Date的无参构造方法
         * 创建对象为本系统当前时间
         */
        public static void demo01(){
            Date date = new Date();
            System.out.println(date);
            //getTime()方法将时间转换成相应的毫秒值
            System.out.println(date.getTime());
        }
    
        /**
         * Date的有参构造方法
         * 根据参数值(距离原点的毫秒值)创建一个对象
         */
        public static void demo02(){
            Date date = new Date(1111111111);
            System.out.println(date);
        }
    }
    
    

    DateFormat类 java.text.DateFormat

    是日期/时间格式化子类的抽象类
    进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化
    **DateFormat类是一个抽象类无法直接使用,可以使用DateFormat的子类SimpleDateFormat **

    成员方法

    String format(Date date)按照指定的模式,吧Date日期,格式化为符合模式的字符串
    Date parse(String source)把符合模式的字符串,解析为Date日期

    SimpleDateFormat

    日期和时间模式

    在这里插入图片描述

    示例

    在这里插入图片描述

    真正的处理SimpleDateFormat类实例

    package java常用API.MyDate.MyDateFormat;
    
    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 patten传递指定的模式
     *      模式:区分大小写
     *          y  年
     *          M  月
     *          d  日
     *          H  时
     *          m  分
     *          s  秒
     *      写对应的模式,会把模式替换为对应的时间
     *
     */
    public class Main {
        public static void main(String[] args) throws ParseException {
            demo01();
            demo02();
        }
        /**
         * 使用DateFormat类中的方法format,把日期格式化为文本
         * 使用步骤:
         *      1:创建SimpleDateFormat对象,构造方法中传递指定的模式
         *      2:调用SimpleDateFormat对象中的方法format,按照构造方法中指定的模式,把Date日期格式化为符合模式的字符串(文本)
         */
        public static void demo01(){
            //创建SimpleDateFormat对象
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
            //调用String format(Date date)传入参数Date
            Date date = new Date();
            String MyDate = simpleDateFormat.format(date);
            System.out.println(MyDate);
        }
        /**
         * 使用DateFormat类中的方法parse,把文本解析为日期
         * 使用步骤:
         *      1:创建SimpleDateFormat对象,构造方法中传递指定的模式
         *      2:调用SimpleDateFormat对象中的方法parse,把符合构造方法中模式的字符串,解析为Date日期
         *      注意:
         *          public Date parse(String source) throws ParseException
         *          parse方法声明了一个异常叫parseException
         *          如果字符串和构造方法的模式不一样,那么程序就会抛出此异常
         *          调用一个抛出了异常的方法就必须处理这个异常,要么throws继续抛出这个异常,要么try-catch自己处理
         */
        public static void demo02() throws ParseException {
            //1:创建SimpleDateFormat对象
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
            //2:调用SimpleDateFormat对象中的方法Date parse(String source)
            Date date = simpleDateFormat.parse("2019年02月07日 22时11分44秒");
            System.out.println(date);
        }
    }
    
    

    calendar

    简介

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

    一个案例

    package java常用API.MyCalendar;
    
    import java.util.Calendar;
    
    import static java.util.Calendar.YEAR;
    
    /**
     * java.util.Calendar  日历类
     * 是一个抽象类,里面提供了很多操作日历字段的方法  诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等
     * Calendar无法直接创建对象使用,里面有一个静态方法getInstance(),该方法返回了Calendar类的子类对象
     * static Calendar getInstance()
     *           使用默认时区和语言环境获得一个日历。
     */
    
    /**
     * 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对象。
     * 成员方法的参数:
     *      int field:日历类的字段,可以使用Calendar类的静态成员变量获取
     *          public static final int YEAR = 1;   年
     *          public static final int MONTH = 2;  月
     *          public static final int DATE = 5;   月中的某一天
     *          public static final int DAY_OF_MONTH = 5;   月中的某一天
     *          public static final int HOUR = 10;  时
     *          public static final int MINUTE = 12;    分
     *          public static final int SECOND = 13;    秒
     */
    public class Main {
        public static void main(String[] args) {
            Calendar calendar = Calendar.getInstance();
            System.out.println(calendar);
            demo01();
        }
        public static void demo01(){
            Calendar calendar = Calendar.getInstance();
            System.out.println(calendar.get(YEAR));
            calendar.set(Calendar.MONTH,2);
            System.out.println(calendar.get(Calendar.MONTH));
            calendar.add(Calendar.MONTH,2);
            System.out.println(calendar.get(Calendar.MONTH));
            System.out.println(calendar.getTime());
        }
    }
    
    

    System

    简介

    java.lang.System`类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作

    public static long currentTimeMillis()返回以毫秒为单位的当前时间。
    public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)将数组中指定的数据拷贝到另一个数组中。

    案例 currentTimeMillis方法

    实际上,currentTimeMillis方法就是 获取当前系统时间与1970年01月01日00:00点之间的毫秒差值

    public class SystemDemo {
        public static void main(String[] args) {
           	//获取当前时间毫秒值
            System.out.println(System.currentTimeMillis()); // 1516090531144
        }
    }
    

    案例 arraycopy方法

    将数组中指定的数据拷贝到另一个数组中。

    数组的拷贝动作是系统级的,性能很高。System.arraycopy方法具有5个参数,含义分别为:

    参数序号参数名称参数类型参数含义
    1srcObject源数组
    2srcPosint源数组索引起始位置
    3destObject目标数组
    4destPosint目标数组索引起始位置
    5lengthint复制元素个数
    import java.util.Arrays;
    
    public class Demo11SystemArrayCopy {
        public static void main(String[] args) {
            int[] src = new int[]{1,2,3,4,5};
            int[] dest = new int[]{6,7,8,9,10};
            System.arraycopy( src, 0, dest, 0, 3);
            /*代码运行后:两个数组中的元素发生了变化
             src数组元素[1,2,3,4,5]
             dest数组元素[1,2,3,9,10]
            */
        }
    }
    

    StringBuilder类

    字符串拼接问题

    String类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象
    StringBuilder是个字符串的缓冲区,即它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作。

    StringBuilder的简单实用

    public StringBuilder()构造一个空的StringBuilder容器。
    public StringBuilder(String str)构造一个StringBuilder容器,并将字符串添加进去。
    public StringBuilder append(…)添加任意类型数据的字符串形式,并返回当前对象自身。
    public String toString()将当前StringBuilder对象转换为String对象。

    append方法具有多种重载形式,可以接收任意类型的参数。任何数据作为参数都会将对应的字符串内容添加到StringBuilder中。

    package java常用API.MyStringBuilder;
    
    /**
     * java.lang.StringBuilder类。字符串缓冲区,可以提高字符串的效率
     * 构造方法:
     *      StringBuilder() 构造一个不带任何字符的字符串生成器,其初始容量为16个字符
     *      StringBuilder(String str)构造一个字符串生成器,并初始化为指定的字符串内容
     */
    
    /**
     *append方法具有多种重载形式,可以接收任意类型的参数。任何数据作为参数都会将对应的字符串内容添加到StringBuilder中。
     */
    public class Main {
        public static void main(String[] args) {
            //空参数构造方法
            StringBuilder s = new StringBuilder();
            System.out.println(s);
            //带参数构造方法
            StringBuilder s2 = new StringBuilder("Hello");
            System.out.println(s2);
            s2.append(5);
            s2.append("zhang");
            System.out.println(s2);
            System.out.println(s2.toString());
        }
    }
    
    

    包装类

    Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类

    基本类型对应的包装类(位于java.lang包中)
    byteByte
    shortShort
    intInteger
    longLong
    floatFloat
    doubleDouble
    charCharacter
    booleanBoolean

    5.2 装箱与拆箱

    基本类型与对应的包装类对象之间,来回转换的过程称为”装箱“与”拆箱“:

    • 装箱:从基本类型转换为对应的包装类对象。

    • 拆箱:从包装类对象转换为对应的基本类型。

  • 相关阅读:
    使用Tensorflow和MNIST识别自己手写的数字
    js 判断浏览器是否64位
    Spring动态注册bean实现动态多数据源
    springMVC 静态资源加版本号
    自定义Jquery插件——由于项目需要,对页面中过长的文本进行截取,鼠标移上去有一个title的提示,所以做了一个Jquery过长文本处理的插件
    MySQL Community Server 5.5.56 ZIP Archive 绿色解压版 window安装步骤
    【我整理的java开源项目】
    Java使用反射来获取成员变量泛型信息
    Intellij IDEA 各种乱码解决方案 posted @ 2017-06-23 15:31:06
    Django drf:cbv源码、resful规范及接口、drf使用、response源码、序列化
  • 原文地址:https://www.cnblogs.com/zhangguangxiang/p/14232583.html
Copyright © 2011-2022 走看看