面向过程和面向对象的概念
面向过程:就是针对过程的开发,以什么正在发生为目标的编程开发,比如一辆车从出站到进站,只编写出站和进站两件事,然后依次调用,而不是针对车本身进行编写。
面向对象:就是把相关的数据和方法看作一个整体来看待,从更高的层次来进行系统的建模,更贴近事物的自然运行模式。Java提供了类,接口,继承等面向对象特性,为了简单起见,java的类支持单继承,接口支持多继承,并支持类和接口之间的实现机制。
时间复杂度和空间复杂度
时间复杂度:算法运行的时间
空间复杂度:内存存储空间与输入值的关系
重写(override)和重载(overload)
重写:两同两小一大
两同:方法名相同,形参列表相同
两小:返回值类型更小或相同,抛出异常类应更小或相同
一大:访问修饰符应更大
重载:多个方法名相同的方法,根据传参的不同调用不同的方法。
this和super
this:指向对象本身的一个指针。
super:可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类。
super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句)
this(参数):调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句)
super() 和 this() 类似,区别是,super() 从子类中调用父类的构造方法,this() 在同一类内调用其它方法。
static和final
静态变量:
static 关键字用来声明独立于对象的静态变量,无论一个类实例化多少对象,它的静态变量只有一份拷贝。 静态变量也被称为类变量。局部变量不能被声明为 static 变量。
静态方法:
static 关键字用来声明独立于对象的静态方法。静态方法不能使用类的非静态变量。静态方法从参数列表得到数据,然后计算这些数据。
final 表示"最后的、最终的"含义,变量一旦赋值后,不能被重新赋值。被 final 修饰的实例变量必须显式指定初始值。
final 修饰符通常和 static 修饰符一起使用来创建类常量。