干货 | Java语言这10个语言特性你知道吗?

createh51个月前 (01-31)技术教程14

Java是一门很古老的开发语言,但是它的能力不容小觑,它几乎涉及到了开发个各个领域,各个层面和各个行业,其中包括前端,后台,移动端以及数据挖掘等等数不尽的行业和领域。


为什么做为这么古老的一门开发语言,这么长时间会都没有在历史的长河中淹没呢?那是因为Java语言自身的特性。



01、简单性


首先我们来说一下Java语言的简单性。虽然Java的设计在某些层面看起来和C++非常类似。但是为了让Java变得更加简单易懂,设计者把C++中的很多可用特性都去掉了。


例如:Java不支持goto语法,取而代之的是break和continue,操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,而是引用并提供了自动的废料收集,使得程序员不必为内存管理而担忧。因此开发者可以把更多的精力用在研发上面。


02、面向对象


Java是一门面向对象的语言。Java语言拥有提供类、接口和继承等面向对象语言的特性。为了简单起见,Java只支持类之间的单继承,单支持多接口之间的多继承,并支持类和接口之间的实现机制(关键字为implements)。Java还支持动态绑定,不像C++只虚函数使用动态绑定。


Java还包括一个类的扩展集合,分别组成各种程序包(Package),用户可以在自己的程序中使用。例如,Java提供产生图形用户接口部件的类(java.awt包),这里awt是抽象窗口工具集(abstract windowing toolkit)的缩写,处理输入输出的类(java.io包)和支持网络功能的类(java.net包)。



03、分布性


Java支持internet应用的开发,在基础的Java应用编程接口中有一个网络应用接口(Java net),了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等,这让Java既可以支持各种层次的网络连接,又可以以Socket来进行可靠的流连接。并且网络变成软件应用的分布运载工具。Java程序只要编写一次,就可到处运行。


04、编译和解释性


Java编译程序生成的是字节码而不是机器码。Java字节码提供对体系结构中的目标文件格式,代码设计成可有效地传送程序到多个平台。Java程序可以在任何实现了Java解释程序和运行系统(run-time system)的系统上运行。



05、稳健性


Java是一门强类型的语言,它允许扩展编译时检查潜在类型不匹配问题的功能。Java要求显示的方法声明,不支持C风格的隐式声明。这就可以保证在编译程序时可以很快的找到错误。


Java不支持指针,它消除了存储和讹误数据的可能性。


异常处理是Java中使得程序更稳健的另一个特征。异常是某种类似于错误的异常条件出现的信号。使用try/catch/finally语句,程序员可以找到出错的处理代码,这就简化了出错处理和恢复的任务。



06、安全性


上面也讲到Java中不存在指针,更重要的是Java在编译程序时不存在处理存储安排决策,所以程序要不用通过查看声明去猜测实际的存储安排。


Java中的存储应用在运行时由Java解释程序决定实际存储地址。而且Java运行系统使用字节码验证过程来保证装载到网络上的代码不违背任何Java语言限制。并且,Java还提供了一个安全机制以防恶意代码的攻击。


Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。


07、可移植性


Java严格的规定来各种数据类型的长度,而不依赖于实现的方面。Java环境本身对新的硬件平台和操作系统是可移植的,Java编译程序也是用Java写的,而Java运行系统用ANSIC语言编写的。



08、高性能


Java是一种先编译后解释的一门语言,虽然它不如全编译性的语言快。但是在有些情况下性能也是很重要的,为了这种情况,Java设计了及时编译程序,使Java可以在运行时把Java字节码翻译成特定的CPU的机器代码,从而达到全编译。Java字节码格式设计时考虑到这些“及时”编译程序的需要,所以生成机器代码的过程相当简单,它能产生相当好的代码。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。


09、多线程性


在Java语言中,线程是一种特殊的对象,他由Thread类或者其子类来创建。Java提供支持多线程的执行,处理不同的任务,这样就让有多线程的程序设计起来更加容易。其中Java的lang包提供一个Thread类,它支持开始线索、运行线索、停止线索和检查线索状态的方法。用关键词synchronized,程序员可以说明某些方法在一个类中不能并发地运行。这些方法在监督程序控制之下,确保变量维持在一个一致的状态。



10、动态性


Java是一门动态语言,这样设计的目的是为来让Java来适应动态变化的环境。Java程序需要的类能够动态的被载入到运行环境,也可以通过网络载入所需要的类。这样很方便软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。


上面就是小编对于Java语言特性的总结,希望可以帮助到你~


相关文章

两成大数据岗位要求Java技能(大数据需要java什么水平)

受新基建、数字化转型及数字中国愿景目标等一系列政策促进,大数据产业高速增长,并与人工智能、云计算和区块链等领域深度融合,为各行各业带来革命性的变革。相关人才需求量正在持续增长,且呈现出供不应求的趋势。...

42 张图带你揭秘后端技术都要学啥?

作者 | L的存在来源 | 我是程序员小贱(ID:Lanj1995Q)说到后端开发,难免会遇到各种所谓高大上的「关键词 」,对于我们应届生小白,难免会觉得比较陌生,因为在学校确实比较少遇见这些所谓高大...

一文搞懂消息推送技术选型(消息推送原理以及实现过程)

Ajax短轮询MQredis 订阅/发布Ajax短轮询优点:简单高效、浏览器使用循环不断地、间隔地发送请求获取数据缺点:频繁创建/断开连接,每次请求都会查询一遍数据不管有无都返回,对服务器业务处理的性...

学JAVA可从事的工作指南(学java之后从事什么)

JAVA,相信不少人已经或多或少接触了这个领域,但是还不熟悉这个技术到底在哪几个工作方向上有应用,或者这门技术在工作中可以创造多少Money。接下来就给大家一一介绍学JAVA可从事的工作。企业级应用开...

另谋出路!新东方在线砍掉义务教育培训业务,月薪6万招聘程序员

本文来源:时代周报 作者:邓宇晨“双减”政策重压下,头部培训机构对相关业务的出清正在加速。10月25日晚间,新东方在线(01797.HK)发布公告称,公司董事会已经决定,将停止经营内地义务教育阶段学科...

Java需要学些什么知识?(java要学哪些内容)

学习Java要学习些什么知识?作为零基础小白,可以通过招聘网站上看企业java开发人员都有哪些技术要求,这些就是重点;另外,可以通过一些专业的java培训机构,看他们的java课程安排,都有哪些内容。...