为什么要用Java?
- 简单的
- 面向对象的
- 健壮的
- 安全的
- 解释的
- 结构体系中立的(与平台无关的)
- 多线程的
- 动态的语言
简单性
Java最初是为对家用电器进行集成控制而设计的一种语言,因此它必须简单明了。
Java语言的简单性主要体现在:
- Java的风格类似C++,C++程序员初次接触Java语言,就会感到熟悉.从某种意义上讲,Java语言是C++的一个变种。(便于理解和转换)
- Java摒弃了C++中容易引发程序错误的一些特性,如指针,结构,枚举以及内存管理等。
- Java提供了丰富的类库,可以帮助我们很方便的开发Java程序.
- 小,基本的解释器及类支持大约为40KB,加上基础标准类库和对线程的支持大约增加175KB
面向对象
面向对象是Java的最重要特性,它支持:
- 继承,重载,多态等面向对象的特性;
- Java语言的设计是完全面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。
Java 是健壮的
程序的健壮性即是程序的可靠性
- Java非常重视及早检查错误,Java编译器可以查处许多其它编译器运行时才能发现的错误
- Java不支持指针,从而避免了对内存直接操作容易造成的数据破坏;Java自动回收内存.
- Java具有实时异常处理的功能,Java强制程序员编写异常处理的代码,能够捕获并响应意外情况
Java 是安全的
作为Internet程序设计语言,Java用于网络和分布式环境
- Java执行多层安全机制用来保护系统不受恶意程序攻击和破坏
- 不允许Applet读写计算机的文件系统,防止对文件破坏、传播病毒等
- 不允许Applet运行浏览器所在计算机上的任何程序
- 除了存储Applet的服务器之外,不允许Applet建立用户计算机与任何其他计算机相连
Java 是解释执行的
- Java的源程序首先由编译器(javac.exe)编译成字节码
- 再由解释器(java.exe)解释执行
- Java解释器能直接在任何机器上执行Java字节码

Java 是体系结构中立的
Write once, Run Anywhere
- 即Java的平台无关性
- Java 程序被编译成一种与体系结构无关的字节代码
- 只要安装了Java虚拟机,Java程序就可以在任意处理器上运行,Java解释器得到字节码后,对他进行转换使他能够在不同的平台上运行
- Java虚拟机在操作系统级得到统一支持

两个问题?
- Java是跨平台的?JVM呢?
- 跨平台究竟是如何实现的?
可移植性
Java语言的平台无关性,成为了Java语言应用程序方便地移植到网络上不同机器的良好基础,使得Java语言应用程序在已配备了Java语言解释及运行环境的任一台机器上运行是可行的。
可扩展性
由于Java语言是一种基于C++的编程语言,它们之间有很多相似性,便于扩展。当然,Java语言的可扩展性还体现在:Java语言可以把内部的方法映射成软件库所定义的功能,且可以动态地与虚拟机链接。
多线程
Java语言本身提供了一个Thread类和一组内置的方法,它负责生成线程、执行线程或者查看线程的执行状态。
所以程序员要设计多线程程序时,只要继承上述的那个类和调用相应的方法就可以解决了,从而也提高了程序执行的效率。
动态性
1. Java语言的动态性是其面向对象设计方法的扩展.它允许程序动态地装入运行过程中所需要的类,即可以在本地或网上动态地加载类,或者说在程序的执行过程中可以随意地增加新方法、实例变量等。
2. Java还简化了使用一个升级的或全新协议的方法.如果你的系统运行Java程序时遇到了不知怎样处理的程序,Java能自动下载你所需要的功能程序.
Java的性能?—Java字节码的两种执行方式
- 即时编译方式:解释器先将字节码编译成机器码,然后在执行该机器码.
- 解释执行方式:解释器通过每次解释并执行一小段代码来完成Java字节码程序的所有操作.
通常采用的是第二种方法.


