Java核心技术 卷一 - 第 1 章 Java 程序设计概述

  • 概述
    • Java 程序设计平台
    • Java“ 白皮书” 的关键术语
      • 简单性
      • 面向对象
      • 分布式
      • 健壮性
      • 安全性
        • 防范的攻击
      • 体系结构中立
      • 可移植性
      • 解释型
      • 高性能
      • 多线程
      • 动态性
    • Java applet 与 Internet
    • Java 发展简史
    • 关于 Java 的常见误解

概述

  • Java 程序设计平台
  • Java“ 白皮书” 的关键术语
  • Java applet 与 Internet
  • Java 发展简史
  • 关于 Java 的常见误解

1996 年 Java 第一次发布。

Java 程序设计平台

Java 是一个完整的平台,有一个庞大的库,其中包含了很多可重用的代码和一个提供诸如安全性、 跨操作系统的可移植性以及自动垃圾收集等服务的执行环境。

Java“ 白皮书” 的关键术语

简单性

  1. 语法简化,剔除了 C++ 中许多很少使用、 难以理解、 易混淆的特性。
  2. 简单的另一个方面是小。支持开发能够在小型机器上独立运行。

面向对象

  1. 简单地讲, 面向对象设计是一种程序设计技术。 它将重点放在教椐 ( 即对象)和对象的接口上。
  2. 用更简单的接口代替多重继承。
  3. 丰富的自省功能。

分布式

  1. Java 有一个丰富的例程库,用于处理像 HTTP 和 FIT 之类的 TCP/IP 协议。Java 应用
    程序能够通过 URL 打开和访问网络上的对象,其便捷程度就好像访问本地文件一样。

健壮性

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

安全性

  1. Java 适用于网络 / 分布式环境。
  2. 使用 Java 可以构建防病毒、 防篡改的系统。

防范的攻击

  1. 运行时堆栈溢出。 如蠕虫和病毒常用的攻击手段。
  2. 破坏自己的进程空间之外的内存。
  3. 未经授权读写文件。

体系结构中立

  1. Java 编译器通过生成与特定的计算机体系结构无关的字节码指令来实现这一特性。 精心设计的字节码不仅可以很容易地在任何机器上解释执行,而且还可以动态地翻译成本地机器代码。
  2. 可以检测指令序列的行为, 从而增强其安全性。

可移植性

  1. Java 规范中没有“ 依赖具体实现” 的地方基本教据类型的大小以及有关运算都做了明确的说明
  2. 除了与用户界面有关的部分外,所有其他 Java 库都能很好地支持平台独立性。
  3. Java API 往往也比原生 API 质量更高。

解释型

  1. Java 解释器可以在任何移植了解释器的机器上执行 Java 字节码。

高性能

  1. 字节码可以(在运行时刻)动态地翻译成对应运行这个应用的特定 CPU 的机
    器码。

多线程

  1. 多线程可以带来更好的交互响应和实时行为。

动态性

  1. 从各种角度看, Java 与 C 或 C++ 相比更加具有动态性。它能够适应不断发展的环境库中可以自由地添加新方法和实例变量, 而对客户端却没有任何影响。在Java 中找出运行时类型信息十分简单。
  2. C# 与 Java 有很多相似之处, 然而使用的却是完全不同的虚拟机。

白皮书 www.oracle.com/technetworic/java/langenv-140151.html
关键术语的论述 http://horstmann.com/corejava/java-aiw)verview/7Gosling.pdf

Java applet 与 Internet

Java 发展简史

关于 Java 的常见误解

  1. Java 是 HTML 的扩展
    Java 是一种程序设计语言;HTML 是一种描述网页结构的方式。除了用于在网页上放置Java applet 的 HTML 扩展之外,两者没有任何共同之处。
  2. 使用 XML, 所以不需要 Java
    Java 是一种程序设计语言;XML 是一种描述数据的方式。可以使用任何一种程序设计语言处理 XML 数据,而 Java API 对 XML 处理提供了很好的支持。此外,许多重要的第三方 XML 工具采用 Java 编写。有关这方面更加详细的信息请参看卷 II。
  3. Java 是一种非常容易学习的程序设计语言
    像 Java 这种功能强大的语言大都不太容易学习。首先,必须将编写玩具式程序的轻松和开发实际项目的艰难区分开来。需要注意的是:本书只用了 7 章讨论 Java 语言。在两卷中,其他的章节介绍如何使用 Java 类库将 Java语言应用到实际中去。Java 类库包含了数千种类和接口以及数万个函数。幸运的是,并不需要知道它们中的每一个,然而, 要想 Java 解决实际问题, 还是需要了解不少内容的。
  4. Java 将成为适用于所有平台的通用性编程语言
    从理论上讲, 这是完全有可能的。 但在实际中, 某些领域其他语言有更出色的表现, 比如,Objective C 和后来的 Swift 在 iOS 设备上就有着无可取代的地位, 浏览器中的处理几乎完全由 JavaScript 掌控。 Windows 程序通常都用 C++ 或 C# 编写D Java 在服务器端编程和跨平台客户端应用领域则很有优势 ,
  5. Java 只不过是另外一种程序设计语言
    Java 是一种很好的程序设计语言, 很多程序设计人员喜欢 Java 胜过 C、 C++ 或 Ct 有上百种好的程序设计语言没有广泛地流行,而带有明显缺陷的语言, 如:CM 和 Visual Basic却大行其道。这是为什么呢? 程序设计语言的成功更多地取决于其支撑系统的能力, 而不是优美的语法。人们主要关注:是否提供了易于实现某些功能的易用、 便捷和标准的库? 是否有开发工具提供商能建立强大的编程和调试环境? 语言和工具集是否能够与其他计算基础架构整合在一起? Java 的成功源于其类库能够让人们轻松地完成原本有一定难度的事情。 例如:联网Web 应用和并发。Java 减少了指针错误, 这是一个额外的好处, 因此使用 Java 编程的效率更高。但这些并不是 Java 成功的全部原因。
  6. Java 是专用的,应该避免使用
    最初创建 Java 时;Sun 为销售者和最终用户提供了免费许可。尽管 Sim 对 Java 拥有最终的控制权, 不过在语言版本的不断发展和新库的设计过程中还涉及很多其他公司. 虚拟机和类库的源代码可以免费获得, 不过仅限于查看, 而不能修改和再发布。Java 是“ 闭源的,不过可以很好地使用”。这种状况在 2007 年发生了戏剧性的变化,Sun 声称 Java 未来的版本将在 General PublicLicense (GPL) 下提供。Linux 使用的是同一个开放源代码许可 , Oracle—直致力于保持 Java开源。只有一点美中不足—专利。 根据 GPL, 任何人都可以得到专利许可, 允许其使用和修改 Java, 不过仅限于桌面和服务器平台。如果你想在嵌人式系统中使用Java, 就需要另外一个不同的许可,这很可能需要付费。不过,这些专利在未来十年就会到期,那时 Java 就完全免费了。
  7. Java 是解释型的, 因此对于关键的应用程序速度太慢了
    早期的 Java 是解释型的。 现在 Java 虚拟机使用了即时编译器, 因此采用 Java 编写的“ 热点” 代码其运行速度与 C++ 相差无几, 有些情况下甚至更快。对于 Java 桌面应用速度慢, 人们已经抱怨很多年了。但是,今天的计算机速度远比人们发出抱怨的时候快了很多一个较慢的 Java 程序与几年前相当快的 C++ 程序相比还要快一些。
  8. 所有的 Java 程序都是在网页中运行的
    所有的 Java applet 都是在网页浏览器中运行的。这也恰恰是 applet 的定义,即一种在浏览器中运行的 Java 程序 5 然而,大多数 Java 程序是运行在 Web 浏览器之外的独立应用程序。实际上, 很多 Java 程序都在 Web 服务器上运行并生成用于网页的代码。9. Java 程序是主要的安全风险对于早期的 Java, 有过关于安全系统失效的报道,曾经一度引起公众哗然。研究人员将J Java 程序??概述 11这视为一种挑战, 即努力找出 Java 的漏洞,对 applet 安全模型的强度和复杂度发起挑战。随后,人们很快就解决了引发问题的所有技术因素。后来又发现了更严重的漏洞,而 Sim 以及后来的 Oracle 反应却过于迟缓。浏览器制造商则有些反应过度,他们甚至默认禁用了 Java。客观地来讲, 可以想想针对 Windows 可执行文件和 Word 宏有数百万种病毒攻击, 并造成了巨大的损害, 不过奇怪的是却很少有人批评被攻击平台的脆弱。有些系统管理员甚至在公司浏览器中禁用了 Java, 而同时却允许用户下载可执行文件和Word 文档,实际上,这些带来的风险远甚于使用 Java。尽管距离 Java 诞生已经 20 年之久,与其他常用的执行平台相比,Java 还是安全得多。
  9. JavaScript 是 Java 的简易版
    JavaScript 是一种在网页中使用的脚本语言,它是由 Netscape 发明的, 原来的名字叫做LiveScript。JavaScript 的语法类似 Java, 除此之外,两者无任何关系。当然,名字有些相像。JavaScript 的一个子集已经标准化为 ECMA-262。与 Java applet 相比,JavaScript 更紧密地与浏览器集成在一起。特别是 JavaScript 程序可以修改正在显示的文档, 而 applet 只能在有限的区域内控制外观。
  10. 使用 Java 可以用廉价的 Internet 设备取代桌面计算机
    当 Java 刚刚发布的时候, 一些人打赌:肯定会有这样的好事情发生。一些公司已经生产出 Java 网络计算机的原型,不过用户还不打算放弃功能强大而便利的桌面计算机, 而去使用没有本地存储而且功能有限的网络设备。当然,如今世界已经发生改变,对于大多数最终用户, 常用的平台往往是手机或平板电脑。这些设备大多使用安卓平台,这是 Java 的衍生产物。学习Java 编程肯定也对 Android 编程很有帮助。

Java核心技术 卷一 - 第 1 章 Java 程序设计概述相关推荐

  1. Java核心技术卷一 -第四章:方法参数

    系列文章目录 Java核心技术卷一 -第一章:java"白皮书"的关键术语 Java核心技术卷一 -第三章:数据类型 Java核心技术卷一 -第三章:变量与常量 Java核心技术卷 ...

  2. Java核心技术卷一 -第五章:装箱和拆箱

    系列文章目录 Java核心技术卷一 -第一章:java"白皮书"的关键术语 Java核心技术卷一 -第三章:数据类型 Java核心技术卷一 -第三章:变量与常量 Java核心技术卷 ...

  3. Java核心技术卷一 -第五章:类的强制类型转换与instanceof操作符

    系列文章目录 Java核心技术卷一 -第一章:java"白皮书"的关键术语 Java核心技术卷一 -第三章:数据类型 Java核心技术卷一 -第三章:变量与常量 Java核心技术卷 ...

  4. Java核心技术卷一 -第五章:枚举类再认识

    系列文章目录 Java核心技术卷一 -第一章:java"白皮书"的关键术语 Java核心技术卷一 -第三章:数据类型 Java核心技术卷一 -第三章:变量与常量 Java核心技术卷 ...

  5. Java核心技术卷1心得笔记1---Java程序设计概述

    第一章 Java程序设计概述 本章主要介绍了Java程序设计平台,Java关键术语,Java applet,Java发展史以及常见几个易误解的概念. 主要了解下Java关键术语,Java applet ...

  6. Java核心技术卷一 -第十二章:多线程

    系列文章目录 Java核心技术卷一 -第一章:java"白皮书"的关键术语 Java核心技术卷一 -第三章:数据类型 Java核心技术卷一 -第三章:变量与常量 Java核心技术卷 ...

  7. Java核心技术卷一 -第九章:集合

    系列文章目录 Java核心技术卷一 -第一章:java"白皮书"的关键术语 Java核心技术卷一 -第三章:数据类型 Java核心技术卷一 -第三章:变量与常量 Java核心技术卷 ...

  8. Java核心技术卷一读书笔记

    文章目录 Java核心技术卷一读书笔记 第一章 Java程序设计概述 1.1 关键特性 第二章 Java程序设计环境 2.1 使用命令行工具 第三章 Java的基本查询设计结构 3.1 数据类型 3. ...

  9. Java核心技术卷一基础知识第10版demo实例

    Java核心技术卷一基础知识第10版demo实例 第三章 JAVA的基本程序设计结构 3.7输入与输出 3.7.1读取输入 3.8控制流程 3.8.3循环 3.10数组 3.10.6多维数组 第四章 ...

  10. Java核心技术卷一笔记

    Java核心技术-卷一学习笔记 文章目录 Java核心技术---卷一学习笔记 前言 一.第一章Java程序设计 标题Java具有的特性: 二.第二章Java程序设计环境 JDK和Jre的区别 第三章J ...

最新文章

  1. linux环境变量堆栈,情景linux--如何摆脱深路径的频繁切换烦恼?
  2. Android 64K解决办法
  3. Git/码云上多人协作,创建分支,上传修改
  4. 更方便的函数回调——Lambda
  5. HDU - 4757 Tree(LCA+可持久化trie树)
  6. 显示/隐藏Mac系统中所有的隐藏文件
  7. BZOJ1016:[JSOI2008]最小生成树计数——题解
  8. 开发小Tips-setValue
  9. 干掉 BeanUtils!试试这款 Bean 自动映射工具,真心强大!
  10. Could not find acceptable representation
  11. byte 转 int 为什么要0xFF?
  12. python入门简单小程序
  13. GO语言练习:网络编程 ICMP 示例
  14. 模拟串口收发数据Configure Virtual Serial Port Driver(VSPD)
  15. c语言中清屏的作用是什么,清屏函数的使用
  16. 蚂蚁金服服务器系统,蚂蚁金服轻量级监控分析系统 SOFALookout 服务端开源
  17. windows下载安装adb(极其简单)
  18. 服务器自带软件怎么样卸载,如何安装和卸载远程服务器管理工具
  19. java实现逆波兰表达式求值
  20. ROS 端口IP映射 动态IP映射

热门文章

  1. 存储、读取、清除cookies数据
  2. 解决Ubuntu 20.04无法播放网页音视频的问题
  3. oracle获取今天是周几,根据DateTime来获取当天是周几(已完结)
  4. 史上最给力客厅风水 让你躲过血光之灾
  5. TAGE Predictor
  6. oracle中的各种命令(关于表的增删改查)
  7. 迷宫小游戏c语言代码,C语言编写的迷宫小游戏-源代码
  8. 计算机专业女生跨专业考研考什么好,计算机专业女生,考研,跨专业,考公务员。...
  9. 401832-00-4,Thalidomide-O-PEG4-Amine在EDC或HATU存在下与NHS酯基或羧酸反应的合成化合物
  10. between oracle的用法,关于 oracle between and的用法! | 学步园