Java语言有很多的优点,可靠、安全、编译和解释型语言、分布式、多线程、完全面向对象、与平台无关性等等。

与平台无关性

  Java语言最大的优势在于与平台无关性,也就是可以跨平台使用。

  绝大多数的编程语言都是不可以跨平台使用的。所谓的平台,我们可以理解为操作系统。比如,C语言Windows系统下编译的*.exe文件在其他系统下是无法运行的。在不同的操作系统下可运行文件是不同,所以同样功能的软件我们需要编写出多份适用于不同平台上的代码,造成重复开发,严重影响了开发效率。

  但是Java语言不同,因为Java程序不是直接运行在操作系统上,而是在JVM中运行。

  JVM是Java Virtual Machine(Java虚拟机)的缩写,它是虚构出来的计算机,是通过模仿实际计算机的各种功能实现的。也就是说实际计算机中的某些功能,JVM也可以实现。JVM是Java跨平台使用的根本。

  所以Java的编译程序只需要在JVM中生成目标代码(字节码)文件,就可以在不同的平台上不用修改直接运行了,当然我们的操作系统中必须要有适合该系统的Java虚拟机。JVM在执行字节码时,它会把字节码解释为具体平台的机器指令,这也说明了Java既是编译型语言(编译为字节码)也是解释型语言。

可靠安全

  Java语言是强类型语言,要求变量必须定义之后才能使用,一旦一个变量被指定了某种数据类型,如果不强制转换,那么它永远是该数据类型。这样Java可以在编译时进行检查语法是否正确。

  Java取消了强大而又危险的指针,指针可以直接操作内存,这是十分危险的,很可能导致程序崩溃。Java取消了指针,增加了引用类型的概念,用来代替指针。

  Java的解释型特性,字节码加载进虚拟机后,解释器会对每行指令进行检查。

  Java有异常处理机制,程序员可以把某些可能出现错误的代码,进行异常检查。

 

完全面向对象

  Java语言支持封装、继承、多态,面对对象编程,让程序的耦合度更低,内聚性更高。每一个模块执行自身的功能,和不干扰通过公开的接口互相联系。

多线程

  进程是操作系统中分配内存资源的最小单位,每一个进程可以同时拥有两个或更多的线程,让它们并发执行。它提供了Rannable接口和他的实现类Thread,并提供了大量的方法来控制线程的运行,以及线程的同步控制。

Java语言的主要特点的更多相关文章

  1. JAVA语言中的修饰符

    JAVA语言中的修饰符 -----------------------------------------------01--------------------------------------- ...

  2. Atitit onvif协议获取rtsp地址播放java语言 attilx总结

    Atitit onvif协议获取rtsp地址播放java语言 attilx总结 1.1. 获取rtsp地址的算法与流程1 1.2. Onvif摄像头的发现,ws的发现机制,使用xcf类库1 2. 调用 ...

  3. AVL树原理及实现(C语言实现以及Java语言实现)

    欢迎探讨,如有错误敬请指正 如需转载,请注明出处http://www.cnblogs.com/nullzx/ 1. AVL定义 AVL树是一种改进版的搜索二叉树.对于一般的搜索二叉树而言,如果数据恰好 ...

  4. Java语言中的面向对象特性总结

    Java语言中的面向对象特性 (总结得不错) [课前思考]  1. 什么是对象?什么是类?什么是包?什么是接口?什么是内部类?  2. 面向对象编程的特性有哪三个?它们各自又有哪些特性?  3. 你知 ...

  5. JAVA语言搭建白盒静态代码、黑盒网站插件式自动化安全审计平台

    近期打算做一个插件化的白盒静态代码安全审计自动化平台和黑盒网站安全审计自动化平台.现在开源或半开源做黑盒网站安全扫描的平台,大多是基于python脚本,安全人员贡献python脚本插件增强平台功能.对 ...

  6. 关于Java语言和面向对象记录

    本科时常用的c语言是面向过程的语言,而Java是面向对象的语言 Java语言的11个关键术语 简单性.可移植性.面向对象.分布式.高性能.解释型.健壮性.多线程.安全性.动态性.体系结构中立 面向对象 ...

  7. 用Java语言编写一个简易画板

    讲了三篇概博客的概念,今天,我们来一点实际的东西.我们来探讨一下如何用Java语言,编写一块简易的画图板. 一.需求分析 无论我们使用什么语言,去编写一个什么样的项目,我们的第一步,总是去分析这个项目 ...

  8. 【百度文库课程】Java语言基础与OOP入门学习笔记一

    一. Java的历史与由来 原名Oak,针对嵌入式系统开发设计,语法与C/C++基本一致 二. Java语言特点 Java由四方面组成:Java编程语言.Java类文件格式.Java虚拟机和Java应 ...

  9. 0031 Java学习笔记-梁勇著《Java语言程序设计-基础篇 第十版》英语单词

    第01章 计算机.程序和Java概述 CPU(Central Processing Unit) * 中央处理器 Control Unit * 控制单元 arithmetic/logic unit /ə ...

  10. [Java入门笔记] Java语言基础(二):常量、变量与数据类型

    常量与变量 什么是常量和变量 常量与变量都是程序在运行时用来存储数据一块内存空间 常量: 常量的值在程序运行时不能被改变,Java中声明常量必须使用final关键字.常量还可以分为两种意思: 第1种意 ...

随机推荐

  1. Maven 入门——Maven 的安装和配置

    1.安装 Windows 环境 Maven 官网下载安装文件 解压到指定目录 配置环境变量(M2_HOME) cmd 输入 mvn -v Mac环境 brew install maven 配置环境变量 ...

  2. ZOJ Problem Set - 3878 Convert QWERTY to Dvorak

    题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3878 /* 问题 很有意思的一道题目,纯模拟,注意细节和最后一 ...

  3. set集合容器(常用的使用方法总结)

     关于C++STL中set集合容器的学习,看别人的代码一百遍,不如自己动手写一遍. 构造set集合容器的目的是为了去重+排序+快速搜索.由于set集合容器实现了红黑树多的平衡二叉检索树的数据结构,在插 ...

  4. oc for in遍历

    在oc中用for in遍历可变数组时,不能修改删除新增元素,因为for in遍历是枚举遍历,在遍历的过程中不能修改容器里的值. NSMutableArray *arr=[NSMutableArray ...

  5. Trace & Error log in file

    1. Log机制 做一些大型项目的时候,对代码的调试最有效的办法往往是最直接.最简单的log机制: 即对可以出设置打印店,对应打印信息进行调试(当然是有gdb也许你会觉得很高大上,但是实际项目中,gd ...

  6. 浅析Java源码之HashMap

    写这篇文章还是下了一定决心的,因为这个源码看的头疼得很. 老规矩,源码来源于JRE1.8,java.util.HashMap,不讨论I/O及序列化相关内容. 该数据结构简介:使用了散列码来进行快速搜索 ...

  7. [转]bootstrap栅格系统的属性及使用

    本文转自:https://www.cnblogs.com/LJYqq/p/6791512.html 栅格系统 媒体查询 在栅格系统中,我们在 Less 文件中使用以下媒体查询(media query) ...

  8. Repeater控件添加onmouseover和onmouseout事件

    网友有问题,在Repeater控件中,需要添加onmouseover和onmouseout事件功能.Insus.NET有叫他参考<onmouseover和onmouseout在Repeater控 ...

  9. jQuery显示SQL存储过程自定义异常信息

    学习MVC应用开发,改变了Insus.NET以前ASP.NET的开发习惯,以前开发均是服务器端,而现在使用jQuery的Ajax在实现.想到与考虑了很多问题,也遇上很多问题,一些解决了,一些还留下,望 ...

  10. 【MongoDB-query查询条件】

    在上一篇中简要使用了C# 对MongoDB进行数据操作,这里补充一些MongoDB query查询条件文档: Query.All("name", "a",&qu ...