之前学习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. npm 的指令介绍

    npm install <name>安装nodejs的依赖包 例如npm install express 就会默认安装express的最新版本,也可以通过在后面加版本号的方式安装指定版本, ...

  2. 如何保证RabbitMQ的消息不丢失及其背后的原理

    一.消息为什么丢失 RabbitMQ默认情况下的交换机和队列以及消息是非持久化的,也就是说在服务器重启或者宕机恢复后,之前创建的交换机和队列都将不复存在,之前未消费的消息也就消失不见了.原因在于每个队 ...

  3. LTDC/DMA2D—液晶显示

    本章参考资料:<STM32F4xx 参考手册 2>.<STM32F4xx 规格书>.库帮助文档<stm32f4xx_dsp_stdperiph_lib_um.chm> ...

  4. tomcat架构分析(valve源码导读)

    出处:http://gearever.iteye.com 源码面前,了无秘密                              ----侯捷 在tomcat架构分析(valve机制)(http ...

  5. VC中使用Matlab Engine出现"无法找到libeng.dll"的问题

    VC中使用Matlab Engine出现"无法找到libeng.dll"的问题 本以为使这个原因 ,其实不是我2了 #include "engine.h" // ...

  6. Idea2016配置并破解jrebel

    http://blog.csdn.net/my_chen_suo_zhang/article/details/72677772

  7. [转] Fragment——startActivityForResult后onActivityResult无反应之问题总结

    转自:http://m.blog.csdn.net/article/details?id=49507025 摘取片段如下 个人测试后的一些总结: 1.Fragment中直接使用startActivit ...

  8. 【WPF】C#代码动态改变控件的样式

    需求:C#代码生成的一组按钮Button需要设置样式. 如果是在XAML中引入样式: <!-- 引入资源 --> <UserControl.Resources> <Res ...

  9. 【WPF】MVVM前台绑定一组RadioButton按钮

    需求:制作一组RadioButton,像下面这样的效果: [MVVM]要显示一组RadioButton按钮,想法是Controller层联网获取到数据后,将数据进行处理,然后加到一个Observabl ...

  10. CSS圆角框,圆角提示框

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...