Java 核心技术卷 I —— 第1章 Java 程序设计概述

这篇具有很好参考价值的文章主要介绍了Java 核心技术卷 I —— 第1章 Java 程序设计概述。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.1 Java 程序设计平台

​ Java 于 1996 年第一次发布,引起了人们极大的兴趣。关注 Java 的人不仅限于计算机出版界,还有诸如《纽约时报》、《华盛顿邮报》和《商业周刊》这样的主流媒体。Java 是唯一一个在 National Public Radio 上占用了 10 分钟时间进行介绍的程序设计语言,且得到了 100 000 000 美元的风险投资资金。

1.2 Java 白皮书的关键术语

1.2.1 简单性

​ 对比于 C++,Java 没有指针、结构、联合、操作符重载(可惜了)、虚基类等复杂语法,是独立于但又参考借鉴了 C++ 的一种新语言。

​ 另外,Java 的目标之一是支持在小型机器上的软件开发,其基本解释器和类大小仅有 40KB,算上基础的标准类库和线程支持也仅需要 175 KB。这样的“小”也体现了 Java 的简单。

1.2.2 面向对象

​ Java 面向对象的技术非常成熟,与 C++ 旗鼓相当。且没有多重继承,取代之的是接口概念。

1.2.3 分布式

​ Java 有丰富的例程库,用于处理网络协议(TCP / IP),处理网络对象时的便携程度就如同访问本地文件一般。

1.2.4 健壮性

​ Java 编译器非常智能,能够检测许多运行时才可能出现的问题。另外,由于没有指针,不会存在内存问题。

1.2.5 安全性

​ Java 一开始便设计为能够防范各种攻击的语言,包括:

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

​ 尽管发展途中仍遭遇了一些 bug,但时至今日 Java 已经足够值得信赖。

1.2.6 体系结构中立

​ Java 创新性地采用了虚拟机机制,编译器将 Java 代码生成为字节码(.class 文件),由虚拟机负责在不同平台上运行相同的效果。

​ 尽管解释虚拟机指令肯定比全速运行机器指令慢很多,但 Java 虚拟机有一个选项,可以将执行最频繁的字节码序列转换成机器码,这一过程称为 即时编译

1.2.7 可移植性

​ Java 明确规定了基本数据类型的大小和运算,例如 int 明确指定为 32 位。不同于 C++ 中的 int 取值是一个范围,即,可能是 16 位或者 32 位。这种做法消除了 C++ 代码移植时的一大困难。

1.2.8 解释性

​ Java 解释器可以再任何移植了解释器的机器上直接执行 Java 字节码。

​ 但对比于 Python 这种解释性语言,直到 Java 9 才提供了 jshell 工具来支持快捷交互的编程。

1.2.9 高性能

​ 现在的 Java 即时编译器已经可以与传统的编译器相媲美,甚至在某些情况下性能超越了传统编译器。

​ 主要原因是及时编译器拥有更多的代码信息,能够合理优化代码,提高运行效率。

1.2.10 多线程

​ 在设计之初,Java 超前地支持并发程序设计。

1.2.11 动态性

​ Java 能够在运行程序时增加代码,Java 库能够自由地添加新方法和实例变量,而对客户端没有任何影响。

1.3 Java applet 与 Internet(*)

1.4 Java 发展简史

​ 1991 年,Sun 公司的一个工程师小组计划设计一种小型计算机语言 “Oak”,用于有线电视转换盒之类的消费设备,项目名称为 “Green”。由于目标设备往往计算能力和内存均有限,因此该语言必须非常小,且效率高。另外,由于设备的不同厂商选择的中央处理器(CPU)不同,因此该语言还需求跨平台。后来 Sun 公司发现已经有另外一个计算机语言取名为 Oak,因此改名为 Java。

​ 1992 年,Green 项目发布了第一个产品 “*7”,能够提供智能的远程控制。但 Sun 公司对该项目不感兴趣,因此 Green 项目组投标了一个设计有线电视盒的项目,但遗憾没能拿到合同。

​ 1993 年,Green 项目更换名称为 “First Person” 公司,并寻求买家购买自己的技术,但一直没能找到,于 1994 年解散了。在当时,Internet 的万维网日渐发展壮大,人们主要使用伊利诺伊大学超级计算中心的一个非商业化 Web 浏览器 Mosaic。Sun 公司使用 Java 开发新的浏览器 HotJava,能够在网页中执行内嵌的 Java 代码,用来展示 Java 语言的强势能力,并于 1995 年在 SunWorld’95 大会上展示,引发了人们对 Java 的狂热追逐。

​ 1996 年,Sun 公司发布了 Java 第 1 个版本,但 Java 1.0 并不能很好地用来完成应用开发,后来推出的 Java 1.1 弥补了第 1 版的大部分缺陷,大大改进了反射能力,并为 GUI 编程添加了新内容,但仍有很大的局限性。

​ 1998 年,JavaOne 会议上发布了 Java 1.2 版本,完善了之前玩具式的 GUI 和图形工具包。发布仅 3 天后,Sun 公司将 “Java 1.2” 改名为 “Java 2 标准版(Standard Edition,JAVA SE)软件开发包 1.2 版” 以吸引眼球。除了标准版之外,Sun 公司还推出了另外两个版本:用于手机等嵌入式设备的“微型版”(Micro Edition,Java ME)和用于服务器端处理的“企业版”(Enterprise Edition,Java EE)。此后的 1.3 和 1.4 版本对 Java 2 做出了增量式的改进,提供了不断扩展的标准类库,并提高了性能,同时修正了一些 bug,Java 逐渐成为服务器端应用的首选平台。

​ 2004 年,Java 1.5 版推出,但在当年的 JavaOne 会议后直接改为 Java 5.0 版本。Java 5.0 添加了泛型类型,且受到 C# 语言的启发,添加了 “for each” 循环、自动装箱和注解。

​ 2006 年,Java 6(没有后缀 .0)于年底发布,该版本没有对语言进行修改,而是提高了性能并增强了类库。

​ 2009 年,Sun 公司被 Oracle 公司收购,Java 开发因此停滞,直至 2011 年,Java 7 发布,但只进行了一些简单的改进。

​ 2014 年,Java 8 发布,添加了 “函数式” 的编程方式,能够轻松地表述能并发执行的计算。

​ 2017 年,Java 9 发布,实现了 “模块” 系统。该 “模块” 系统最早于 2008 年提出,耗时 11 年实现,该版本同时提供了一些新特性。

​ 2018 年后,Java 每半年就会发布一个新版本,并且每过一段时间,会将某个版本(Java 11、Java 17)指定为长期支持版本,而中间版本会提供一种试验新特性的机制。

​ 表 1-1 展示了 Java 语言及类库的演进。

表 1-1 Java 语言及类库的演进
版本 年份 新语言特性 类与接口的数量
1.0 1996 语言本身 211
1.1 1997 内部类 477
1.2 1998 strictfp 修饰符(目前已被弃用) 1524
1.3 2000 1840
1.4 2002 断言 2723
5.0 2004 泛型类、“for each” 循环、可变参数、自动装箱、元数据、枚举、静态导入 3279
6 2006 3793
7 2011 基于字符串的 Switch 语句、菱形运算符、二进制字面量、异常处理增强 4024
8 2014 Lambda 表达式、包含默认方法的接口、流和日期/时间库 4240
9 2017 模块、其他的语言和类库增强 6005
11 2018 局部变量类型推导(var)、HTTP 客户端、移除 Java FX、 JNLP、Java EE 重叠模块和 CORBA 4410
17 2021 Switch表达式、文本块、instanceof 模式匹配、记录、密封类 4859

1.5 关于 Java 的常见误解

​ 没啥误解,谢谢!

补充 1:Java 术语缩写

  • Java SE:Java Standard Edition

    Java 平台的标准版,应用于桌面环境。

  • Java EE:Java Enterprise Edition

    Java 平台的企业版,应用于基于 Java 的应用服务器。

  • Java ME:Java Micro Edition

    Java 平台的微型版,应用于移动、无线及有限资源的环境。

  • SDK:Sofare Develop Kit

    软件开发工具包,用于帮助开发人员的提高工作效率,不同类型的软件开发都有自己的 SDK。

  • JVM:Java Virtual Machine

    运行 Java 字节码的虚拟机。JVM 有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,给出相同的结果。

  • JRE:Java Runtime Environment

    Java 运行时环境,是运行已编译 Java 程序所需的所有内容的集合。主要包括 Java 虚拟机(JVM)、Java 基础类库(Class Library)。

  • JDK:Java Development Kit

    功能齐全的 Java SDK,提供给开发者使用,能够创建和编译 Java 程序。包含了 JRE,同时包含了编译 Java 源码的编译器 javac 以及一些其他工具,比如 javadoc(文档注释工具)、jdb(调试器)、jconsole(基于 JMX 的可视化监控⼯具)、javap(反编译工具)等等。文章来源地址https://www.toymoban.com/news/detail-731949.html

到了这里,关于Java 核心技术卷 I —— 第1章 Java 程序设计概述的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java技术/MYSQL+springboot小程序的社区外卖系统-70047,免费领源码【计算机毕业设计开题选题+程序定制+论文书写+答辩ppt书写 全流程 】

    本科生毕业论文(设计)  题    目 社区外卖系统小程序   学    院        XXXXX       专业班级    XXXXX 学生姓名         XXXX      指导教师              XXXX            撰写日期:2023年3月 目  录 摘要 1 绪论 1.1 研究背景 1.2 研究现状 1.3 springboot框架

    2024年02月03日
    浏览(53)
  • 程序员的周末——硬件设计中的Hello World__STM32核心板绘制

    目录 1 原理图库的创建 1.1 原理图库创建过程中用到的操作或者快捷键 2 PCB封装库的创建 2.1 PCB封装库创建过程中用到的操作或者快捷键 3 原理图设计​​​​​​​ 3.1 原理图设计过程中使用到的功能菜单或者快捷键记录 4 PCB元器件布局 4.1 布局之后完整的PCB 4.2 PCB布局过程中

    2024年01月20日
    浏览(97)
  • 定位技术课程设计-微信小程序校园导游系统

    定位技术课程设计 课程设计教学目的课程设计要求课程设计题目原题目拓展内容需求分析原理分析微信小程序API定位原理WIFI指纹定位原理路径规划算法调研详细设计总述主页面介绍学校简介页面介绍导引页面概述导引地图景点列表景点详细介绍页面搜索界面导航页面概述导

    2024年02月10日
    浏览(38)
  • Java语言程序设计课程设计

    Java语言程序设计课程设计 一、 java语言程序设计课程设计要求: (1)java语言课程设计软件设计要求 1.题目不做严格限定,可自行选择题目来完成。 2.模块化程序设计 3.锯齿型书写格式 4.必须上机调试通过 (2)撰写课程设计报告,内容包括: 1.课程设计题目; 2.需求分析;

    2024年02月08日
    浏览(44)
  • Java程序设计-实验五 Java多线程程序设计

    1. 掌握Runnable接口实现多线程的方法 2. 掌握Thread类实现多线程的用法 3. 掌握Java语言中多线程编程的基本方法 要求:编写一个应用程序,除了主线程外,还有三个线程:first、second和third。 first负责模拟一个红色的按钮从坐标(10,60)运动到(100,60); second负责模拟一

    2024年02月03日
    浏览(60)
  • Java拼图小游戏------《Java程序设计》课程设计

    目录 1.1 研究的背景  1.2 研究的意义  1.3 国内外研究现状  国内研究现状: 国外研究现状:          2.1 Java技术          2.2 GUI技术           2.3 内容设计要求及算法的实现 内容: 要求: 设计算法实现:          3.1设计流程图          3.2系统界面展示          

    2024年02月04日
    浏览(43)
  • 读程序员的README笔记14_技术设计流程(下)

    1.4.2.1. 该项目将需要至少一个月的工程时间 1.4.2.2. 变更将对软件的扩展和维护产生长期的影响 1.4.2.3. 变更将显著影响其他团队 1.5.2.1. 设计文档是一种工具,可以帮助你思考、获得反馈、让你的团队了解情况、培养新的工程师,并推动项目规划 1.5.5.1. 阅读大量的设计文档

    2024年02月04日
    浏览(41)
  • 读程序员的README笔记13_技术设计流程(上)

    3.4.1.1. 外界干扰是深度工作的“杀手” 3.4.1.2. 避免所有的交流方式 3.4.1.2.1. 关闭聊天 3.4.1.2.2. 关闭电子邮件 3.4.1.2.3. 禁用电话通知 3.4.1.2.4. 换个地方坐 3.4.2.1. 有形产出是一份设计文档 4.2.3.1. 如果有一个以上的问题,询问哪些问题是最优先的 4.3.7.1. 注意与外人交流时不

    2024年02月04日
    浏览(67)
  • SSM多源异构数据关联技术构建智能校园 64366 (免费领源码、附论文)可做计算机毕业设计JAVA、PHP、爬虫、APP、小程序、C#、C++、python、数据可视化、大数据、全套文案

    随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,高校当然也不能排除在外。多源异构数据关联技术构建的智能校园是以实际运用为开发背景,运用软件工程开发方法,采用SSM技术构建的一个智能校园系

    2024年02月06日
    浏览(43)
  • Java程序设计——作业一

    一.单选题(共3题,42.6分) 1 Java属于哪种语言?( ) A、 机器语言 B、 汇编语言 C、 高级语言 D、 以上都不对 正确答案: C 2 下面命令中,可以用来正确编译HelloWorld.java程序的是( ) A、 java HelloWorld B、 java HelloWorld.java C、 javac HelloWorld D、 javac HelloWorld.java 正确答案: D 3 以下

    2023年04月08日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包