参考文章:https://blog.csdn.net/xiaoao20080/article/details/91285284
日志级别:ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
HashMap实现了Map接口的,它的Key和Value都可以是null,但是Hashtable,Key和Value都不能是null。
ArrayList与LinkedList都实现了List接口,继承了AbstractList类。
ArrayList底层是动态数组是实现,随机位置添加和删除,都需要移动数组的数据,而LinkedList底层是双向链表,只需要修改Node节点的引用。删除添加LinkedList更快,随机访问ArrayList数组要比链表快。
抽象类能继承一个普通类(或抽象类),实现多个接口。
抽象类和普通类相比只是不能被实例化,只能作为子类的超类。
抽象类是用来捕捉子类的通用特性的,被用来创建继承层级里子类的模板。
可以有默认的方法实现。
抽象类可以有构造方法。
可以有main方法。
不必须有抽象方法,但是包含抽象方法的类一定是抽象类。
接口
接口能实现多个其他接口。
接口是抽象方法的集合,一个类实现了某个接口就必须实现抽象方法。
接口抽象方法默认修饰符是
public
(可以不写),不能使用其他修饰符。
java
8
中接口可以包含具体的方法实现,方法实现必须
default
修饰。
1、super()表示调用父类构造函数、this()调用自己的构造函数,都必须在构造函数第一行,所以这一点也表明他俩不能在一个构造函数中
2. 子类调用父类的抽象方法,实际上是调用子类的实现方法
3、this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块(里面不能使用非static类型的)。
标识符只有英文,数字,下划线和$,而且数字不能做开头,可以为任意长度;
对象序列化:https://www.cnblogs.com/kubixuesheng/p/10350523.html
map和multimap都是由RB_tree(红黑树)来实现的,本就合适于查找,复杂度为 O( ln(N) )
map是一对一,multimap允许重复,一对多key-value
UNordered_set ,unordered_map是由hash_table(哈希表)来实现的,时间复杂度为o(1)
deque的push_back, push_front, pop_back, pop_front操作时间复杂度为O(1)
重写,重载是多态的不同表现
重写:子类的新方法将覆盖父类中原有的方法
重载:比如 多个构造函数
进程ID:
- 1、jps:查看本机java进程信息。
- 2、jstack:打印线程的栈信息,制作线程dump文件。
- 3、jmap:打印内存映射,制作堆dump文件
- 4、jstat:性能监控工具
- 5、jhat:内存分析工具
- 6、jconsole:简易的可视化控制台
- 7、jvisualvm:功能强大的控制台
父类的静态域-子类的静态域-父类的构造代码块-父类的构造函数-子类的构造代码块-子类的构造函数
规律就是 父类先于子类 静态的先于非静态的
其中静态域包含静态代码块与静态方法,这个谁在前面,则先执行谁。
true、false、null都不是关键字
goto、const、是保留的关键字