1.比较两个日期(LocalDate)相隔多少天
ChronoUnit.DAYS.between(firstDay, secondDay);
Duration.between(firstDay, secondDay);//传入LocalDateTime
Period.between(firstDay, secondDay);//传入LocalDate
2.Java中的访问修饰符
访问修饰符 | 本类 | 同包 | 子类 | 其他 |
---|---|---|---|---|
private | √ | |||
默认 | √ | √ | ||
protected | √ | √ | √ | |
public | √ | √ | √ | √ |
3.Java内部类,包含成员内部类、静态内部类、方法内部类、匿名内部类。
1、成员内部类:
//外部类HelloWorld
public class HelloWorld{
//外部类的私有属性name
private String name = "imooc";
//外部类的成员属性
int age = 20;
//成员内部类Inner
public class Inner {
String name = "爱慕课";
//内部类中的方法
public void show() {
System.out.println("外部类中的name:" + HelloWorld.this.name );
System.out.println("内部类中的name:" + name);
System.out.println("外部类中的age:" + age);
}
}
//测试成员内部类
public static void main(String[] args) {
//创建外部类的对象
HelloWorld o = new HelloWorld();
//创建内部类的对象
Inner inn = o.new Inner() ;
//调用内部类对象的show方法
inn.show();
}
}
2、静态内部类
//外部类
public class HelloWorld {
// 外部类中的静态变量score
private static int score = 84;
// 创建静态内部类
public static class SInner {
// 内部类中的变量score
int score = 91;
public void show() {
System.out.println("访问外部类中的score:" + HelloWorld.score);
System.out.println("访问内部类中的score:" + score);
}
}
// 测试静态内部类
public static void main(String[] args) {
// 直接创建内部类的对象
SInner si = new SInner();
// 调用show方法
si.show();
}
}
3、方法内部类
//外部类
public class HelloWorld {
private String name = "爱慕课";
// 外部类中的show方法
public void show() {
// 定义方法内部类
class MInner {
int score = 83;
public int getScore() {
return score + 10;
}
}
// 创建方法内部类的对象
MInner mInner = new MInner();
// 调用内部类的方法
int newScore = mInner.getScore();
System.out.println("姓名:" + name + "\n加分后的成绩:" + newScore);
}
// 测试方法内部类
public static void main(String[] args) {
// 创建外部类的对象
HelloWorld mo = new HelloWorld();
// 调用外部类的方法
mo.show();
}
}
4.常用UML图
- 用例图(The Use Case Diagram):用例图能够以可视化的方式,表达系统如何满足所收集的业务规则,以及特定的用户需求等信息。
- 序列图(The Sequence Diagram):序列图用于按照交互发生的一系列顺序,显示对象之间的这些交互。
- 类图(The Class Diagram):UML类图、业务逻辑和所有支持结构一同被用于定义全部的代码结构。
5.Java异常
- 非检查异常由JVM捕获并处理,不需要我们关心
- 检查异常需要try…catch或者抛出
- 多重catch先子类异常后父类异常