Java 设计者写过一个很有影响力的白皮书,用来解释设计的初衷。白皮书可以在这里看: 《The Java Language Environment: Contents A White Paper》。

并且发布了一个简短的摘要,摘要分为 11 个术语。摘要中的论述如下

简单性

  • 希望构建学习成本低的编程系统
  • Java剔除了C++中许多很少使用、难以理解、易混淆的特性
  • 没有头文件、指针运算、结构、联合、操作符重载、虚基类等
  • 希望支持开发能够在小型机器上独立运行的软件

面向对象

  • 重点放在数据(对象)和数据的接口上
  • 面向对象的能力与C++一样
  • C++的多重继承在Java中用接口概念取代
  • 与C++相比,Java提供更丰富的运行时自省功能

分布式

  • Java有丰富的库可以处理HTTP之类的TCP/IP协议
  • 通过URL访问网络上的对象,就好像访问本地文件一样

健壮性

  • Java采用的指针模型可以消除重写内存和损坏数据的可能性
  • Java编译器可以检测许多其他语言仅运行时才能检测的问题

安全性

  • 防止运行时堆栈溢出
  • 防止破坏自己的进程空间之外的内存
  • 防止未经授权读写文件
  • 沙箱环境执行

体系结构中立

  • Java编译器生成与特定体系结构无关的字节码
  • 只要有Java运行时系统,字节码就可以在任何机器上解释执行
  • 解释字节码比全速运行机器指令慢
  • 即时编译:虚拟机可以将执行最频繁的字节码序列翻译成机器码

可移植性

  • 与C++不同,Java规范中没有依赖具体实现的地方
  • Java的int永远是32位整数
  • 二进制数据以固定格式存储,消除了字节顺序的困扰
  • Java的字符串用标准Unicode格式存储
  • 除了UI外,其它Java库都可以支持平台独立性
  • 处理文件、正则表达式、XML、日期时间、数据库、网络连接、线程

解释型

  • Java解释器可以再任何移植了解释器的机器上执行Java字节码
  • 链接是一个增量式且轻量级的过程,开发变得快捷且具有探索性

高性能

  • 字节码可以在运行时动态地翻译成运行该应用的特定CPU的机器码
  • 即时编译器可以监控经常执行哪些代码并优化这些代码
  • 即时编译器知道哪些类已经加载,如果特定函数不会被覆盖,则使用内联

多线程

  • 不在追求更快的处理器,而着眼于过得更多处理器
  • web编程需要并发类解决处理器等待服务器响应的问题

动态性

  • 库中可以添加新方法和实例变量而对客户端没有影响
  • 可以将某些代码添加到正在运行的程序中

Java白皮书关键词总结相关推荐

  1. java同步关键词解释、synchronized、线程锁(Lock)

    1.java同步关键词解释 21.1 synchronized synchronized是用来实现线程同步的!!! 加同步格式: synchronized( 需要一个任意的对象(锁) ){ 代码块中放 ...

  2. java实现关键词云_Java synchronized 关键词详细说明

    Java synchronized 关键词详细说明 外置专业技能点系统进程和进程的定义 进程建立方法 进程的情况情况变换 线程安全的定义 synchronized 关键词的几类使用方法装饰非静态数据组 ...

  3. 手把手教你java快速过滤关键词

    java过滤关键词 敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有必要的.前段时间我一个朋友(马上毕业,接触编程不久)要我帮他看一个文字过滤的东西,它说检索效率非常 ...

  4. Java核心技术(Java白皮书)卷Ⅰ 第一章 Java程序设计概述

    第1章 Java程序设计概述 1.1 Java程序设计平台  具有令人赏心悦目的语法和易于理解的语言,与其他许多优秀语言一样,Java满足这些要求.  可移植性  垃圾收集  提供大型的库   如果想 ...

  5. Java 白皮书 —— A White Paper

    Java白皮书 参考资源 Java 白皮书目录 1.Java 介绍 1.1 设计初衷 1.2 设计目标 1.3 Java平台--分布式计算的新方法 2.简单性和熟悉的 3.面向对象 3.1 Java ...

  6. 《詹姆斯·高斯林Java白皮书1996自译》00:概览

    JavaSE-AT阿宝哥 敲黑板,说重点,这是Java之父詹姆斯·高斯林原著的自译版,初学者和老鸟混江湖必读! 内容导航: 互动学习钉钉群[30687793] 前言 詹姆斯·高斯林简介 章节目录 1. ...

  7. 《詹姆斯·高斯林Java白皮书1996自译》07:多线程

    JavaSE-AT阿宝哥 敲黑板,说重点,这是Java之父詹姆斯·高斯林原著的自译版,初学者和老鸟混江湖必读! 内容导航: 互动学习钉钉群[30687793] 前言 1.Java语言级别的线程 2.集 ...

  8. java 白皮书_java第三天学习内容回顾——java白皮书第四章

    java面向对象程序设计中使用到名词理解:对象标识==一个实例的变量名.对象行为==一个类的方法.对象状态==类中的数据域(严格讲是可以发生变化的数据域): 类之间的关系:use_a,has_a,is ...

  9. java 白皮书的关键术语

    [0]README 0.1) 本文转自 core java volume 1,仅供了解,所谓爱屋及乌嘛: 0.2) java的设计者编写了颇有影响力的白皮书,用来解释设计的初衷以及完成的情况,并发布了 ...

最新文章

  1. informix中if else使用_面试官:代码中出现大量的if/else,需要优化,你有什么好方案?...
  2. 简单的java类与对象的总结
  3. 2021ICPC(澳门) - LCS Spanning Tree(广义后缀自动机)
  4. DICOM的常用Tag分类和说明
  5. 线性回归(Linear Regression)模型的构建和实现
  6. 谈谈Virtual DOM
  7. C#WebClient常见用法
  8. 微信支付 第一次成功,其他无法调起,返回-1(Android eclipse 微信支付之大坑 签名工具问题)
  9. python绘制缓和曲线_曲线标
  10. Asp.Net集成支付宝当面付接口报ISV权限不足
  11. Bean的六种作用域
  12. 寻找生态位置,中小险企破局生态建设——保险生态建设
  13. oracle cude报错,【案例】Oracle报错PLS-00597 PLS-00635原因和解决办法笔记
  14. 用DNSPod和Squid打造自己的CDN(转)
  15. kile中*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: WEEK是什么意思。
  16. c语言编写步进电机步数程序6,单片机步进电机程序问题
  17. 仿淘宝商品界面(html div+css)
  18. 循环冗余校验码计算CRC
  19. play框架使用起来(18)
  20. moto Z2 Force Sprint版 刷魔趣8.1和root教程

热门文章

  1. TCP 服务器/客户端(实现下载)
  2. 编写非递归算法实现二叉树的前序遍历
  3. 一位世界500强人力资源总监的六轮面试经历
  4. 测量平差之附有限制条件的条件平差(概括平差模型)
  5. java GUI记忆纸牌游戏(memorize game)
  6. Pathview绘制KEGG通路图
  7. 获取win10计算机所有权限,win10系统windows访问权限获取的操作方法
  8. 【项目】无人清扫车路径规划:基于ATSP的Lanelet2结构化道路覆盖算法
  9. css css2 css3_如何编写真正糟糕CSS
  10. 百度指数解密简单分析