之前学习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. 【转帖】漫话C++0x(四) —- function, bind和lambda

    实在是觉得此文总是去翻感觉不太好.于是果断转过来了,想看原文的请戳:http://www.wuzesheng.com/?p=2032 本文是C++0x系列的第四篇,主要是内容是C++0x中新增的lam ...

  2. Web应用程序开发的标准架构

  3. thrift学习之二----学习资料积累

    自己没有仔细安装,从网上搜的安装技术文章,在此做个备份,以防后面用到: http://blog.csdn.net/hshxf/article/details/5567019 http://blog.c ...

  4. C语言 · 用宏求球的体积

    算法提高 7-1用宏求球的体积   时间限制:1.0s   内存限制:256.0MB      问题描述 使用宏实现计算球体体积的功能.用户输入半径,系统输出体积.不能使用函数,pi=3.141592 ...

  5. spi 总线协议记录

    摘抄至: http://blog.csdn.net/skyflying2012/article/details/11710801 概述: SPI, Serial Perripheral Interfa ...

  6. SpringMVC @ModelAttribute 详解

    [@Controller]4 详解@ModelAttribute http://blog.sina.com.cn/s/blog_6d3c1ec601017q4p.html A.@ModelAttrib ...

  7. Android——事件处理模型一(基于回调机制的事件处理)(转)

    Android平台的事件处理机制有两种,一种是基于回调机制的,一种是基于监听接口的,现介绍第一种:基于回调机制的事件处理.Android平台中,每个View都有自己的处理事件的回调方法,开发人员可以通 ...

  8. TCP/IP状态详解[转]

    TCP正常建立和关闭的状态变化     TCP连接的建立可以简单的称为三次握手,而连接的中止则可以叫做 四次握手.   建立连接   在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建 ...

  9. mysql客户端(Navicat)远程登录操作遇到问题1142 - XXX command denied to ×××

    新建的dbtest用户,访问新建立的TestDB数据库每次都提示1142错误(已经对数据库TestDB赋予了所有权限) 解决方法: Mysql命令: GRANT SELECT ON mysql.* T ...

  10. easyui中datagrid用法,加载table数据与标题

    加载标题写法: 多行标题:columns: [[ columns: [[                       { field: 'itemid', title: 'Item ID', rows ...