2、 内存的知识
3、抽象类可以有构造方法
4、最后一个的判断
5、接口中方法实现时候的权限 正因为default的权限小于public
6、synchronized关键字和volatile关键字比较:
volatile关键字是线程同步的轻量级实现,所以volatile性能肯定比synchronized关键字要好。但是volatile关键字只能用于变量而synchronized关键字可以修饰方法以及代码块。synchronized关键字在JavaSE1.6之后进行了主要包括为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁以及其它各种优化之后执行效率有了显著提升,实际开发中使用 synchronized 关键字的场景还是更多一些。
多线程访问volatile关键字不会发生阻塞,而synchronized关键字可能会发生阻塞
volatile关键字能保证数据的可见性,但不能保证数据的原子性。synchronized关键字两者都能保证。
volatile关键字主要用于解决变量在多个线程之间的可见性,而 synchronized关键字解决的是多个线程之间访问资源的同步性
7、thread runnable 锁
8、非短路逻辑与& 短路逻辑与&&
9、public>protected>默认(包访问权限)>private
10、
11、
12、Java中的object方法 getclass hashcode equals clone
tostring 不重写的话 就是这个样子的User@1b6d3586 类名@哈希码的无符号十六进制
notify
唤醒一个在此对象监视器上等待的线程(监视器相当于就是锁的概念)
notifyall
wait(long timeout)
暂停线程的执行,等到一段时间
wait(long timeout, int nanos)
wait() 没有时间限制
finalize() 实例被垃圾回收器回收的时候触发的操作
13、Java的基本数据类型是不面向对象的,所以有了包装类
14、垃圾回收针对的是堆 方法是位于栈中的 调用完出战
- 多态 运行时多态 重写 继承 父类引用指向子类对象 和编译时多态 重载
- 反射破坏代码的封装性,破坏原有的访问修饰符访问限制 的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,通过该类提供的方法实现对内部信息的操作访问
- 命名可以以下划线开头
- 类的初始化 父类静态变量——父类静态代码块——子类静态变量——子类静态代码块——父类非静态变量——父类非静态代码块——父类构造方法——子类非静态变量——子类非静态代码块——子类构造方法
- 有多个方法名相同,参数列表不同(参数个数不同,参数类型不同),与方法的返回值无关,与权限修饰符无关
- Servlet
- 要导入java/awt/event下面的所有类,只能是import java.awt.event.*
- javac-d 指定编译后类层次的根目录
-
假如某个JAVA进程的JVM参数配置如下: -Xms1G -Xmx2G -Xmn500M -XX:MaxPermSize=64M -XX:+UseConcMarkSweepGC -XX:SurvivorRatio=3, 请问eden区最终分配的大小是多少?
- java 中的值传递
- 接口修饰符 只能是public
- 三元操作符如果遇到可以转换为数字的类型,会做自动类型提升。
Object o1 = (false) ? new Double(1.0) : new Integer(2);
- 在接口中,属性默认public static final,这三个关键字可以省略;
- for(条件1;条件2;条件3) { //语句 } 执行顺序是条件1->条件2->语句->条件3->条件2->语句->条件3->条件2........ 如果条件2为true,则一直执行。如果条件2位false,则for循环结束
- 包装类里的equals方法先要比较类型
- 实现类可以获取接口中的属性。
- 接口中所有方法默认都是public,至于为什么要是public,原因在于如果不是public,那么只能在同个包下被实现,可访问权限就降低很多了,那么在实现类中,实现的类相当于子类,子类的访问权限是不能比父类小的,而在java中一个类如果没有权限的修饰符,默认是friendly(同一个包内的其它类才可访问),所以在实现类中一定要写public
- switch只接受int类型的数据,接受了低类型的就自动向上转为int
- Java中类的关系: 继承 实现 依赖(依赖注入) 组合
-
节点流:从一个节点读取数据
处理流:对一个已存在的流进行封装
-
抽象类中不是必须有抽象方法
-
final修饰的对象引用本身是不可变的,但对象内部的状态是可以改变的
-
springboot 好的两个因素,起步依赖(spring -boot-starter-parent),自动装配(springbootapplication =enableautoconfiguration+componmentscan+configuration)
- 快速重传通过检测重复的 ACK 快速重传丢失的数据包,避免了等待超时的延迟。
- 快速恢复在快速重传后,通过适当调整拥塞窗口来避免传输速率的大幅度降低,确保网络的吞吐量尽快恢复。