(尚硅谷java零基础教程)学习笔记day20-每日一考

1. 将字符串”2017-08-16”转换为对应的java.sql.Date类的对象。

(使用JDK8之前或JDK8中的API皆可)

SimpleDateFormat  sdf = new SimpleDateFormat("yyyy-MM-dd");
//解析:
java.util.Date date = sdf.parse(2017-08-16);
java.sql.Date date1 = new java.sql.Date(date.getTime());
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
java.util.Date date = dtf.parse(2017-08-16);
java.sql.Date date1 = new java.sql.Date(date.getTime());

创建一个对象的几种方法:
① new + 构造器
② 单例模式、Calendar.getInstance()

2. 解释何为编码?解码? 何为日期时间的格式化?解析?

编码:字符串 -------- 字节
解码:字节 -------- 字符串

格式化:日期 -------- 字符串
解析:字符串 -------- 日期

3. 自定义Person类如下,如何实现自然排序(按姓名从小到大排序),代码说明

首先定义 Person 类,实现 Comparable 接口,并重写 compareTo 和 toString 方法

public class Person implements Comparable{
    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    //按姓名从小到大排序
    @Override
    public int compareTo(Object o) {
        if (o instanceof Person){
            Person person = (Person) o;
            return this.getName().compareTo(person.getName());
        }
        throw new RuntimeException("输入数据类型非法!");
    }

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

然后对排序结果进行测试:

    @Test
    public void test1() {
        Person[] arr = new Person[2];
        arr[0] = new Person("Tom", 34);
        arr[1] = new Person("John", 43);

        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));
    }

4. 提供定制排序涉及到的接口的实现类对象,并按Person类的年龄从大到小排序

@Test
public void test2(){
    Person[] arr = new Person[2];
    arr[0] = new Person("Tom", 34);
    arr[1] = new Person("John", 43);
    Arrays.sort(arr, new Comparator<Person>() {
        @Override
        public int compare(Person o1, Person o2) {
            if (o1 instanceof Person && o2 instanceof Person){
                Person p1 = (Person) o1;
                Person p2 = (Person) o2;
                return -Integer.compare(p1.getAge(),p2.getAge());
            }
            throw new RuntimeException("输入数据类型非法!");
        }
    });
    System.out.println(Arrays.toString(arr));
}

5. JDK 8之前和JDK8中日期、时间相关的类分别有哪些?

java.util.Date 和 java.sql.Date -------- Instant
SimpleDateFormat -------- DateTimeFormatter
Calendar -------- LocalDate、LocalTime、LocalDateTime

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值