Java程序的基本规则
java程序的基本规则
1.1 java程序的组成形式
Java程序是一种纯粹的面向对象的程序设计语言,因此Java程序
必须以类(class)的形式存在,类(class)是Java程序的最小程序
单位。Java程序不允许可执行性语句、方法等成分独立存在,所有的
程序部分都必须放在类定义里。
public static void main(String[] args)
如需某个类能被解释器直接解释执行,则这个类里必须包含main方法,而且main方法必须使用public static修饰,必须使用void声明该方法的返回值,且main方法的形参必须是字符串数组类型(String[] args是字符串数组的形式)
1.2 java程序的命名规则
Java程序源文件的命名不是随意的,Java文件的命名必须满足如下规则。
➢ Java程序源文件的扩展名必须是.java,不能是其他文件扩展名。
➢ 在通常情况下,Java程序源文件的主文件名可以是任意的。但有一种情况例外:如果Java程序源代码里定义了一个public
类,则该源文件的主文件名必须与该public类(也就是该类定义使用了public关键字修饰)的类名相同。
1.3java的垃圾回收
与C/C++程序不同,Java语言不需要程序员直接控制内存回收,Java程序的内存分配和回收都是由JRE在后台自动进行的。JRE会负责
回收那些不再使用的内存,这种机制被称为垃圾回收(GarbageCollection,GC)。
垃圾回收的特点
➢ 垃圾回收器的工作目标是回收无用对象的内存空间,这些内存空间都是JVM堆内存里的内存空间,垃圾回收器只能回收内存资
源,对其他物理资源,如数据库连接、磁盘I/O等资源则无能为力。
➢ 为了更快地让垃圾回收器回收那些不再使用的对象,可以将该对象的引用变量设置为null,通过这种方式暗示垃圾回收器可
以回收该对象。
➢ 垃圾回收发生的不可预知性。由于不同JVM采用了不同的垃圾回收机制和不同的垃圾回收算法,因此它有可能是定时发生
的,有可能是当CPU空闲时发生的,也有可能和原始的垃圾回收一样,等到内存消耗出现极限时发生,这和垃圾回收实现机制
的选择及具体的设置都有关系。虽然程序员可以通过调用Runtime对象的gc()或System.gc()等方法来建议系统进行垃圾回收,但这种调用
仅仅是建议,依然不能精确控制垃圾回收机制的执行。
➢ 垃圾回收的精确性主要包括两个方面:一是垃圾回收机制能够精确地标记活着的对象;二是垃圾回收器能够精确地定位对象
之间的引用关系。前者是完全回收所有废弃对象的前提,否则就可能造成内存泄漏;而后者则是实现归并和复制等算法的必
要条件,通过这种引用关系,可以保证所有对象都能被可靠地回收,所有对象都能被重新分配,从而有效地减少内存碎片的
产生。
➢ 现在的JVM有多种不同的垃圾回收实现,每种回收机制因其算法差异可能表现各异,有的当垃圾回收开始时就停止应用程序
的运行,有的当垃圾回收运行时允许应用程序的线程运行,还有的在同一时间允许垃圾回收多线程运行。