当前位置: 首页 > news >正文

Java的主要特性?

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

      1、Java语言是简单的 。Java语言的语法与C语言和C++语言很接近,使得大多数 程序员 很容易学习和使用Java。另一方面,Java丢弃了C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的 强制类型转换 。特别地,Java语言不使用 指针 ,并提供了自动的废料收集,使得程序员不必为 内存管理 而担忧。
2 、Java语言是一个面向对象的 。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制( 关键字 为implements)。Java语言全面支持动态绑定,而C++ 语言只对 虚函数 使用动态绑定。总之,Java语言是一个纯的 面向对象程序设计 语言。
3、Java语言是分布式的 。Java语言支持Internet应用的开发,在基本的Java应用 编程接口 中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
4、Java语言是健壮的。 Java的 强类型 机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。
5、Java语言是安全的。 Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多 安全特性 以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、 字节代码 检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。
6、Java语言是体系结构中立的。 Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的 字节码 格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。
7、Java语言是可移植的。 这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本 数据类型 的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。
8、Java语言是解释型的。 如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java 解释器 对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
9、Java是高性能的。 与那些解释型的高级 脚本语言 相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。
10、Java语言是多线程的。 在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的 代码 。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。
11、Java语言是动态的。 Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。

Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。

取至百度百科

转载于:https://my.oschina.net/onlytwo/blog/50968

相关文章:

  • 为WP7添加动态Tile
  • [zz]Linux性能测试工具Lmbench介绍和使用说明
  • ACL配置
  • Ubuntu下使用虚拟机安装xp系统
  • [转]一个老工程师给年轻人的忠告
  • Oracle官网提供的虚拟机下载,方便测试和开发环境
  • CentOS6.2配置php-cgi错误解决办法
  • 对不含数据源的DataGridView实现自定义排序
  • 明晰单元测试
  • XNA游戏:手势触控
  • 基于corosync和pacemaker实现配置nginx的高可用集群
  • shell文本操作的实际应用
  • 分享memcache和memcached安装过程(转)
  • 域控服务器上安装Lync标准版记录
  • Sqlserver 数据库高级查询和设计
  • Angular 响应式表单之下拉框
  • C# 免费离线人脸识别 2.0 Demo
  • css属性的继承、初识值、计算值、当前值、应用值
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • Java IO学习笔记一
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • Vue2.0 实现互斥
  • 百度小程序遇到的问题
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 简单数学运算程序(不定期更新)
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 如何选择开源的机器学习框架?
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 详解NodeJs流之一
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • ​iOS实时查看App运行日志
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ​学习一下,什么是预包装食品?​
  • #define、const、typedef的差别
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • $forceUpdate()函数
  • (31)对象的克隆
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (算法二)滑动窗口
  • (一)kafka实战——kafka源码编译启动
  • (转)Oracle 9i 数据库设计指引全集(1)
  • .Net MVC + EF搭建学生管理系统
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .NET建议使用的大小写命名原则
  • @Pointcut 使用
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • [Android] Implementation vs API dependency
  • [AutoSar]BSW_Com02 PDU详解
  • [BeginCTF]真龙之力
  • [BZOJ1053][HAOI2007]反素数ant
  • [Bzoj4722]由乃(线段树好题)(倍增处理模数小快速幂)
  • [Enterprise Library]调用Enterprise Library时出现的错误事件之关闭办法
  • [ISCTF 2023]——Web、Misc较全详细Writeup、Re、Crypto部分Writeup
  • [LeetCode] 2.两数相加