一、Java特性和优势

1、跨平台/可移植性

这是Java的核心优势。Java程序的跨平台主要是指字节码文件可以在任何具有Java虚 拟机的计算机或者电子设备上运行,Java虚拟机中的Java解释 器负责将字节码文件解释成为特定的机器码进行运行。

2、安全性

1.Java取消了强大但又危险的指针。由于指针可进行移动运算,指针可随便指向一个内存区域, 而不管这个区域是否可用,这样做是危险的,因为原来这个内存地址可能存储着重要数据 或者是其他程序运行所占用的, 并且使用指针也容易数组越界。

2.Java提供了自动内存管理机制,由垃圾回收器在后台自动回收,

Java在字节码的传输过程中使用了公开密钥加密机制(PKC)。

3.而在运行环境提供了四级安全性保障机制:字节码校验器 -类装载器 -运行时内存布局 -文件访问限制

3、面向对象

1.Java和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继承,多 态)。

2.由于C++为了照顾大量C语言使用者而兼容了C,使得自身仅仅成为了带类的C语言,多少影 响了其面向对象的彻底性!

3.Java则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计 语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了c++的固 有缺陷。

4、简单性

Java就是C++语法的简化版,我们也可以将Java称之为“C+±”。跟我念“C加加减”,指的就是将C++的一些内容去掉;比如:头文件,指针运算,结构,联合,操作符重载,虚基类等等。同时,由于语法基于C语言,因此学习起来完全不费力。

5、高性能

Java最初发展阶段,总是被人诟病“性能低”;客观上,高级语言运行效率总是低于低级语言的,这个无法避免。Java语言本身发展中通过虚拟机的优化提升了几十倍运行效率。比如,通过JIT(JUST IN TIME)即时编译技术提高运行效率。 将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。这样的话,使Java程序的执行效率大大提高,某些代码甚至接待C++的效率。

因此,Java低性能的短腿,已经被完全解决了。业界发展上,我们也看到很多C++应用转到Java开发,很多C++程序员转型为Java程序员。

6、分布式

Java是为Internet的分布式环境设计的,因为它能够处理TCP/IP协议。事实上,通过URL访问一个网络资源和访问本地文件是一样简单的。Java还支持远程方法调用(RMI,Remote Method Invocation),使程序能够通过网络调用方法。

7、多线程

多线程的使用可以带来更好的交互响应和实时行为。 Java多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。

8、健壮性

1.Java的强制类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。

2.对指针的丢弃是Java的明智选择。

3.Java的安全检查机制使得Java更具健壮性。

二、Java三大版本

JavaSE:标准版(桌面程序、控制台开发。。。)基础版,必学

JavaME:嵌入式开发(手机、小家电。。。)现在已经基本被摒弃

JavaEE:企业级开发(web端、服务器端。。。)java发扬光大

三、JDK、JRE、JVM

1、JDK:Java Development Kit (开发者工具包)

jdk包含jre,在JRE之上扩充了一些开发工具

2、JRE:Java Runtime Evironment (Java运行时环境)

jre包含jvm,只要安装了jre就可以运行java程序

3、JVM:Java Virtual Machine (Java虚拟机)

在操作系统上模拟了一个cpu,来处理java相关的东西。它有两种运行方式,一种是编译型,一种是解释型。java的跨平台核心就是使用了jvm,在不同的操作系统上,都使用了java虚拟机。通过java虚拟机屏蔽了底层系统上的一些差别,真正实现了一次编译到处运行。