声明方法不能被子类重写。 private 方法隐式地被指定为 final,如果在子类中定义的方法和基类中的一个 private 方法签名相同,此时子类的方 法不是重写基类方法,而是在子类中定义了一个新的方法。 3. 类 声明类不允许被继承 static 1. 静态变量 静态变量:又称为类变量,也就是说这个变量属于类的,类所有的实例...
default方法:接口方法提供的默认实现,必须使用 default 修饰符标记这个方法 解决默认方法冲突 接口冲突:1.如果一个类实现了A,B两个接口,这两个接口有相同的默认方法,则实现类需要重写这个默认方法 超类优先:2.如果一个类的超类中方法和该类的实现接口默认方法相同,则这个类继承的方法以超类的方法为准 类优先:3.如...
导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法 wait(long timeout) 导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量 wait(long timeout, int nanos) 导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notify...
1. 执行静态方法SpringApplication.run @SpringBootApplication @SpringBootConfiguration @Configuration @EnableAutoConfiguration 借助@Import,所有符合自动创配条件的Bean都会被注入到IOC容器 @AutoConfigurationPackage @Import(AutoConfigurationImportSelector.class) 通过SpringFactoriesLoader加载META-INF/spring.factories spring...
TERMINATED(终止) 执行完任务或者异常退出 线程交互 sleep Thread.sleep(time) 被interupt中断后会清除中断标识 watit/notify/notifyAll 必须在同步代码块里,wait须在notify之前调用 LockSupport 使用了permit(许可证)的概念来做到阻塞和唤醒线程的功能,每个线程都有一个许可(permit),permit只有两个值1和...
TERMINATED 线程常用方法 public synchronized void start 注意和run()区别,直接调用run是在主线程里执行方法,调用start()本质是调用了native方法向操作系统申请了新的线程资源 join(synchronized修饰) 在一个线程中调用其他线程的join方法,实现同步执行的效果 本质是调用了Object里的wait方法,插队的线程通过那到...
TERMINATED BLOCKED 3. 线程的基本操作 interrupt 抛出InterruptedException异常时, 会清除中断标志位 interrupt(), interrupted(), isInterrupt() sleep sleep与wait的区别 join 让父线程等待子线程结束之后才能继续运行 yield yield仅仅只会把时间片让给同
最佳实践 1. 不确定是否需要使用public修饰时,尽量不用public 2. 把方法定义为package权限有助于测试,因为测试类和被测试类只要位于同一个package,测试代码就可以访问被测试类的package权限方法。 3. 一个.java文件只能包含一个public类,但可以包含多个非public类。如果有public类,文件名必须和public类的名字相同。
main方法为何是public 因为java程序是通过jvm虚拟机调用的,所以main()函数要是想被调用,必须是public 非访问修饰符 static 用来修饰方法和变量 静态变量(类变量) 这个变量属于类的,类所有的实例都共享静态变量,可以直接通过类名来访问它;静态变量在内存中只存在一份。
导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量 wait(long timeout, int nanos) 导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量。