Java语言具有的特点有:
简单性、跨平台性、面向对象、安全性、多线程性、分布性、可移植性、解释型、高性能和动态性。
(1)简单性
Java语言类似C++,因此熟悉C++的程序员很容易掌握java,另外它摒弃了C++中易发生错误的地方,
尤其是Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
(2)跨平台性
所谓的跨平台性就是指软件可以不受计算机硬件和操作系统的约束而在任意计算机环境下正常运行。
而在Java中它自带的虚拟机可以很好的实现跨平台性,它提供了一个字节码到底层硬件平台及操作系统的屏障,
使得Java语言具备跨平台性。
(3)面向对象
Java是一种面向对象语言,它可以使得程序的开发更加简单易用。比如具有代码扩展,代码复用等功能。
(4)安全
Java的安全性可从两个方面得到保证。一方面,在Java语言里,指针和释放内存等C++功能被删除,
避免了非法内存操作。另一方面,当Java用来创建浏览器时,语言功能和浏览器本身提供的功能结合起来,
使它更安全。Java语言在机器上执行前,要经过很多次的测试。它经过代码校验,检查代码段的格式,
检测指针操作,对象操作是否过分以及试图改变一个对象的类型。
(5)多线程
多线程是指允许一个应用程序同时存在两个或两个以上的线程,用于支持事务并发和多任务处理。
Java除了内置的多线程技术之外,还定义了一些类、方法等来建立和管理用户定义的多线程。
(6)分布性
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口,
它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。
Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
(7)可移植的
Java系统本身具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的,
另外Java还严格规定了各个基本数据类型的长度
(8)解释的
Java解释器能直接运行目标代码指令,链接程序通常比编译程序所需资源少,
所以程序员可以在创建源程序上花上更多的时间。
(9)高性能
如果解释器速度不慢,Java可以在运行时直接将目标代码翻译成机器指令,
翻译目标代码的速度与C/C++的性能没什么区别。
(10)动态性
Java语言的设计目标之一是适应于动态变化的环境,Java程序需要的类能够动态地被载入到运行环境
,也可以通过网络来载入所需要的类。这也有利于软件的升级。
1.2
什么是Java虚拟机:Java虚拟机(Java Virtual Machine 简称JVM)是运行所有Java程序的抽象计算机,
是Java语言的运行环境,它是Java 最具吸引力的特性之一。
特点:Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。
一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,
Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息
,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。
1.3
什么是字节码: Java 中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器。
这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接口。编译程序只需要面向虚拟机,
生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行。
在 Java 中,这种供虚拟机理解的代码叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,
只面向虚拟机。每一种平台的解释器是不同的,但是实现的虚拟机是相同的。
Java 源程序经过编译器编译后变成字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,
解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行。这也就是解释了 Java 的编译与解释并存的特点。