一、Java程序的运行机制
Java程序需要经过编译和解释两个步骤,但其编译步骤并不会生成特定平台的机器码,而是生成一种与平台无关的字节码(*.class文件)。这种字节码不是可执行的,须使用Java解释器来解释执行。因此,我们可以认为:Java既是编译型语言,也是解释型语言。
负责解释执行字节码文件的是Java虚拟机,即(Java Virtual Machine)。因此编译器只需要面向虚拟机即可,生成虚拟机能解释的字节码再由虚拟机解释执行。JVM是Java程序跨平台的关键部分,只要为不同平台实现了相应的虚拟机,编译后的Java字节码就可以在该平台上运行。因此,Java具有良好的跨平台移植性。
Sun公司将Java分为JavaSE,JavaEE和JavaME三部分。其中
- JavaSE是整个Java技术的核心和基础,是JavaEE和JavaME的基础
- JavaEE是Java技术中应用最广泛的部分,提供了企业应用开发相关的完整解决方案
- JavaME主要用于控制移动设备和信息家电等有限存储的设备
JDK全称是Java SE Development Kit,即Java标准版开发包。它提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器,Java运行环境(JRE,JRE包含JVM和类加载器、字节码校验器和大量基础类库)。因此装了JDK就相当于装了整个Java编译运行所需的工具,配上代码编辑器,就可以写Java程序并运行啦!
二、Java程序的基本准则
Java程序是一种纯粹的面向对象的程序设计语言,因此Java程序必须以类的形式存在,类是Java程序的最小程序单位。
class test
{
}
上面的代码是最简单的Java程序,这个程序定义了一个test类,是一个空类,可以被编译。但是不能被解释执行,因为Java解释器规定:如果类被解释器直接解释执行,则这个类中必须包含main方法,而且main方法必须使用public static
void修饰,且main方法的形参必须是一个字符串数组(String[] args是字符串数组的形式)。因此一个可以被编译解释的Java程序格式如下:
class test
{
public static void main(String[] args)
{
}
}
Java源文件的命名规则:通常情况下,Java程序源文件是可以任意取名的,但当Java程序源代码中定义了一个public类,则该源文件的主文件名必须与该public类的类名相同。因此,一个Java源文件里最多定义了一public类。
Java程序执行输出有两种简单的方式System.out.print("Hello")
和System.out.println("Hello")
,区别是前者输出Hello后不会换行,后者会换行。
Java不需要程序员控制内存回收,其内存分配和垃圾回收都是JRE在后台自动进行的。JRE会负责回收那些不再使用的内存,这种机制称为垃圾回收。
三、面向对象
Java是纯粹的面向对象的程序设计语言,主要表现为Java完全支持面向对象的三种基本特征:继承、封装和多态。面向对象实际上由OOA(面向对象分析)、OOD(面向对象设计)和OOP(面向对象编程)三部分组成。其中前两个统一采用UML来描述并记录OOA和OOD的结果。面向对象支持如下功能
- 类是具有共同属性、共同方法的对象的集合。类是对象的抽象;对象是类的实例。类是最小的程序单元,类的封装性将各种信息细节隐藏起来,并通过公用方法来暴露该类对外所提供的功能,从而提升类的内聚性、降低对象之间的耦合性。
- 类之间共享属性和操作的机制称为继承,已有的类可以当作基类来引用,新类可作为派生类。继承具有传递性。可分为单继承(一个继承只允许有一个直接父类,即树形结构)和多继承(一个类允许有多个直接父亲)。由于多继承可能引起继承结构的混乱,而且会大大降低程序的可理解性,所以Java不再支持多类继承。
在Java语言中,除8个基本数据类型值外,一切都是对象。
来源:CSDN
作者:程勇uestc
链接:https://blog.csdn.net/qq_40438165/article/details/104044671