1.面向对象
Java是纯面向对象的,Java程序必须以class的形式存在,并且不允许可执行语句、方法等成分独立存在,所有的的程序部分都必须放在类定义里。Java中,如果某个类能被解释器直接解释执行,则这个类里必须包含main方法,而且main方法必须使用public static void来修饰,且main方法的形参必须是字符串数组类型(String[] args),也就是说main函数是Java程序执行的入口。这一点与python不同。Python是解释型语言但是python也是面向对象的。在一个大型Java程序中,main函数只能有一个,而其他类都是用于被main方法直接或间接调用的。
2.Java源文件命名规则
- Java源文件后缀名为.java
- 如果源文件中定义了一个public类,则该源文件的文件名应与该public的类名相同。如果源文件中没有public类,理论上该文件名可以是随意的,但建议让文件名与其中一个类名相同,可以提供更好的可读性。
- Java区分大小写。Java的所有关键字都是小写。
3.垃圾回收机制
如果一些分配出去的内存得不到及时回收,导致系统运行速度下降,甚至导致程序瘫痪,这种现象叫做内存泄漏(C/C++中需要程序员自己回收已经分配的内存)。Java程序的内存分配和回收都是由JRE在后台自动运行的。JRE会负责回收那些不再使用的内存,通常是在CPU空闲或者内存不足时自动进行垃圾回收。垃圾回收机制的主要作用:
- 释放对象内存:Java虚拟机的堆内存中存储着正在运行的应用程序所建立的对象。当不在有引用变量指向这个对象时,内存回收机制就会收回改对象所占的内存,以便之后分给新对象使用。
- 内存碎片整理:碎片是分配给对象的内存块之间的空闲内存区,碎片整理将所占用的堆内存移动到堆的一端。
4.面向对象的三大特性
- 封装:将对象的实现细节隐藏以来,然后通过一些公用方法将该对象的功能暴露出来。
- 继承:软件复用的重要手段。当子类继承父类后,子类作为一种特殊的父类,将直接获得父类的属性和方法。继承可以分为单继承或多继承。
- 多态:子类对象可以直接赋给父类变量,但运行时依然表现出子类的行为特征。这意味着同一个类型的对象在执行同一个方法时,可以表现出多种行为特征。多态的特性是建立在“继承”特性之上的。
- 其他特性:一个实例与另一个实例之间相互通信的机制叫“消息”。