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. postgresql的启停和创建

    一.启停方法 两种方法 1.直接运行postgres进程启动: 2.使用pg_ctl命令启动 postgres -D /home/osdba/pgdata  & 二.停止数据库的三种模式 sm ...

  2. 【IT笔试面试题整理】判断一个二叉树是否是平衡的?

    [试题描述]定义一个函数,输入一个链表,判断链表是否存在环路 平衡二叉树,又称AVL树.它或者是一棵空树,或者是具有下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的高度之差之差的 ...

  3. MySQL5.7+版本一些问题

    今天有一个需求.我要用本地的Java调用远程服务器的MySQL,因为我的MySQL版本为5.7.2,即比较新的版本.网上找的很多都比较旧,故贴此贴. 无密码: 初次安装MySQL可能没有设置密码,网上 ...

  4. 【learning】多项式开根详解+模板

    概述 多项式开跟是一个非常重要的知识点,许多多项式题目都要用到这一算法. 用快速数论变换,多项式求逆元和倍增法可以在$O(n log n)$的时间复杂度下求出一个$n$次多项式的开根. 前置技能 快速 ...

  5. MFC控件之Combo Box

    下拉链表Combo-box Control 常用属性: Sort:对添加到列表框的字符串进行自动排序.(对指定位置的元素项无效) Type:有三个类型 Simple:没有下拉按钮,可以输入字符串,可以 ...

  6. Romantic(hdu2699+欧几里德)

    Romantic Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  7. Listary Pro- 文件浏览与搜索增强的超级神器

    Listary 是一款 Windows 文件浏览增强工具,为 Windows 资源管理器增加智能命令.最近文档以及收藏功能.文件小,功能强大.秒杀系统自带搜索功能!! 它是一款非常优秀的 Window ...

  8. 一千行 MySQL 学习笔记

    Windows服务 -- 启动MySQL    net start mysql-- 创建Windows服务    sc create mysql binPath= mysqld_bin_path(注意 ...

  9. 获取本机的ip地址(排除虚拟机,蓝牙等ip)

    项目中遇到了要获取本地ip的需求,网上查找资料遇到很多坑,很多Java获取本机ip地址的方法要么是根本获取不到,要么是获取的有问题. 网上常见的方法如下 InetAddress.getLocalHos ...

  10. 老男孩教育python全栈第九期视频

    失效了在下面评论即可,会及时更新.python9期已全部更新完 链接: https://pan.baidu.com/s/1VV8_ZyVasK05iKd7QMxO-A 密码: 9zau