Double, Long, Float
double和Long 后面可以不跟,但是float后面必须要有f。
Java.long: 不需要被导入,是自动导入的
包含:
- -包装类
- String 类
- Math 类
- class 类
- Object 类
类的构造方法
A constructor in Java is special method that is used to initialize objects. The constructor is called when an object of a class is created. It can be used to set initial values for object attributes.
无返回值,其名称和本类名称相同
计算机所能处理的最小数据项: 位
1双字 = 2字= 4字节= 32位
try后面必须要有catch:错误
try市场是对其中代码捕获异常,catch是捕获异常并且可以处理异常。可以用try来搜寻异常,不去捕获。也就是不去catch这是可以的。finally 是其中的代码一定会执行,也就说如果try其中的代码产生了异常,如果有catch则会直接跳转到catch部分,如果没有catch部分会跳转到’{‘ 后面的代码,这样以上方法就没有一个确定的返回值,所以需要加finally作为方法出异常以后的返回结果。
面向对象的五大基本原则
- 单一职责原则(single-resposibility principle):一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。
- 开放封闭原则(Open-Closed principle):软件实体应该是可扩展的,而不可修改的。也就是对扩展开放,对修改封闭的。
- Liskov替换原则(Liskov-Substituion Principle):子类必须能够替换其基类。这一思想体现为对继承机制的约束规范,只有子类能够替换基类时,才能保证系统在运行期内识别子类,这是保证继承复用的基础。
- 依赖倒置原则(Dependecy-Inversion Principle):依赖于抽象。具体而言就是高层模块不依赖于底层模块,二者都同依赖于抽象;抽象不依赖于具体,具体依赖于抽象。
- 接口隔离原则(Interface-Segregation Principle):使用多个小的专门的接口,而不要使用一个大的总接口。
重载和重写
- 重载(overload): When two or more methods in the same class have the same name but different parameters, it’s called Overloading.
- 重写(override):when the method signature (name and parameters ) are the same in the superclass and the child calss, it’s called overriding.
final
- final修饰变量,则等同于常量
- final修饰方法中的参数,成为最终参数
- final修饰类,则类不能被继承
- final修饰方法,则方法不能被重写
- final不能修饰抽象类
- final修饰的方法可以被重载但不能被重写
static
针对多个对象共有的成员变量值时所提出的
特点:
- 随着类的加载,优先于对象存在
- 被类的所有对象共享
- 可以通过类名直接调用
注意事项:
- 在静态方法中没有this关键字
- 静态方法只能访问静态的成员变量和静态的成员方法
Java类成员的访问控制权限
public > protected > 同包(default)> private
abstract 类
一个类里面么有包含有足够的信息来描绘一个具体的对象
- 抽象类中有抽象方法,需要被实现,不能实例化
- 抽象类可以被继承,如果不继承,里面的抽象方法就没意义了
- 子类不一定为抽象类,可以是也可以不是
抽象方法
该方法的具体实现是有它的子类确定,它只包含一个方法名,而每一偶方法体
声明抽象方法造成的结果
- 如果一个类包含抽象方法,那么该类被叙事抽象类
- 任何子类必须重写父类的抽象方法,或者声明子身为抽象类
静态块,静态域
静态域包含静态变量、静态块和静态方法,其中需要初始化的静态变量和静态块,他们两个的初始化顺序是靠他们来的位置决定的
初始化顺序: t1,t2,静态块
main 函数
格式: public static void main(Stirng[] args) 入参中有一个String[] args, 这是一个字符串数组,他早期是为了接收键盘录入数据的,现在被Scanner所代替
代码优化技术
- 复写传播
- 删除死代码
- 强度削弱
- 归纳变量删除
满二叉树
一个二叉树,如果每一层的结点数都达到最大值,则这个二叉树就是满二叉树
完全二叉树
对于深度为k的,有n个结点的二叉树,并且仅当其每一个结点都与深度为k的满二叉树编号从1至n的结点一一对应。
特点
- 完全二叉树只允许最后一层有空缺,且空缺在右边
- 完全二叉树中,某个结点没有左子树,则一定没有子树
网桥
- 同网段:丢弃
- 不同网段:转发
- 未知网段:扩散