我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java的关键特性有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java的关键特性有哪些

本篇内容主要讲解“Java的关键特性有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java的关键特性有哪些”吧!

Document the Java: Sun Microsystems 公司的白皮书-- 1995.10 James Gosling 和 Henry McGilton 的草案-- 说明了Java的以下主要特性:
*Simple and Familiar (简单熟悉)
*Object-oriented (面向对象)
*Architecture-neutral (结构中立)
*Portable (可移动)
*Somewhat Interpreted (部分解释)
*Distributed (分布式的)
*Robust (鲁棒性)
*Secure (安全)
*High performance (高性能)
*Multi Threaded (多线索)
*Dynamic (动态)

Java 特性 -- 简单熟悉
Java 省略了C++ 中一些很少用到的, 不易理解的和易于混淆的特性, 包括操作符重载, 多重继承, 指针和自动类型强制.
它增加了自动垃圾清理, 使得用Java进行动态编程比用 C 或 C++ 容易.
不再有mallocs!
它还加了´接口´ 构造, 类似于 Objective C 的概念, 经常用于通过允许method调用语法是"继承的"来弥补多重继承的缺少带来的不便.
结果因为它类似于C++, 用户会比较熟悉, 便于编程.
这样做的另一个结果是使得内核变得很小, 适用于消费者电子设备. 基本解释器(alpha) 为~40Kb, 库和线索另外需要 175Kb.

Java 特性 -- 面向对象
Java 模型可以看成是 C++ 的一个子集, 带有一些从Objective_C 中继承下来的动态元素(方法重载, 垃圾收集).
结构, 联合和函数被抽象成为Java类的数据和方法(methods) -- Java 比较简单!
Java模型的长处不仅在于简单还在于和系统相关的类库的扩充 (大约 250 个公共库在alpha 和 beta 版中发布).
Java 类也在Web 嵌入模型中起到通讯单元的作用. Applet 类通过HTML的applet标记中的名字标识自己. Applet 下载出现在applet源程序中的其它类. 因此, Java 类名字起到分布式Java代码数据库的地址模式的作用.

Java 特性 --结构中立
C/C++ 在异构网络环境下编程需要使用和兼容多个平台和相应的编译器. 这个问题在 Java中通过称为bytecode(或opcode)的独立于平台的二进制描述解释的设计而解决了.
Java 编译器(用 Java 写成的, 平台独立) 读取 Java 源程序生成Java bytecode. 这些 bytecodes 根据浏览器的要求被送到客户端的机器上.
每个客户机器必须运行 Java 解释器, 它完成 Java bytecode的解释执行. Java 解释器是用POSIX的ANSI C编写的, 需要送到每个单独的平台下面进行一次常规的编译.
一旦解释器就绪, 应用程序开发者不必关心任何平台说明和区别不同的本地编译器.

Java 特性 -- 可移动
Java 语言提供了一个统一的抽象 (虚拟) 机器模型, 对所有的平台是一致的.
SUN 拥有 Java 虚拟机 -- 它是通用的, 而任何用户可以增加它的类
不同于在 C/C++ 中需要手工为不同的整数匹配到物理机器的结构上, Java byte, char short, int 和 long 的大小始终是一样的, 分别等于 8, 16, 16(unicode), 32 和 64 位.
没有头文件, 预处理程序,#define 等.
浮点数总是IEEE 754
特定窗口环境的区别的说明 (X Windows, MS Windows, Macintosh) 根据抽象窗口工具 Abstract Windowing Toolkit (AWT) 消除掉了.
AWT 是由 ~60 Java 类(alpha)写成的, 它提供了一个通用的 GUI 编程模型, 可以在 UNIX, PC 和 Mac 上移动, 由Java解释器自动翻译成本地平台的窗口系统.

Java 特性 -- 部分解释
Java 代表了完全编译 (如 C/C++) 和完全解释 (如 Smalltalk 或者 Perl) 之间的一种折衷方案.
Java "编译器" 生成一种二进制 bytecode 输出, 它是可移动的, 比特定机器实际所需的二进制代码要小得多 .
Java "解释器" 执行这个 bytecode , 因此动态性比象Perl这样的解释器小 (后者内部实现一个等价的 bytecode 构造, 当阅读程序源码时 on-the-fly).
通常地, 编辑过程是: a) 时间消费和 b) 平台说明. 因此, 解释器用于促进 a) 快速原型化和/或 b) 可移动性. Java 模型主要考虑平台独立性但是效率也是适当的因为Java 编译器比较快, 生成简洁的 bytecode 输出.

Java 特性 -- 分布式
流行的 TCP/IP 为基础的协议如 FTP 或 HTTP 是根据网络协议类来支持的. 这方便了各种形式的分布式处理. 新的协议 (如 PVM ) 可以增加和动态安装.
Java 的分布式计算模型主要是客户-服务器, Java 编译器在服务器一方准备 opcodes, Java 解释器在客户一方执行它.
用户可以期待用服务器和客户的Java线索互相通讯实现更多的动态使用.

Java 特性 -- 鲁棒性
Java 增强了编译时的类型检查, 消除了 C/C++ 在这方面的一些错误.
指针算法被完全放弃, 这样是为了运行时检查数组下标和增强了Java模型的安全性.
始终要求显式说明, 即 C 类型的隐式说明被放弃. 这样使得Java 编译器可以完成早期的错误检查.
Java中快速原型化(prototyping )不如 JavaScript,Lisp, Tcl, Smalltalk 或 Perl, 但是Java的软件质量保证比这些更加动态和 ´宽大的´ 语言要好.

Java 特性 -- (希望的) 安全性
Java 二进制代码在网络中传送, 在客户机器上执行. 因此安全性是一个至关重要的问题, 在Java中得到着力加强.
Java 有它自己的已安全方式设计的网络类
C++ 模型的修改如去掉指针算法和强制类型转换主要是基于安全要求的考虑.
多数病毒是基于对私用的/保护的计算机存储器的访问实现的, 这在Java中是不可能的.
Java opcode 是由Java解释器在客户一端独占的虚拟存储器中执行的. 因此除非Java解释器自己存在安全漏洞, 否则模块是安全的, 用户无法通过不正确地或者恶意地编写applet产生安全漏洞.
穿过网络发送的 bytecode在客户端被检验, 阻止恶意/错误的类引发问题

Java 特性 -- 高性能
Java 解释器完成Java bytecode的on-the-fly runtime 执行, 获得了满意的性能.
NOT true in initial software which is often 100 times slower than C but this is expected to improve as true compilers are produced and general software improves!
支持生成从bytecode中生成与本地机器相关的代码, 作为中级编译器形式来看, 这一点满足了对性能要求较高的应用程序.
从Jave bytecode中生成的机器代码的性能与同样平台下的典型的 C/C++ 编译器提供的性能相当.
这里的一些概念实际上和 OSF/ANDF 相似. 使用 ANDF 术语的话, 我们可以称 Java 编译器为 ´生产者producer´, 这里讨论的机器代码生成器是一个 ´安装者installer´. 缺省情况下 Java 的工作模式不使用 installer 而是直接解释中级代码形式 (这种方式在 ANDF 中是用 GAI -- Generalized ANDF Interpreter支持的).
ANDF 模型在原理上可以应用到所有的语言上. Java/HotJava 系统为Java语言实现了 ANDF 概念.

Java 特性 -- 多线索
Java 模型提供优先权多线索, 在Thread类上面执行. 线索方法基于C.A.R. Hoare的监视者和条件变量变化表提供一套时间同步原语. Java 线索从Xerox Park的先驱性的Cedar/Mesa系统(它创造了Macintosh和面向对象程序设计)中继承了一些特性.
Java 多线索在applet 编程中的一个典型应用是有几个独立但又相互关联的情况的模拟 (例如各种排序算法的), 它们同时在一个applet窗口中运行. 多线索还内部用于 HotJava 浏览器, 处理多个动态文档.
另一个有趣的应用领域是多-HotJava 环境的情况, 例如合作实验室或游戏
Java 线索内置的点对点通讯原语. 各种线索的通讯环境可以通过线索和网络协议对象的联合来提供.

Java 特性 -- It 动态性
Java 模型比C++的动态性要好, 接近于Smalltalk 或 Perl.
在父类实现被更新后, 子类不需要重新编译.
类有runtime 陈述(按照Class类实现), 它允许用户在运行时察看一个给定对象实例的类型 (在 C 中如果指针是指向整数或浏览器则无法知道)
C++ 有 "脆弱父类" 问题, 如果改变了父类或引用的类中的任意内容(方法/实例变量), 必须重新编译子类. Java 在运行时解决类的引用, 解决了这个问题.

到此,相信大家对“Java的关键特性有哪些”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java的关键特性有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java的关键特性有哪些

本篇内容主要讲解“Java的关键特性有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java的关键特性有哪些”吧!Document the Java: Sun Microsystems 公司
2023-06-03

python字典键的特性有哪些

这篇文章主要介绍python字典键的特性有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、不允许同一个键出现两次。创建时,如果同一个键被赋予两次值,则记住后一个值。dict = {Name: Runoob, A
2023-06-15

java中TreeMap的特性有哪些

这篇文章给大家介绍java中TreeMap的特性有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序。1
2023-06-14

java事务的特性有哪些

Java事务的特性包括:1. 原子性(Atomicity):事务中的所有操作要么全部成功执行,要么全部回滚,不会存在部分执行的情况。2. 一致性(Consistency):事务在开始和结束时,数据库必须保持一致性状态。这意味着事务在执行过程
2023-09-27

Java的泛型特性有哪些

本篇内容主要讲解“Java的泛型特性有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java的泛型特性有哪些”吧!1. 定义在了解一个事物之前,我们必定要先知道他的定义,所以我们就从定义开始
2023-06-15

Java高级特性有哪些

本篇内容介绍了“Java高级特性有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1List和SetJUC(java.util.concu
2023-06-19

java 1.8新特性有哪些

这篇“java 1.8新特性有哪些”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“java 1.8新特性有哪些”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们进入
2023-06-06

Java内部类的特性有哪些

Java内部类的特性有以下几点:1. 内部类可以访问外部类的成员变量和方法,包括私有成员。2. 外部类可以访问内部类的私有成员。3. 内部类可以被声明为私有、受保护、公共和默认(包私有)访问修饰符。4. 内部类可以访问外部类的静态成员,包括
2023-09-26

SAP ABAP特性相关表有哪些

本篇内容介绍了“SAP ABAP特性相关表有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!SAP中不管是特性还是分类在系统里都是经过内部
2023-06-05

Java ME SDK 3.0.5有哪些特性

本篇内容主要讲解“Java ME SDK 3.0.5有哪些特性”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java ME SDK 3.0.5有哪些特性”吧!Java ME曾是Sun的一个巨大成
2023-06-17

Redis的集群模式有哪些关键特点

Redis集群模式的关键特点包括:数据分片:Redis集群将数据分散存储在多个节点上,每个节点负责存储部分数据,通过数据分片实现负载均衡和提高性能。节点间通信:Redis集群使用集群总线(cluster bus)进行节点间通信,节点之间通过
Redis的集群模式有哪些关键特点
2024-04-09

Java volatile关键字的特性是什么

这篇文章主要讲解了“Java volatile关键字的特性是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java volatile关键字的特性是什么”吧!一、概述volatile是Ja
2023-07-04

java中 Map集合的特性有哪些

java中 Map集合的特性有哪些?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和
2023-06-14

Java Spring之Spring5的新特性有哪些

这篇文章主要介绍“Java Spring之Spring5的新特性有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java Spring之Spring5的新特性有哪些”文章能帮助大家解决问题。1
2023-07-05

Spring的特性有哪些

Spring的特性有哪些?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Spring引入传统的基于mvc的项目框架结构:Entity / dao / servic
2023-05-31

servlet3的特性有哪些

本篇文章为大家展示了servlet3的特性有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Servlet 3.0 新特性概述Servlet 3.0 作为 Java EE 6 规范体系中一员,随着
2023-05-31

vue3.0的特性有哪些

vue3.0的特性有哪些?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。vue是什么软件Vue是一套用于构建用户界面的渐进式JavaScript框架,Vue与其它
2023-06-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录