欢迎大家来到IT世界,在知识的湖畔探索吧!
编者荐语:
Java 是排名第一的编程语言和开发平台。它可以降低成本、缩短开发时间、推动创新并改进应用服务。随着全球数百万开发人员运行超过 510 亿台 Java 虚拟机,Java 继续成为企业和开发人员首选的开发平台。
下面详细看下Java的每一种特性:
一、跨平台/可移植性
1、什么是可移植性?
Java程序可以做到一次编译,到处运行。可移植性也被叫做跨平台性。这是Java的核心优势。
例如:Java程序可以在Windows操作系统上运行,在不做任何修改的情况下,可以在Linux操作系统下运行。
2、Java的可移植性是如何实现的?
首先,不同操作系统的内核是不一样的,那么不同操作系统执行指令的方式也是不一样的,直接让Java程序与底层的操作系统直接交互是肯定不行的。
实际上,Java程序并没有和底层的操作系统直接交互,而是运行在一台虚拟机上,这台虚拟机叫Java虚拟机(JVM),JVM屏蔽了不同操作系统之间的差异。
二、安全性
Java 取消了强大但又危险的指针,而代之以引用。由于指针可进行移动运算, 指针可随便指向一个内存区域,而不管这个区域是否可用,这样做是危险的, 因为原来这个内存地址可能存储着重要数据或者是其他程序运行所占用的, 并且使用指针也容易数组越界。
垃圾回收机制:不需要程序员直接控制内存回收,由垃圾回收器在后台自动 回收不再使用的内存。避免程序忘记及时回收,导致内存泄露。避免程序错误回收程序核心类库的内存,导致系统崩溃。
异常处理机制:Java 异常机制主要依赖于try、catch、finally、throw、throws五个关键字。强制类型转换:只有在满足强制转换规则的情况下才能强转成功。
底层的安全性可以从以下方面来说明
Java 在字节码的传输过程中使用了公开密钥加密机制(PKC)。
在运行环境提供了四级安全性保障机制:
字节码校验器 -类装载器 -运行时内存布局 -文件访问限制。
三、面向对象
面向对象是一种程序设计技术,非常适合大型软件的设计和开发。而Java则是完全的面向对象语言。
其实是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象。对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。
如果说传统的过程式编程语言是以过程为中心,以算法为驱动的话,面向对象的编程语言则是以对象为中心,以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。
所有面向对象编程语言都支持三个概念:封装、多态性和继承。现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法(其作用是处理数据或同外界交互)。所谓封装,就是用一个自主式框架把对象的数据和方法联在一起形成一个整体。可以说,对象是支持封装的手段,是封装的基本单位。Java语言的封装性较强,因为Java无全程变量,无主函数,在Java中绝大部分成员是对象,只有简单的数字类型、字符类型和布尔类型除外。而对于这些类型,Java也提供了相应的对象类型以便与其他对象交互操作。
四、简单性
Java语言的底层是用C++写的,但是Java又将C++语言中一些特征去掉了,比如:头文件,指针运算,结构,联合,操作符重载,虚基类等等。同时,由于语法基于C语言,因此学习起来完全不费力。
五、高性能
Java最初发展阶段,总是被人诟病“性能低”;客观上,高级语言运行效率总是低于低级语言的,这个无法避免。Java语言本身发展中通过虚拟机的优化提升了几十倍运行效率。
比如,通过JIT(JUST IN TIME)即时编译技术提高运行效率。将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。这样的话,使Java程序的执行效率大大提高,
某些代码甚至接待C++的效率。因此,Java低性能的短腿,已经被完全解决了。
六、分布式
Java是为Internet的分布式环境设计的,因为它能够处理TCP/IP协议。事实上,通过URL访问一个网络资源和访问本地文件是一样简单的。Java还支持远程方法调用(RMI,Remote Method Invocation),使程序能够通过网络调用方法。
七、多线程
多线程的使用可以带来更好的交互响应和实时行为。Java多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。
八、健壮性
Java是一种健壮的语言,吸收了C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)。Java程序不可能造成计算机崩溃。即使Java程序也可能有错误。
如果出现某种出乎意料之事,程序也不会崩溃,而是把该异常抛出,再通过异常处理机制加以处理。
希望对正在准备学习的朋友们有所帮助,也欢迎补充交流~
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/30154.html