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