20145316《Java程序设计》第七周学习总结

20145316《Java学习程序设计》第七周学习总结

教材学习知识总结

  • 1.在只有Lambda表达式的情况下,参数的类型必须写出来。

  • 2.Lambda表达式本身是中性的,同样的Lambda表达式可用来表示不同目标类型的对象操作。

  • 3.Lambda表达式只关心方法命名上的参数与返回定义,但忽略方法名称。

  • 4.如果变量不会在匿名类中有重新指定的动作,就可以不用加上final关键词。

  • 5.只要静态方法的方法命名中参数与返回值定义相同,也可以使用静态方法来定义函数接口操作。

  • 6.JDK8定义的通用函数接口,基本上放置于java.util.function套件之中,就行为来说,基本上可以分为consumer,function,predicate,supplier四个类型。

  • 7.Epoch为某个特定时代的开始,时间轴上某一瞬间。

  • 8.取得系统时间的方法之一是使用System,currentTimeMillis()方法,返回的是long类型整数。

  • 9.Date实例基本上建议只用来当做时间轴上的某一瞬间。

  • 10.ofDays(),ofMonths(),ofWeeks()其实是Period的静态方法,他们会返回period实例。

  • 11.新时间日期处理API的主要套件命名为java.time。

  • 12.plus方法接受java.time.temporal.TemporalAmount实例,而TemporalAmount的操作类也就是Period与Duration。实际上plus()方法也可以接受Duration实例来计算。

  • 13.使用Instant的静态方法now()可以取得代表java epoch毫秒数的Instant实例。

教材代码练习

  1. import java.util.;
    import static java.lang.System.
    ;
    public class DateDemo {
    public static void main(String[] args) {
    Date date1 = new Date(currentTimeMillis());
    Date date2 = new Date();
    out.println(date1.getTime());
    out.println(date2.getTime());
    }
    }

  1. import java.util.;
    import static java.lang.System.out;
    import static java.text.DateFormat.
    ;

    public class DateFoematDemo {
    public static void main(String[] args) {
    Date date = new Date();
    dateInstanceDemo(date);
    timeInstanceDemo(date);
    dateTimeInstanceDemo(date);
    }

    static void dateInstanceDemo(Date date) {
    out.println("getDateInstance() demo");
    out.printf(" SHORT: %s%n", getDateInstance(LONG).format(date));
    out.printf(" SHORT: %s%n", getDateInstance(SHORT).format(date));
    }

    static void timeInstanceDemo(Date date) {
    out.println("getTimeInstance() demo");
    out.printf(" LONG: %s%n", getTimeInstance(LONG).format(date));
    out.printf(" MEDIUM: %s%n", getTimeInstance(MEDIUM).format(date));
    out.printf(" SHORT: %s%n",getTimeInstance(SHORT).format(date));
    }

    static void dateTimeInstanceDemo(Date date) {
    out.println("getDateTimeInstance() demo");
    out.printf(" LONG: %s%n",
    getDateTimeInstance(LONG, LONG).format(date));
    out.printf(" MEDIUM: %s%n",
    getDateTimeInstance(SHORT, MEDIUM).format(date));
    out.printf(" SHORT: %s%n",
    getDateTimeInstance(SHORT, SHORT).format(date));
    }
    }

  2. import java.util.;
    import java.text.
    ;

    public class HoeOld {

    public static void main(String[] args) throws Exception {
    System.out.print("输入出生年月日(yyyy-mm-dd):");
    DateFormat dateFormat = new SimpleDateFormat("yyyy-mm-dd");
    Date birthDate = dateFormat.parse(new Scanner(System.in).nextLine());
    Date currentDate = new Date();
    long life = currentDate.getTime() - birthDate.getTime();
    System.out.println("你今年的岁数为:" +
    (life / (365 * 24 * 60 * 60 * 1000L)));
    }
    }

  3. import java.time.*;
    import java.util.Scanner;
    import static java.lang.System.out;

    public class HowOld2 {

    public static void main(String[] args) {
    out.print("輸入出生年月日(yyyy-mm-dd):");
    LocalDate birth = LocalDate.parse(new Scanner(System.in).nextLine());
    LocalDate now = LocalDate.now();
    Period period = Period.between(birth, now);
    out.printf("你活了 %d 年 %d 月 %d 日%n",
    period.getYears(), period.getMonths(), period.getDays());
    }
    }

教材代码遇到的问题

在这个程序中,我明明是19周岁,却被误算为20周岁。。。

代码运行截图

这个周用在其他学科时间比较长,Java代码敲得比较少。

原文地址:https://www.cnblogs.com/xxy745214935/p/5402826.html