类和对象
对象:对象是类的一个实例,有状态和行为。
创建对象:声明,new 实例化,调用构造方法初始化对象。
类:描述一类对象的行为和状态,是一个模板。
局部变量:声明在方法、构造方法或者语句块中。在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁。
成员变量:声明在一个类中,在方法、构造方法和语句块之外。在对象创建的时候创建,在对象被销毁的时候销毁。
类变量:静态变量,在类中以static关键字声明,在方法构造方法和语句块之外。常用于常量。静态变量在第一次被访问时创建,在程序结束时销毁。
抽象类:abstract class
不能实例化对象,必须被继承,只有抽象类的非抽象子类可以创建对象。
一个类只能继承一个抽象类,却能实现多个接口。
抽象类中的方法只是声明,不给出方法的具体实现功能。
抽象类的非抽象子类必须给出抽象类中的抽象方法的具体实现。
构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。
抽象方法
抽象父类中定义,该方法的具体实现由子类确定。
抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
继承:extends
子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法。
重写和重载
重写:子类对父类中允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。
重载:在一个类里,方法名字相同,而参数不同。返回类型可以相同也可以不同。
多态
同一接口,使用不同的实例而执行不同操作。
三种实现方法:重写、接口、抽象类和抽象方法。
封装
减少耦合,类内部结构自由修改,接口调用,隐藏及控制变量信息。
接口:interface
抽象类型,是抽象方法的集合,接口中所有的方法必须是抽象方法。
一个类通过继承接口的方式,从而来继承接口的抽象方法。
接口无法被实例化,非抽象类要定义接口中的所有方法。
类为单一继承,但接口允许多继承。
除了 static 和 final 变量外,接口不能包含其他成员变量。
多线程
线程是一个动态执行的过程,它也有一个从产生到死亡的过程。
生命周期:新建状态,就绪状态,运行状态,阻塞状态,死亡状态。
Java 提供了三种创建线程的方法:
通过实现 Runnable 接口;通过继承 Thread 类本身;通过 Callable 和 Future 创建线程。
采用实现 Runnable、Callable 接口的方式创建多线程时,线程类只是实现了 Runnable 接口或 Callable 接口,还可以继承其他类。
使用继承 Thread 类的方式创建多线程时,编写简单,如果需要访问当前线程,则无需使用 Thread.currentThread() 方法,直接使用 this 即可获得当前线程。
JVM 虚拟机
Java 语言使用 Java 虚拟机屏蔽了与具体平台相关的信息,使得 Java 语言编译程序只需生成在 Java 虚拟机上运行的目标代码,就可以在多种平台上不加修改地运行。
Java 虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是 Java 的能够“一次编译,到处运行”的原因。
参考文章:Java 教程 http://www.runoob.com/java