之前学习java仅仅是单纯的学习,老师要求学习。所以就学习。可是没有细致考虑过java的一些特别之处,比方,我们为什么要学习java而不是其它的语言,它必定有选择它的特点。所以,从如今開始,仅仅有埋头苦学的日子已经过去,接下来的几个月里,都是埋头苦学加上抬头看路了。

前两天九期忙忙活活的前后准备了好几次面试,晚上闹得家里也不得安宁,于是趁着小左和张薄在沙发上用功的准备面试题的时候,我也随便查了一下java的面试题,发现。关考java特点的就有好几道,要知道面试题和应试教育有一个共同的优点就是。能频繁考到的肯定都是重点。于是今天整理了下java的特点。

java是一种能够撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaSE)的总称。Java自面世后就很流行。发展迅速。对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网。同一时候拥有全球最大的开发人员专业社群。在全球云计算和移动互联网的产业环境下。Java更具备了显著优势和广阔前景。

那么,java有哪些特点呢?

Java语言是易学的。

Java语言的语法与C语言和C++语言非常接近,使得大多数程序猿非常easy学习和使用Java。还有一方面,Java丢弃了C++中非常少使用的、非常难理解的、令人迷惑的那些特性,如操作符重载、多继承、自己主动的强制类型转换。特别地,Java语言不使用指针。而是引用。并提供了自己主动的废料收集,使得程序猿不必为内存管理而担忧。

Java语言是强制面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,仅仅支持类之间的单继承。但支持接口之间的多继承,并支持类与接口之间的实现机制(keyword为implements)。

Java语言全面支持动态绑定。而C++语言仅仅对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。

Java语言是分布式的。

Java语言支持Internet应用的开发,在主要的Java应用编程接口中有一个网络应用编程接口(java net)。它提供了用于网络应用编程的类库,包含URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

Java语言是健壮的。

Java的强类型机制、异常处理、垃圾的自己主动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。

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

Java语言是安全的。Java通常被用在网络环境中。为此。Java提供了一个安全机制以防恶意代码的攻击。

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

Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后能够在实现这个Java平台的不论什么系统中执行。这样的途径适合于异构的网络环境和软件的分发。

Java语言是可移植的。这样的可移植性来源于体系结构中立性,另外。Java还严格规定了各个基本数据类型的长度。Java系统本身也具有非常强的可移植性。Java编译器是用Java实现的。Java的执行环境是用ANSI C实现的。



Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式,然后能够在实现这个Java平台的不论什么系统中执行。

在执行时,Java平台中的Java解释器对这些字节码进行解释执行。执行过程中须要的类在联接阶段被加载到执行环境中。

Java是性能略高的。与那些解释型的高级脚本语言相比,Java的性能还是较优的。

Java语言是原生支持多线程的。在Java语言中。线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。

通常有两种方法来创建线程:其一,使用型构为Thread(Runnable)的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口。因此,不论什么一个线程均有它的run方法,而run方法中包括了线程所要执行的代码。

线程的活动由一组方法来控制。Java语言支持多个线程的同一时候执行,并提供多线程之间的同步机制(keyword为synchronized)。

Java语言是动态的。Java语言的设计目标之中的一个是适应于动态变化的环境。Java程序须要的类可以动态地被加载到执行环境。也可以通过网络来加载所须要的类。

这也有利于软件的升级。

另外。Java中的类有一个执行时刻的表示,能进行执行时刻的类型检查。

Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也降低了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可执行的特性使得它可以提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。

当然,进一步想,java的这些特点都源于它的各种机制,想要知道java的工作机制,敬请期待!

java总结(1)——java的特点的更多相关文章

  1. java head space/ java.lang.OutOfMemoryError: Java heap space内存溢出

    上一篇JMX/JConsole调试本地还可以在centos6.5 服务器上进行监控有个问题端口只开放22那么设置的9998端口 你怎么都连不上怎么监控?(如果大神知道还望指点,个人见解) 线上项目出现 ...

  2. 【Java大系】Java快速教程

    感谢原作者:Vamei 出处:http://www.cnblogs.com/vamei Java是面向对象语言.这门语言其实相当年轻,于1995年才出现,由Sun公司出品.James Gosling领 ...

  3. 《深入理解Java虚拟机》Java内存区域与内存溢出异常

    注:“蓝色加粗字体”为书本原语 先来一张JVM运行时数据区域图,再接下来一一分析各区域功能:   程序计数器 程序计数器(program Counter Register)是一块较小的内存空间,它可以 ...

  4. Tomcat报java.lang.OutOfMemoryError: Java heap space错误停止运行如何解决

    最近开发的一个商业项目,部署完成后,经常出现Tomcat挂掉的现象,报的异常是:java.lang.OutOfMemoryError: Java heap space,上网google了一下,了解了一 ...

  5. MyCAT报java.lang.OutOfMemoryError: Java heap space

    早上同事反映,mycat又假死了,估计还是内存溢出,查看了一下错误日志. INFO | jvm | // :: | java.lang.OutOfMemoryError: Java heap spac ...

  6. 【Java】实战Java虚拟机之五“开启JIT编译”

    今天开始实战Java虚拟机之五“开启JIT编译” 总计有5个系列 实战Java虚拟机之一“堆溢出处理” 实战Java虚拟机之二“虚拟机的工作模式” 实战Java虚拟机之三“G1的新生代GC” 实战Ja ...

  7. Java提高篇——Java 异常处理

    异常的概念 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的. 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误java.lang.Error:如果你用Syst ...

  8. Java import以及Java类的搜索路径

    如果你希望使用Java包中的类,就必须先使用import语句导入.import语句与C语言中的 #include 有些类似,语法为:    import package1[.package2-].cl ...

  9. [Java] SoapUI使用Java获取各时间日期方法

    import java.util.*; import java.text.SimpleDateFormat; // current date String dateNew = today() // t ...

  10. Tomcat 启动项目报错 java.lang.OutOfMemoryError: Java heap space

    近日使用myeclipse 部署web项目,启动tomcat时报错: SEVERE: Error waiting for multi-thread deployment of directories ...

随机推荐

  1. django:DateTimeField如何自动设置为当前时间并且能被修改 ——django日期时间字段的使用

    创建django的model时,有DateTimeField.DateField和TimeField三种类型可以用来创建日期字段,其值分别对应着datetime().date().time()三中对象 ...

  2. js在IE8+兼容String没有trim方法,写一个兼容ie8一下的浏览器的trim()方法

    方法一: String.prototype.trim = function(){ return Trim(this);}; function LTrim(str) {    var i;     fo ...

  3. FreeRTOS基础篇教程目录汇总

    以下教程(大部分章节)(尤其理论介绍部分)转载自安富莱电子,官网链接: http://forum.armfly.com/forum.php 然后根据安富莱的教程自己做了分析和测试,希望大家共同进步. ...

  4. 设计模式-观察者模式(下)<转>

    观察者模式在Java中有两种实现方式,上文是一种方式,这种方式是自己写代码实现. 另一种方式是使用Java内置的观察者模式来实现.   相关的接口和类如下: java.util.Observable  ...

  5. Android APP 分享图片文字到微信刚開始正常,后面就不弹出分享框了

    依照官方的流程走了一遍.一切顺利,分享成功了.本来以为能够大功告成了,结果睡了一觉,第二天要给客户演示了.才发现TMD坑爹了,不能分享了,第三方的分享栏弹不出来了.我一阵惊慌,还好非常快找到了解决的方 ...

  6. Linux 终端下快速移动光标

    ctr+a:移动光标到命令行开始处(紧接命令提示符号) ctr+e:移动光标到命令行行尾 ctr+k:删除光标到命令行行尾 ctr+u:删除光标到命令行开始处 ctr+h: 往后删除一字符 ctr+d ...

  7. bootstrap-slider插件使用方法

    bootstrap-slider例子地址:https://seiyria.com/bootstrap-slider/ bootstrap-slider github地址:https://github. ...

  8. js学习笔记12----json数据格式,语法,遍历

    1.json数据格式:var json={} 示例一: var user = {'name':'sese','age':'24','sex':'女'} console.log(user.age); / ...

  9. 给原型扩展一下tirm方法

    方便以后,直记录下来 <script type="text/javascript"> //给原型护展tirm方法 String.prototype.trim=funct ...

  10. 【转】Microsoft .Net Remoting之Marshal、Disconnect与生命周期以及跟踪服务

    Marshal.Disconnect与生命周期以及跟踪服务 一.远程对象的激活 在Remoting中有三种激活方式,一般的实现是通过RemotingServices类的静态方法来完成.工作过程事实上是 ...