二叉树
二叉数:
二叉树递归遍历
二叉树非递归遍历
宽度优先遍历
搜索二叉树
完全二叉树
满二叉树
平衡二叉树
// 二叉树节点
class Node<V> {
V value;
Node left;
Node right;
}
头节点:也叫根节点,二叉树最顶端的节点(无无父结点)
叶节点:左右子节点都为null
子树:以任意一节点为根,其衍生下可以直接相连或经过节点相连的全部节点组成的树
二叉树遍历:使用递归方式实现:// 二叉树每个节点遍历时都有三次访问
public static void f(Node head) {
//1:start
if (head == null) {
return null;
}
...
// 1:end
f(head.left);
// 2:start
...
// 2:end
f(head.right);
// 3:start
...
...
继承
继承:
类,超类和子类
Object:所有类的超类
泛型数组列表
对象包装器与自动装箱
参数数量可变的方法
枚举类
反射
继承的设计技巧
类,超类和子类:使用关键字:extends 表示继承public class A extends B {
...
}
超类 = 基类 = 父类 子类 = 孩子类
使用父类的方法: supersuper.fun(); //使用父类的fun方法
super(); //使用父类的构造器方法
多态:可将子类对象赋予给超类变量Employee e; //Manager extends Employee
e = new Employee(); //OK
e = new Manager(); //ok
强制类型转换:A a = (A) b; 后续使用可能会报错
在超类强转为子类前可以使用:instanceof 监测是否能强转
if(b instanceof a){ //如果b能强转为a,就可以将b转为a给予其他变量使用
c = (a)b;
}
...
接口
接口,lambda表达式与内部类
接口
lambda表达式
内部类
服务加载器 (null)
代理
接口:使用关键字: interface (定义接口), implements (实现接口)
接口中的方法自动为public,写接口时不需要赋予public权限词
实现接口需要实现其全部方法interface A;
class B implements A;
A a = new A(); //错误
A b;
b = new B(); //正确,可以声明接口变量,实例化为实现接口的对象
java是单继承,每个类只能有一个超类,但能实现很多接口*使用 static ,private 关键词创造静态私有方法
使用 default 关键字创造默认方法,可以直接在接口中提供默认实现
public interface Comparable<T>{
default int compareTo(T other){ return 0; }
}
默认方法冲突:
超类优先:如果超类提供了一个具体方法,同名且有相同参数的默认方法会被忽略
接口冲 ...
对象与类
对象与类:
面向对象程序设计概述
适用预定义类
用户自定义方法
静态字段与静态方法
方法参数
对象构造
包
JAR文件
文档注释
类设计技巧
面向对象程序设计概述(OOP)类:存储数据字段和方法的摸具封装:是处理对象的一个重要概念,将数据与行为组合在一个包中,并对对象使用者隐藏具体实现的方法对象:(行为:可以做什么方法,状态:使用不同方法对象会如何响应,标识:如何区分相同信息的不同对象)识别类:Item,Order等为人熟悉的人为设计类类之间的关系:依赖(uses-a),聚合(has-a),继承(is-a)使用预定义类:使用构造器(constructor 构造函数)在目标类前加上 new 操作符
表示时间点的Date类
*表示日历的LocalDate类
用户自定义类与自定义方法:使用class关键字自定义类
“javac className*.java”与”javac classNameTest.java”都可以视为编译className类
构造器:
构造器需要与类名同名
每个类可以有一个以上的构造器(0,1,2…个不同参数)
构造器没有返回值
构造器总是伴随着new操作符一起调用
...
程序设计结构
Java程序设计结构
数据类型
变量与常量
运算符
字符串
输入输出
控制流
大数
数组
保留字与关键字:关键字:目前已经有特殊作用的单词字符,例如static,class等
保留字:包括关键字,同时还有部分目前未被使用,但未来可能会被使用的单词字符
数据类型:八种基本类型,包括
四种整型:int(四字节,正负21e),short(二字节,正负三万二),
long(八字节,正负900ee),byte(一字节,-128—127)
两种浮点型:float(四字节),double(八字节)
一种字符型:char(二字节),用于表示Unicode编码的代码单元
一种用于表真值:boolean
浮点数遵循IEEE 754规范:
NAN为非数字,例如0/0会得到Double.NAN;
无穷大(正负)是特殊浮点Double.POSITIVE_INFINITY,Double.NEGATIVE_INFINITY
变量与常量:变量:需要显式初始化变量boolean flag = false;
常量:使用关键字 static final 设置常量,public stati ...