类和对象
面向对象的程序是从对象构建的. 类是用于创建对象的“模板”. 该类定义对象可以包含的值以及可以对该对象执行的操作.
编译之后,一个类被存储在文件系统中的'(class-name).class'文件中.
当我们要从该类创建第一个对象时,或者当我们调用其一个静态函数时,该类被加载到内存中.
在类加载期间,所有类的静态变量都被初始化. 还将执行在static { ... }块中定义的操作. 一旦加载了一个类,它将保留在内存中,类静态变量将不再被初始化.
将类加载到内存中后,可以从该类创建对象. 当一个对象创建时,它的成员变量被初始化,但静态变量不是.
当没有更多的引用对象时,垃圾收集器会销毁对象并释放其内存,以便可以重用内存来保存新的对象.
方法
方法是我们如何与对象进行通信. 当我们调用或调用方法时,我们要求对象执行一个任务.
我们可以说方法实现对象的行为. 对于每种方法,我们需要给出一个名称,我们需要定义它的输入参数,我们需要定义它的返回类型.
我们还需要设置其可见性 (私人,受保护或公开). 如果该方法抛出一个被检查的异常,那么它也需要被声明. 它被称为方法定义 . 方法定义的语法是:
MyClass {
...
public ReturnType methodName ( ParamOneType parameter1 , ParamTwoType parameter2 ) {
...
return returnType ;
}
...
}
可以将任何基本数据类型或引用数据类型传递给一种方法
- 基本类型按值传递:这意味着一旦传入了基本类型,方法中的值和源变量之间就没有更多的连接:
- 对象类型按引用传递: 方法中的值和源变量之是同一个引用
Java SE 5.0为具有可变参数列表的方法添加了句法支持,这简化了需要可变数量参数的方法的类型安全使用
public void drawPolygon ( Point ... points ) {
// ...
}
线程
任何计算机的CPU都被设计为在任何给定时间执行一个任务,但是我们并行运行多个应用程序,并且一切都以完美的一致性运行.
这不仅仅是因为CPU在执行计算时速度非常快,这是因为CPU使用了一个聪明的设备,将时间分成各种任务.
在计算机上调用的每个应用程序或任务都以进程的形式与CPU关联. 因此,CPU管理各种进程,并在每个进程之间来回跳转,从而给予其一小部分时间和处理能力.
这种情况发生得非常快,以至于正在运行的计算机用户同时运行进程的错觉. CPU在进程之间划分时间的这种功能称为多任务 .
所以,如果我们在计算机上运行一个Java应用程序,我们正在有效地创建一个CPU,CPU占用CPU时间的一小部分.
在Java语法中,这个主进程被称为守护程序进程或守护程序线程 . 但是,Java走得更远一些. 它允许程序员将这个守护进程线程分成几个同时执行的多个线程(就像一个CPU),因此为Java应用程序提供了一个更精细的多任务处理功能,称为多线程 .