浅谈JAVA语言特点
JAVA是一门面向对象的语言,它具有什么样的特点呢?下面将就Java语言特点进行浅谈,欢迎纠正指出不当的地方!
首先JAVA是一门面向对象的语言。何谓对象?万物皆对象,我们思维能够想象的任何一个有生命或者无生命,有形的或无形的事物。理论上讲,你可以抽取待解决问题的任何概念化构件(人、狗、建筑物、服务等),将其表示为程序中的对象。而每个对象都具有行为和状态。具体如何操作这些状态和行为,在这里不做解释。那么什么又是面向对象呢?表面看来,面向对象这个术语的意思是,把软件组织成一系列离散的,合并了数据结构和行为的对象。这样可能不好理解,换一种解释。首先,它是解决问题的一种处理方式,将问题发出方和接收方的类型高度抽象成一个个的整体,各个整体之间产生的关系后,将会产生某些问题,对这些关系问题的处理,在于各个整体之间的方法实现,这种处理方法,整体意为对象,整个的程序设计叫做面向对象程序设计。
为了更好的解决面向对象问题,在实际操作类中有三个基本特性,继承、多态、封装。通过这些特性实现了面向对象的目标——“高内聚,低耦合”。下面我来逐一解释这三个特性。
继承是面向对象的一块基石,因为他允许创建分等级层次的类。利用继承我们可以创建一个通用的类,然后再由更具体的类来继承他,再在这些类里加入自己特定的东西,这样我们会节省很多代码。就如上面所说的一样,这个被继承的类称为父类,继承父类的类称为子类,我们可以把子类看作是父类专门用途的一个版本,因为子类继承了他,所以,他的内容子类里面都有,但是子类还可以有一些自己的东西。JAVA中使用extends关键字来实现继承类,语法为:Class 子类名extends 父类名{…}。
但需要注意的是,继承中只能为每个子类定义一个父类,即JAVA不支持多继承,可以按照规定创建一个继承的层次。其中一个子类成为另一个子类的父类,然而没有类可以成为自己的父类。在JAVA中可以继承多个接口,但接口和继承是完全不同的.,接口没有能力代替多重继承,也没有这个义务。其作用就是标志类的类别,把不同类型为的类归于不同的接口,可以更好的管理。
面向对象中操作类的第二个特性,多态又有什么用处呢?多态即方法的重载。在JAVA类中不允许定义两个相同方法名,并且参数名也完全相同的方法。如果存在这样的类方法,将无法通过编译,JAVA虚拟机无法决定到底执行那个方法。对于类的方法(包括从父类继承的方法),如果两个方法名称相同,但参数名不一致,可以说一个方法是另一个方法的重载方法。具体的使用规则不在这里啰嗦了。(我已经非常啰嗦了^_^)
面向对象中操作类的第三个特性,封装。 封装这个词听起来好象是将什么东西包裹起来不要别人看见一样,就好象是把东西装进箱子里面,这样别人就不知道箱子里面装的是什么东西了。其实JAVA中的封装这个概念也就和这个是差不多的意思。封装是JAVA面向对象的特点的表现,封装是一种信息隐蔽技术它有两个含义,即把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位,以及尽可能隐藏对象的内部结构,也就是说,如果我们使用了封装技术的话,别人就只能用我们做出来的东西而看不见我们做的这个东西的内部结构了。例如,我们使用电脑网上听歌。只需要打开播放器,选中音乐就可听到声音了。而这个具体现实过程,我们则不知道了。
上面说了这么多,讲了类操作的三个基本特性。这些特性都是为了实现一个目标,即程序的高内聚,低耦合。高内聚,低耦合是程序设计的一个重要原则。高内聚表明的是一个聚集度,也可以理解成内聚高,就是程序逻辑相关、可以放在一起的都放在一起,而不要将相关的逻辑散落在各地,同时该处也不要做一些无关的事情,所以高内聚也可以理解成只处理自己职责相关的事情,这样整个系统的职责非常清晰。这个原则其实在日常的生活中也是通用的,比如事情的组织,内容的整理如果遵循这个原则,则会看上去井井有条,反之则会非常混乱。低耦合表明了一个关联度,对于不同的功能、职责其关联应该尽可能的低,尽可能的正交,只让彼此间保持必要的联系。这样可以减少相互之间的影响,同时修改所波及的范围可以做到最小。
JAVA语言的第二个得要特点,“跨平台”。具有一次编写多处运行的特点。这里的平台多指操作系统。JAVA程序不依懒于特定的操作系统,可以在不同的系统实现同样的功能。而这一功能的实现要归功于JAVA特有的运行机制——JAVA虚拟机。如下图:
从上图我们可以看出,JAVA程序并不是直接交由操作系统处理,而是经过一系列加工,最后经过JAVA虚拟机的解释器解释后再交由操作系统的。正是这一套机制使得JAVA程序可以不依懒操作系统,因为他有自己的处理机制可以根据不同系统编译、解释出适合于特定系统的代码,从而实现了跨平台功能。
JAVA语言的第三个特点,“健壮性”。所谓健壮性就是指能够抵得住尽可能多的意外和错误。程序有没有健壮性也说说程序有没有更强的容错性、稳定性、安全性。在JAVA语言中程序没有了指针的操作和对内存的释放。你也许会说,不能对指针操作不是就不能对直接对硬件操作了吗?的确,JAVA语言对硬件操作没有C/C++强大。但正由于这一原因,更加提高了由JAVA编写的代码的安全性。因为不能直接操作指针,降低了病毒对程序的干扰性(如:蠕虫病毒。病毒代码一般通过对硬件操作来影响程序)。
另外关于内存释放,在C/C++中规定谁创建内存单元,谁就负责释放内存单元。而这样往往会导致内存泄漏,创建者使用后忘记对内存释放。然而这种情况在JAVA中却不会出现,JAVA运行机制的“垃圾回收处理机制”很好的解决了内存释放问题。程序员在编写代码中所使用过后的内存单元会由JVM(JAVA虚拟机)检查并释放。但我们要注意的是这种垃圾处理回收是有周期性的,也就是说他并不是立即清除你使用的内存,而是每隔一段时间清理一次。由于垃圾回收处理机制,程序员是无法控制和干扰的。那么有没有一种方法能够让我们手动的来处理垃圾回收,而不用等待他的周期性呢?答案是肯定的。System.gc()方法强制进行终结动作。可惜的是这个方法也并不好用,因为他的优先级是最低的,要待到CPU空闲时才运行。凡事都有两面性嘛,有好就好坏。一切都要遵照自然的法则。
通过对JAVA语言的初步学习,了解到这门对我熟悉而又陌生的语言一些特点。更多内容请关注应届毕业生考试网!
【浅谈JAVA语言特点】相关文章:
java语言特点总结11-17
浅谈Java语言的优点11-14
浅谈如何使用java多线程12-06
浅谈Java中的弱引用11-25
浅谈Java未来的发展方向12-06
浅谈理解Java中的弱引用11-23
浅谈Java类与类之间的关系11-30
浅谈Java线程中断的本质深入理解11-24
java教程之Java编程基础12-02
java讲解11-24