Java的跨平台性、安全性

一、Java的跨平台性

1.首先我们要了解什么叫跨平台

通俗的说不同的系统都是运行在不同的平台上。例如我们PC端有windows、linux、 mac,手机端有Symbian、Android、IOS等等。一个很简单的常识就是:不同平台之间的软件是不能通用的。安卓手机的QQ微信在苹果手机上不能运行,win10的软件在mac上无法正常打开。
那么跨平台是什么呢?
跨平台概念是软件开发中一个重要的概念,即不依赖于操作系统,也不依赖硬件环境。一个操作系统下开发的应用,放到另一个操作系统下依然可以运行。相对而言如果某种计算机语言不用修改代码即可做到高度跨平台,那么此语言就越抽象,硬件控制力就越低,只适合开发高度抽象的模型系统。诸如java,delphi和易语言,都已做到了跨平台。它们将可以在多种系统下开发,运行和维护。


2.Java和C语言的编译运行流程

Java的跨平台性、安全性_第1张图片

C/C++语言都直接编译成针对特定平台机器码。如果要跨平台,需要使用相应的编译器重新编译。
Java源程序(.java)要先编译成与平台无关的字节码文件(.class),然后字节码文件再解释成机器码运行。解释是通过Java虚拟机来执行的。字节码文件不面向任何具体平台,只面向虚拟机。
Java虚拟机是可运行Java字节码文件的虚拟计算机。不同平台的虚拟机是不同的,但它们都提供了相同的接口。Java语言具有一次编译,到处运行的特点。就是说编译后的.class可以跨平台运行,前提是该平台具有相应的Java虚拟机。但是性能比C/C++要低。Java的跨平台原理决定了其性能没有C/C++高

Java的跨平台性、安全性_第2张图片

3.个人对Java和C跨平台的一点理解

其实java和c都具有跨平台性。只不过采取的方式不同。我们可以这么去类比。一辆宝马轿车要想在中国合法上路得符合中国制造标准,想在美国合法上路得符合美国制造标准。针对不同的国家,宝马厂商需要在当地制作标准不同的宝马汽车销售,这种就是C语言的跨平台模式。Java的跨平台模式相当于平行进口车商,直接将宝马以平行进口的形式销售,用自己的一套标准让同一辆宝马车在各个国家都能合法上路行驶,实现了一处生产到处销售的效果。

 

 

二、Java的安全性

语言层次的安全性主要体现在:
Java取消了强大但又危险的指针,而代之以引用。由于指针可进行移动运算,指针可随便指向一个内存区域,而不管这个区域是否可用,这样做是危险的,因为原来这个内存地址可能存储着重要数据或者是其他程序运行所占用的,并且使用指针也容易数组越界。
垃圾回收机制:不需要程序员直接控制内存回收,由垃圾回收器在后台自动回收不再使用的内存。避免程序忘记及时回收,导致内存泄露。避免程序错误回收程序核心类库的内存,导致系统崩溃。
异常处理机制:Java异常机制主要依赖于try、catch、finally、throw、throws五个关键字。
强制类型转换:只有在满足强制转换规则的情况下才能强转成功。
底层的安全性可以从以下方面来说明
Java在字节码的传输过程中使用了公开密钥加密机制(PKC)。
在运行环境提供了四级安全性保障机制:
字节码校验器——类装载器——运行时内存布局——文件访问限制

你可能感兴趣的:(Java的跨平台性、安全性)