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编程需要并发类解决处理器等待服务器响应的问题
- 库中可以添加新方法和实例变量而对客户端没有影响
- 可以将某些代码添加到正在运行的程序中
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)