《21天学通Java(第7版)》—— 第1章 Java基础 1.1 Java语言

简介: Java试图解决众多领域的问题,实际上也确实在这方面取得了极大的成功。它让程序员能够开发应用程序服务器和手机程序、进行科学编程、编写软件以及进行星际导航等。

本节书摘来异步社区《21天学通Java(第7版)》一书中的第1章,第1.1节,作者: 【美】Rogers Cadenhead(罗格斯 卡登海德),更多章节内容可以访问云栖社区“异步社区”公众号查看。

第1章 Java基础

Java试图解决众多领域的问题,实际上也确实在这方面取得了极大的成功。它让程序员能够开发应用程序服务器和手机程序、进行科学编程、编写软件以及进行星际导航等。

——Java语言之父James Gosling如是说

1995年首次发布时,Java编程语言是一个用于万维网的颇具创意的玩具,但有很大的发展潜力。

“潜力”是一个有时限的恭维之词。潜力迟早需要变成现实,否则将被“衰弱”、“浪费”、“失望”等取代。

通过阅读本书,读者在提高自身技能的同时,将能够对Java语言是否像它多年来被宣传的那样做出客观判断。

读者还将成为极具潜力的Java程序员。

1.1 Java语言

现在的Java是第9个主要版本,它没有辜负当时人们对它的期望。在诸如NASA、IBM、Kaiser Permanente和Google等企业和组织中,有超过400万程序员学习了该语言并正在使用它。遍布世界各地的众多大学的计算机科学系将其列为标准教学课程。Java最初用于在网页中创建简单程序,而现在已被用于众多领域,其中包括:

  • Web服务器;
  • 关系型数据库;
  • 轨道望远镜;
  • 电子图书阅读器;
  • 手机。

对Web开发人员来说,Java仍很有帮助,但其应用领域已远远超出Web,成为最流行的通用编程语言之一。

1.1.1 Java的历史

现在,有关Java语言的故事已是家喻户晓。20世纪90年代中期,Sun公司的James Gosling和一个开发人员团队致力于开发一个交互式TV项目,Gosling对正在使用的C++感到失望。C++是一种面向对象编程语言,于20世纪80年代(比Java早了10年)在C语言的基础上开发。

Gosling把自己关在办公室,创建了一种适合其项目的语言,该语言解决了C++中一些令其失望的问题。

这个交互式TV项目以失败告终,但出乎人们意料的是,在此期间开发出来的新语言却适用于此时逐渐流行的一种新媒体——万维网。

Java于1995年首次与公众见面。虽然与C++(以及当今的Java)相比,该语言的大多数特性太初级,但被称作小程序(applet)的Java程序可作为网页的一部分运行在当时最流行的浏览器Netscape Navigator中。

这种功能——第一种用于Web的交互式编程技术——给这种新语言提供了极大的舆论攻势,在短短的6个月内便吸引了数十万开发人员。

在人们对Java Web编程技术的好奇过后,该语言的整体优势逐渐明朗,程序员们仍在继续使用它。有些调查表明,当前Java程序员人数超过了C++程序员。

自面世以来,Java语言的发展始终受Sun公司控制,但到2010年,情况发生了变化。2010年,Sun公司被数据库和企业软件巨头Oracle以74亿美元的价格收购。长期以来,Oracle一直在其产品中使用Java,存在支持Java的强烈愿望,并不断在新版本中改善其功能。

1.1.2 Java概述

Java是一种面向对象的、独立于平台的安全语言,它比C++更容易学习,且比C和C++更能避免被误用。

面向对象编程(OOP)是一种软件开发方法,将程序视为一组协同工作的对象。对象是使用被称作类的模板创建的,它们由数据和使用数据所需的语句组成。Java是完全面向对象的,在本章后面,当您创建第一个类并使用它来创建对象时将明白这一点。

独立于平台指的是程序无须修改便能运行在不同的计算环境中。Java程序被编译成一种名为字节码的格式,而字节码可被任何带Java虚拟机(JVM)的计算机或设备运行。您可以在Windows 10机器上创建Java程序,然后在Linux Web服务器、使用OS 10.10的Apple Mac和三星Android手机上运行。只要平台安装了JVM,就能运行字节码。

虽然比其他语言更容易学习是程序员们争论的焦点之一,但Java主要在以下方面比C++更容易。

Java自动负责内存的分配和释放,将程序员从这种容易出错而复杂的工作中解放出来。
Java没有指针。对经验丰富的程序员来说,指针是一种功能强大的特性,但也容易误用以及带来严重的安全隐患。
Java只具备面向对象编程中的单继承。
Java之所以安全的两个关键因素是没有指针且能自动管理内存。

1.1.3 选择开发工具

介绍Java后,接下来应用其中的一些概念,创建您的第一个Java程序。

在读者从头到尾阅读本书后,将对Java的功能有深入了解,包括图形、文件输入和输出、XML处理和Android应用程序开发。您将能编写运行在网页、个人计算机和Web服务器以及其他计算环境中的Java程序。

开始编写程序之前,您必须在计算机上安装用于编辑、编译和运行Java程序(这些程序使用的是最新的Java 8版本)的软件。

有多种流行的集成开发环境(IDE)支持Java 8,如IntelliJ IDEA和开源软件Eclipse。

如果您在学习Java语言的同时学习使用这些工具,将是一项非常艰巨的任务。大多数IDE主要针对的是需要提高效率的、经验丰富的程序员,而不是刚开始学习一门新语言的新手。

最简单的Java开发工具是Java开发包。

每当Oracle发布新的Java版本时,都会在网上提供一个支持该版本的免费开发包。最新的版本为Java SE Development Kit 8。

出于简化的目的,本书通常将该语言及其开发包简称为Java和JDK。

使用JDK开发Java程序的缺点在于,这是一组命令行工具,因此没有用于编辑程序、将其转换为Java类并进行测试的图形用户界面。命令行是用于输入文本命令的提示符,在Windows中为程序“命令提示符”。

Oracle向Java程序员提供了优秀的免费IDE——NetBeans。对大多数人来说,NetBeans都比JDK更易于使用,因此本书将使用NetBeans。

如果您的计算机没有安装任何Java开发工具,而您又想尝试一下NetBeans,可参阅附录A,它简要地介绍了如何使用该软件,包括如何下载并安装NetBeans,以及如何使用它来创建一个Java程序,以确保该程序能正确运行。

在计算机上安装支持Java 8的Java开发工具后,便可以开始学习使用该语言了。如果您的计算机没有安装这样的工具,现在该安装了——最好是NetBeans。

在本书的第21章,将使用IDE Android Studio(一种IntelliJ IDEA)来创建移动应用。

相关文章
|
1天前
|
设计模式 缓存 Java
重学Java基础篇—Java对象创建的7种核心方式详解
本文全面解析了Java中对象的创建方式,涵盖基础到高级技术。包括`new关键字`直接实例化、反射机制动态创建、克隆与反序列化复用对象,以及工厂方法和建造者模式等设计模式的应用。同时探讨了Spring IOC容器等框架级创建方式,并对比各类方法的适用场景与优缺点。此外,还深入分析了动态代理、Unsafe类等扩展知识及注意事项。最后总结最佳实践,建议根据业务需求选择合适方式,在灵活性与性能间取得平衡。
32 3
|
1天前
|
安全 IDE Java
重学Java基础篇—Java泛型深度使用指南
本内容系统介绍了Java泛型的核心价值、用法及高级技巧。首先阐述了泛型在**类型安全**与**代码复用**中的平衡作用,解决强制类型转换错误等问题。接着详细讲解了泛型类定义、方法实现、类型参数约束(如边界限定和多重边界)、通配符应用(PECS原则)以及类型擦除的应对策略。此外,还展示了泛型在通用DAO接口、事件总线等实际场景的应用,并总结了命名规范、边界控制等最佳实践。最后探讨了扩展知识,如通过反射获取泛型参数类型。合理运用泛型可大幅提升代码健壮性和可维护性,建议结合IDE工具和单元测试优化使用。
8 1
|
1天前
|
安全 IDE Java
重学Java基础篇—Java Object类常用方法深度解析
Java中,Object类作为所有类的超类,提供了多个核心方法以支持对象的基本行为。其中,`toString()`用于对象的字符串表示,重写时应包含关键信息;`equals()`与`hashCode()`需成对重写,确保对象等价判断的一致性;`getClass()`用于运行时类型识别;`clone()`实现对象复制,需区分浅拷贝与深拷贝;`wait()/notify()`支持线程协作。此外,`finalize()`已过时,建议使用更安全的资源管理方式。合理运用这些方法,并遵循最佳实践,可提升代码质量与健壮性。
11 1
|
12天前
|
存储 Java 数据安全/隐私保护
Java语言位运算符详解
Java语言提供了7种位运算符:按位与(&)、按位或(|)、按位异或(^)、取反(~)、左移(<<)、带符号右移(>>)和无符号右移(>>>)。这些运算符主要用于对long、int、short、byte和char类型的数据进行二进制位级别的操作,不能用于double、float和boolean类型。文中详细讲解了每种运算符的规则和应用场景,并指出位运算在实际开发中有重要应用价值,不仅限于面试。
|
1月前
|
存储 缓存 Java
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
144 3
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
|
1天前
|
Java 开发者
重学Java基础篇—Java类加载顺序深度解析
本文全面解析Java类的生命周期与加载顺序,涵盖从加载到卸载的七个阶段,并深入探讨初始化阶段的执行规则。通过单类、继承体系的实例分析,明确静态与实例初始化的顺序。同时,列举六种触发初始化的场景及特殊场景处理(如接口初始化)。提供类加载完整流程图与记忆口诀,助于理解复杂初始化逻辑。此外,针对空指针异常等问题提出排查方案,并给出最佳实践建议,帮助开发者优化程序设计、定位BUG及理解框架机制。最后扩展讲解类加载器层次与双亲委派机制,为深入研究奠定基础。
15 0
|
2月前
|
Oracle Java 关系型数据库
Java基础(一):语言概述
Java基础(一):语言概述
71 15
Java基础(一):语言概述
|
1月前
|
缓存 Java 应用服务中间件
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
169 5
|
15天前
|
Java 开发者
课时2:Java语言特点
课时2介绍了Java语言的多个关键特性。作为开源且半开源的产品,Java成为通用技术标准,拥有透明的开发环境。其面向对象的设计、自动内存回收、简化指针处理(使用引用)、支持多线程编程、高效的网络处理能力(如NIO)及良好的可移植性,共同促成了Java的强大生态系统和广泛应用。
|
2月前
|
存储 移动开发 算法
【潜意识Java】Java基础教程:从零开始的学习之旅
本文介绍了 Java 编程语言的基础知识,涵盖从简介、程序结构到面向对象编程的核心概念。首先,Java 是一种高级、跨平台的面向对象语言,支持“一次编写,到处运行”。接着,文章详细讲解了 Java 程序的基本结构,包括包声明、导入语句、类声明和 main 方法。随后,深入探讨了基础语法,如数据类型、变量、控制结构、方法和数组。此外,还介绍了面向对象编程的关键概念,例如类与对象、继承和多态。最后,针对常见的编程错误提供了调试技巧,并总结了学习 Java 的重要性和方法。适合初学者逐步掌握 Java 编程。
59 1