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. logstash-input-jdbc同时同步多个表

    同步一个表,可以参考我的上一篇 logstash-jdbc-input与mysql数据库同步 同步多个表的做法,跟一个表类似,唯一不同的是 .conf 文件中的配置 在这里我加了一个脚本文件jdbc- ...

  2. C#数据仓储类

    https://ninesky.codeplex.com/SourceControl/latest /*============================== 版本:v0.1 创建:2016.2 ...

  3. T-SQL 分布式查询

    --返回本地服务器中定义的链接服务器列表. EXEC sys.sp_linkedservers /* 创建或更新 SQL Server 本地实例上的登录名与远程服务器中安全帐户之间的映射. 当用户登录 ...

  4. 手机App安全性测试初探

    目前手机App测试还是以发现bug为主,主要测试流程就是服务器接口测试,客户端功能性覆盖,以及自动化配合的性能,适配,压测等,对于App安全性测试貌似没有系统全面统一的标准和流程,其实安全性bug也可 ...

  5. Dicom图像解析

    医疗图像解析 Dicom 后缀: .dcm..DCM Dicom中规定的坐标系是以人坐标系为绝对坐标系的,规定X轴正向指向病人的左侧,Y轴正向指向病人的背部,Z轴正向指向病人的头部.但是,坐标点的位置 ...

  6. 【webserver】使用python实现webserver,支持上传下载文件

    #!/usr/bin/env python """Simple HTTP Server With Upload. This module builds on BaseHT ...

  7. .37-浅析webpack源码之事件流make(4)

    赶紧完结这个系列咯,webpack4都已经出正式版了. 之前的代码搜索到js文件的对应loader,并添加到了对象中返回,流程如下: this.plugin("factory", ...

  8. apache 隐藏 index.php

    在根目录下添加文件 .htaccess <IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On RewriteC ...

  9. C#调用百度地图API经验分享(四)

    这一篇,记录一下我调用的地图API实现的功能.下面介绍的都是一些片段的节选,不能直接复制就运行.在实现之前肯定要加载地图,先放一个webbroser控件,然后如下: private void Form ...

  10. String 字符串相加比较

    String 字符串相加 对比 public static void main(String[] args) { String a = "helloword"; final Str ...