Comparable 接口
package note.compare;
import java.util.Arrays;
public class ComparableNote {
public static void main(String[] args) {
Student[] students = {
new Student("noby",1,2,3),
new Student("java",10,200,30),
new Student("a",10,200,18),
new Student("tony",100,10,3)
};
Arrays.sort(students);
for (Student student : students) {
System.out.println(student);
}
}
}
class Student implements Comparable<Student>{
private String name;
private int chinese;
private int math;
private int english;
public Student(String name,int chinese, int math, int english) {
this.name = name;
this.chinese = chinese;
this.math = math;
this.english = english;
}
@Override
public int compareTo(Student o) {
if (o.chinese == this.chinese) {
if (o.math == this.math) {
return this.name.compareTo(o.name);
}
return Integer.compare(o.math,this.math);
}
return Integer.compare(o.chinese, this.chinese);
}
public int getChinese() {
return chinese;
}
public void setChinese(int chinese) {
this.chinese = chinese;
}
public int getMath() {
return math;
}
public void setMath(int math) {
this.math = math;
}
public int getEnglish() {
return english;
}
public void setEnglish(int english) {
this.english = english;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", chinese=" + chinese +
", math=" + math +
", english=" + english +
'}';
}
}
Comparator
package note.compare;
import java.util.Arrays;
import java.util.Comparator;
public class ComparatorNote {
public static void main(String[] args) {
Person[] persons = {
new Person("b", 21),
new Person("kace", 22),
new Person("a", 21),
};
Arrays.sort(persons, new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
int age = Integer.compare(o1.getAge(), o2.getAge());
int name = o2.getName().compareTo(o1.getName());
if (age == 0) {
return name;
}
return age;
}
});
for (Person person : persons) {
System.out.println(person);
}
}
}
class Person {
private String name;
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
Comparable 和 Comparetor 的区别
- Comparator 位于 java.util 下,而 Comparable 位于 java.lang 下
- Comparable 是在比较类的内部定义的 compareto() 方法实现的排序(String 和包装类已实现 Comparable 接口),Comparator 是在比较类的外部定义的 compare() 方法实现的排序
BigDecimal
package note;
import java.math.BigDecimal;
public class BigDecimalNote {
public static void main(String[] args) {
double d = 0.1234;
double d1= 0.245667;
BigDecimal bigDecimal = new BigDecimal(Double.toString(d));
BigDecimal bigDecimal1 = new BigDecimal(d1+"");
BigDecimal bigDecimal2 = new BigDecimal(10);
System.out.println("bigDecimal.add(bigDecimal1) = " + bigDecimal.add(bigDecimal1));
System.out.println("bigDecimal.subtract(bigDecimal1) = " + bigDecimal.subtract(bigDecimal1));
System.out.println("bigDecimal.multiply(bigDecimal1) = " + bigDecimal.multiply(bigDecimal1));
System.out.println("bigDecimal.divide(2) = " + bigDecimal.divide(new BigDecimal(2)));
System.out.println("bigDecimal2.intValue() = " + bigDecimal2.intValue());
System.out.println("bigDecimal2.doubleValue() = " + bigDecimal2.doubleValue());
System.out.println("bigDecimcal2.longValue() = " + bigDecimal2.longValue());
System.out.println("bigDecimal2.toString() = " + bigDecimal2.toString());
System.out.println("bigDecimal1.setScale(2) = " + bigDecimal1.setScale(2,BigDecimal.ROUND_HALF_UP));
}
}
基本数据类型的包装类
- Java8 大基本数据类型相较于其它类型它们是没有构造方法、成员方法、属性等内容的,为了让 8 种基本数据类型也支持面向对象,Java 为基本数据类型都提供了对应的包装类,包装类就是对基本数据类的基本封装,里面包含构造方法、成员方法、属性等内容,从而也让 8 大基本数据类型也具备了面向对象特性。
| 基本数据类 | 包装类 |
|---|
| byte | Byte |
| char | Character |
| short | Short |
| int | Integer |
| long | Long |
| boolean | Boolean |
| float | Float |
| double | Double |

package note;
public class IntegerNote {
public static void main(String[] args) {
Integer integer = new Integer(10);
new Integer("20");
Integer integer10 = 20;
int i = integer.intValue();
String string1 = integer.toString();
double v = integer.doubleValue();
int i1 = Integer.parseInt("123");
Integer integer1 = Integer.valueOf("1234");
String string = Integer.toString(321);
;
Integer integer2 = Integer.valueOf(1234);
System.out.println("Integer.MAX_VALUE = " + Integer.MAX_VALUE);
System.out.println("Integer.MIN_VALUE = " + Integer.MIN_VALUE);
System.out.println("Integer.toBinaryString(14) = " + Integer.toBinaryString(14));
System.out.println("Integer.toOctalString(14) = " + Integer.toOctalString(14));
System.out.println("Integer.toHexString(14) = " + Integer.toHexString(14));
System.out.println("Integer.compare(2,4) = " + Integer.compare(2, 4));
System.out.println("Character.toLowerCase('A') = " + Character.toLowerCase('A'));
System.out.println("Character.toUpperCase('b') = " + Character.toUpperCase('b'));
integer = 23;
i = integer;
Integer inte = new Integer(10);
Integer inte1 = new Integer(10);
System.out.println("inte == inte1 = " + (inte == inte1));
System.out.println("inte.equals(inte1) = " + inte.equals(inte1));
inte = 20;
inte1 = 20;
System.out.println("inte == inte1 = " + (inte == inte1));
System.out.println("inte.equals(inte1) = " + inte.equals(inte1));
inte = 128;
inte1 = 128;
System.out.println("inte == inte1 = " + (inte == inte1));
System.out.println("inte.equals(inte1) = " + inte.equals(inte1));
}
}
Date
- 相关字符解释
- yyyy:年
- MM:月
- dd:日
- hh:1~12 小时制 (1-12)
- HH:24 小时制 (0-23)
- mm:分
- ss:秒
- S:毫秒
- E:星期几
- D:一年中的第几天
- F:一月中的第几个星期 (会把这个月总共过的天数除以 7)
- w:一年中的第几个星期
- W:一月中的第几个星期 (会根据实际情况来算)
- a:上下午标识
- k:和 HH 差不多,表示一天 24 小时制 (1-24)。
- K:和 hh 差不多,表示一天 12 小时制 (0-11)。
- z:表示时区
package note.date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateNote {
public static void main(String[] args) throws ParseException {
Date date = new Date();
System.out.println("date = " + date);
System.out.println("new Date().before() = " + new Date().before(date));
System.out.println("new Date().after(date) = " + new Date().after(date));
System.out.println("date.getDay() = " + date.getDay());
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");
String format = simpleDateFormat.format(date);
System.out.println("format = " + format);
String str = "14:20 星期三";
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("HH:mm E");
Date date1 = simpleDateFormat1.parse(str);
System.out.println(date1);
}
}
Calendar
package note.date;
import java.util.Calendar;
public class CalendarNote {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
System.out.println("calendar = " + calendar);
System.out.println("calendar.get(Calendar.YEAR) = " + calendar.get(Calendar.YEAR));
System.out.println("calendar.get(Calendar.MONTH) = " + calendar.get(Calendar.MONTH));
System.out.println("calendar.get(Calendar.DAY_OF_MONTH) = " + calendar.get(Calendar.DAY_OF_MONTH));
System.out.println("calendar.get(Calendar.DAY_OF_WEEK) = " + calendar.get(Calendar.DAY_OF_WEEK));
System.out.println("calendar.get(Calendar.HOUR_OF_DAY) = " + calendar.get(Calendar.HOUR_OF_DAY));
System.out.println("calendar.get(Calendar.MINUTE) = " + calendar.get(Calendar.MINUTE));
System.out.println("calendar.get(Calendar.SECOND) = " + calendar.get(Calendar.SECOND));
calendar.add(Calendar.YEAR,2);
System.out.println("calendar.get(Calendar.YEAR) = " + calendar.get(Calendar.YEAR));
System.out.println("calendar.before(Calendar.getInstance()) = " + calendar.before(Calendar.getInstance()));
System.out.println("calendar.after(Calendar.getInstance()) = " + calendar.after(Calendar.getInstance()));
}
}
LocalDateTime
package note.date;
import javax.swing.text.DateFormatter;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Formatter;
public class LocalDateTimeNote {
public static void main(String[] args) {
LocalDate localDate = LocalDate.now();
LocalDateTime birthday = LocalDateTime.of(1999, 3, 11,4,50,20);
System.out.println("localDate = " + localDate);
LocalTime localTime = LocalTime.now();
System.out.println("localTime = " + localTime);
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println("localDateTime = " + localDateTime);
System.out.println("日期时间=>字符串");
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String format = dateTimeFormatter.format(localDateTime);
System.out.println(format);
System.out.println("字符串=>日期时间");
DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("H:m");
LocalTime parse = LocalTime.parse("7:30",dateTimeFormatter1);
System.out.println(parse);
LocalTime localTime1 = localDateTime.toLocalTime();
LocalDate localDate1 = localDateTime.toLocalDate();
System.out.println("localTime.plusMinutes(3) = " + localTime.plusMinutes(3));
System.out.println(localTime.withMinute(59));
System.out.println("localTime.isBefore(LocalTime.now()) = " + localTime.isBefore(LocalTime.now()));
System.out.println("localTime.isAfter(localTime.now()) = " + localTime.isAfter(localTime.now()));
}
}