一、Java语言概述
1.Java语言的特点
1.简单易学
出于安全性和稳定性的考虑,Java去掉了C/C++支持的三个不易理解和掌握的数据类型:指针(pointer)、联合体(unions)和结构体(structs)。这样做的目的是用户不能通过Java程序直接访问内存地址,从而保证了程序更高的安全性。而C/C++中联合体和结构体的功能,完全可以在Java中用类及类的属性等面向对象的方法来实现,这不但更加合理规范,而且降低了学习难度。
2.面向对象
Java是一种以对象为中心,以消息为驱动的面向对象的编程语言。面向对象的语言都支持三个概念:封装、继承和多态。
1)封装
指利用抽象数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型的内部,系统的其他部分只有通过封装在数据外面的被授权的操作,才能够与这个抽象数据类型交互。
2)继承
指一个对象直接使用另一个对象的属性和方法。Java语言只支持单一继承,这样就大大降低了复杂度,但在Java语言中,可以通过接口来实现多重继承。
3)多态
指一个程序中同名的多个不同方法共存的情况,即一个对外接口,多个内在实现法。①通过子类对父类方法的覆盖实现多态,②重载在同一个类中定义多个同名的不同方法来实现多态。多态的特点使得它们不需了解对方的具体细节,就可以很好地共同工作。
3.平台无关性
Java语言是靠Java虚拟机(JVM)在目标代码级实现平台无关性的,可以说,JVM是Java平台无关的基础。而C和C++语言具有一定程度的源代码级平台无关。
4.分布式
Java语言支持WWW客户机/服务器计算模式,因此,它支持数据分布(URL对象)和操作分布(Java的小程序-Applet)这两种分布性。
5.可靠性
1)编译器可以发现方法的调用错误。
2)Java语言不支持指针,这就避免了对内存的非法访问。
3)Java语言的自动单元回收功能防止了内存丢失等动态内存分配导致的问题。
4)Java解释器运行时实施检查,可以发现数组和字符串访问的越界。
5)Java语言提供了异常处理机制,可以把一组错误代码放在一个地方,简化错误处理任务,便于恢复。
6.安全性
1)当Java字节码进入解释器时,首先必须经过字节码校验器的检查;
2)其次,Java解释器将决定程序中类的内存布局。
3)类装载器负责把来自网络的类装载到单独的内存区域,避免应用程序之间相互干扰破坏。
4)客户端用户还可以限制从网络上装载的类只能访问某些文件系统。
7.支持多线程
1)Java环境本身就是多线程的,若干个系统线程运行,负责必要的无用单元回收、系统维护等系统级操作。
2)Java语言内置多线程机制,可以大大简化多线程应用程序开发。
3)Java语言的线程还包括一组同步原语,这些原语负责对线程实行并发控制。
Java语言的多线程在一定程度上受到运行时支持平台的限制
8.支持网络编程
9.编译与解释并存
用Java语言编写的程序称为源文件(扩展名为.java文件),源文件是不能被计算机执行的。首先编译器将Java源程序编译成字节码文件(即扩展名为.class的文件),然后再由Java运行系统解释执行字节码文件。
2.Java源文件(.java)与Java字节码文件(.class)
1.Java源文件必须先经过编译的过程,然后利用解释的方式来运行。
2.字节码是Java虚拟机(JVM)的指令组,和CPU上的微指令码很相似。Java语言编译成字节码后文件尺寸较小,便于网络传输。
3.字节码最大的好处是可跨平台运行,即Java的字节码可以编写一次,到处运行。
3.Java应用程序和Java小程序的主类
无论是应用程序还是小程序都必须有一个主类,主类是程序执行的起始点,应用程序的主类是包含有main()方法的类,但应用程序的主类并不一定要求是public类;小程序的主类必须是一个继承自系统类JApplet或Applet的子类,且该类必须是public类。
4.Java虚拟机
把Java的字节码看成是JVM上运行的机器码,即JVM中的解释器负责将字节码解释成本地的机器码。
5.Java程序的种类
1)Application(应用程序)
2)Applet(小程序)
6.Java应用程序和Java小程序的差异
1.运行环境
1)Java应用程序:最简单的环境中,唯一外部输入就是命令行参数。
2)Java小程序:它是内嵌在HTML文件里,需要来自Web浏览器的大量信息,在WWW浏览器这个特定环境下运行。
2.执行环境
1)Java应用程序:适合非网络系统和内存较小的系统
2)Java小程序:适合在Internet上的使用
3.图形界面
1)Java应用程序:另外书写专用代码来营建直接的图形界面。
2)Java小程序:直接利用浏览器或AppletViewer提供的图形用户界面。
4.主类
1)Java应用程序:必须是包含有主方法main()的类
2)Java小程序:必须是一个继承自系统类JApplet或Applet的子类,且该类必须是public类。