详情
我们针对图书内容开发了在线编程练习题,并提供了在线编程环境,您可以边读书,边练习,在线编程,双效合一! 购买【异步社区VIP会员】或直接购买以下图书的【e读版电子书】后,即可在线畅读全书,并可通过章节末尾入口进入在线编程练习!了解更多精品图书在线编程实验课:https://www.epubit.com/topicsDetails?id=877f112b-febb-49f4-b203-ec6432852759
我们针对图书内容开发了在线编程练习题,并提供了在线编程环境,您可以边读书,边练习,在线编程,双效合一! 购买【异步社区VIP会员】或直接购买以下图书的【e读版电子书】后,即可在线畅读全书,并可通过章节末尾入口进入在线编程练习!了解更多精品图书在线编程实验课:https://www.epubit.com/topicsDetails?id=877f112b-febb-49f4-b203-ec6432852759
书名:Java 开发从入门到精通(第2版)
ISBN:978-7-115-50410-4
本书由人民邮电出版社发行数字版。版权所有,侵权必究。
您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
编 著 扶松柏 王 洋 陈小玉
责任编辑 张 涛
人民邮电出版社出版发行 北京市丰台区成寿寺路11号
邮编 100164 电子邮件 315@ptpress.com.cn
网址 http://www.ptpress.com.cn
读者服务热线:(010)81055410
反盗版热线:(010)81055315
本书专门介绍Java编程,主要内容包括:Java基础知识、Java语法基础、条件语句、循环语句、数组、Java面向对象编程、集合、常用的类库、泛型、异常处理、I/O文件处理和流程、AWT、Swing、JavaFX基础知识、UI组件、事件处理程序、基于JavaFX框架的Web和多媒体开发、数据库编程、网络与通信编程、多线程和进程等。本书适合Java开发人员阅读,也适合计算机相关专业的师生阅读。
你从开始学习编程的那一刻起,就注定了以后所要走的路:从编程学习者开始,依次经历实习生、程序员、软件工程师、架构师、CTO等职位的磨砺。当你站在职位顶峰的位置蓦然回首时,会发现自己的成功并不是偶然,在程序员的成长之路上会有不断修改代码、寻找并解决Bug、不停地测试程序和修改项目的经历。不可否认的是,只要你在自己的开发生涯中稳扎稳打,并且善于总结和学习,最终将会得到可喜的收获。
对于一名想从事程序开发的初学者来说,究竟如何学习才能提高自己的开发技术呢?一个答案就是买一本合适的程序开发图书进行学习。但是,市面上许多面向初学者的编程图书都侧重基础知识的讲解,更偏向于理论,读者读了以后在面对实战项目时还是无从下手。如何从理论平滑过渡到项目实战,是初学者的痛点,为此,作者特意编写了本书。
本书涵盖了入门类、范例类和项目实战类3类图书的内容。另外,对实战知识不是点到为止地讲解,而是深入地探讨。用纸质书+配套资源+网络答疑的方式,完美实现了入门+范例练习+项目实战,帮助读者顺利适应项目实战的角色。
为了使读者能够完全看懂本书的内容,本书遵循“从入门到精通”基础类图书的写法,循序渐进地讲解Java语言的基本知识。
本书不会罗列式讲解Java语言的知识点,为了帮助读者学懂基本知识点,每章都会有“技术解惑”板块,让读者知其然又知其所以然,也就是看得明白,学得通。
通过大量实例及范例,本书不仅实现了对知识点的横向切入和纵向比较,还从不同的角度展现一个知识点的用法,真正实现了举一反三的效果。
书中每一章均提供语音教学视频,这些视频能够引导初学者快速入门,增强学习的信心,从而快速理解所学知识。
因为本书篇幅有限,不可能用一本书囊括“基础+范例+项目案例”的诸多内容,所以需要配套的资源来实现。本书的配套资源中不但有全书的源代码,而且有精心制作的实例讲解视频。本书的配套资源可以在toppr网站下载。
为了方便给读者答疑,本书作者特提供了网站论坛、QQ群(943546773)等技术支持,并且随时在线与读者互动。让大家在互学互帮中形成一个良好的学习编程的氛围。
本书的学习论坛参见toppr网站。
本书由浅入深地详细讲解了Java的开发技术,并通过具体实例的实现过程演练了各个知识点的具体使用流程。本书共25章。第1~2章讲解了计算机基础和Java开发入门,以及如何编写第一段Java程序;第3~9章讲解了Java语法、条件语句、循环语句、数组、面向对象等知识,这些内容都是Java开发技术的核心知识;第10~14章讲解了集合、类库、泛型、异常处理、I/O文件处理的基本知识,这些内容是Java开发技术的重点和难点;第15~21章讨论桌面开发技术,包括AWT技术、Swing技术和JavaFX技术的基本知识;第22~25章是典型应用内容,讲解了数据库编程、网络与通信编程、多线程和案例。书中以“技术讲解”“范例演练”“技术解惑”贯穿全书,引领读者全面掌握Java语言的开发技术。
本书最大的特色是实现了入门知识、实例演示、范例演练、技术解惑四大部分内容的融合。其中各章内容由如下模块构成。
十分感谢我的家人给予我的巨大支持。本人水平毕竟有限,书中难免存在纰漏之处,恳请读者提出意见或建议,以便修订并使之更臻完善。编辑联系邮箱是zhangtao@ptpress.com.cn。
最后感谢读者购买本书,希望本书能成为读者编程路上的好帮手。
作者
本书由异步社区出品,社区(https://www.epubit.com/)为您提供相关资源和后续服务。
本书配套资源包括书中示例的源代码。
要获得以上配套资源,请在异步社区本书页面中单击,跳转到下载界面,按提示进行操作即可。注意,为保证购书读者的权益,该操作会给出相关提示,要求输入提取码进行验证。
如果您是教师,希望获得教学配套资源,请在社区本书页面中直接联系本书的责任编辑。
作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。
当您发现错误时,请登录异步社区,按书名搜索,进入本书页面,单击“提交勘误”,输入勘误信息,单击“提交”按钮即可(见下图)。本书的作者和编辑会对您提交的勘误进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。
我们的联系邮箱是contact@epubit.com.cn。
如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。
如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们;有意出版图书的作者也可以到异步社区在线提交投稿(直接访问www.epubit.com/selfpublish/submission即可)。
如果您所在的学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。
如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接发邮件给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。
“异步社区”是人民邮电出版社旗下IT专业图书社区,致力于出版精品IT技术图书和相关学习产品,为作译者提供优质出版服务。异步社区创办于2015年8月,提供大量精品IT技术图书和电子书,以及高品质技术文章和视频课程。更多详情请访问异步社区官网https://www.epubit.com。
“异步图书”是由异步社区编辑团队策划出版的精品IT专业图书的品牌,依托于人民邮电出版社近30年的计算机图书出版积累和专业编辑团队,相关图书在封面上印有异步图书的LOGO。异步图书的出版领域包括软件开发、大数据、AI、测试、前端、网络技术等。
异步社区
微信服务号
Java是一门神奇的编程语言,一直雄居各编程语言排行榜的榜首,用它开发的软件遍布各行各业。为什么Java语言如此受开发者追捧呢?它究竟有什么突出的优势,使之能够从众多的编程语言中脱颖而出?本章将一步步引领读者了解Java这门编程语言的强大之处。
知识点讲解:
计算机(Computer)是一种能按照某些预定的程序(这些程序往往体现的是人类的意志)对输入到其中的信息进行处理,并将处理结果输出的高度自动化的电子设备。本节将介绍计算机应用的基础知识,为读者步入本书后面知识的学习打下基础。
中央处理器(Central Processing Unit,CPU)是一块超大规模的集成电路,通常是一台计算机的运算核心和控制核心,主要包括算术和逻辑单元(Arithmetic and Logic Unit,ALU)和控制器(Control Unit,CU)两大部件。此外,还包括若干个寄存器和存储器,以及用于实现它们之间联系的数据、控制及状态总线。CPU与内部存储器和输入/输出设备合称为电子计算机三大核心部件,其功能主要是执行计算机指令以及处理计算机软件中的数据。计算机的性能在很大程度上由CPU的性能决定,而CPU的性能主要体现在其运行速度上。
比特音译自英文名词bit。在现实应用中,比特是表示信息量的一种单位。二进制数中的位表示信息量的度量单位,为信息量的最小单位。二进制数中的一位所包含的信息就是1比特,如二进制数0100就是4比特。在计算机应用中,二进制数0和1是构成信息的最小单位,被称作“位”或“比特”。例如数字化音响中用电脉冲表达音频信号,“1”代表有脉冲,“0”代表脉冲间隔。如果波形上每个点的信息用4位一组的代码表示,则称4比特,比特数越大,表达的模拟信号就越精确,对音频信号的还原能力就越强。
字节(Byte)是计算机信息技术用于计量存储容量的一种计量单位,有时也表示一些计算机编程语言中的数据类型和语言字符。
在计算机应用中,由若干比特组成1字节。字节由多少比特组成取决于计算机的自身结构。通常来说,微型计算机的CPU多用8位组成1字节,用以表示一个字符的代码,构成1字节的8位被看作一个整体,字节是存储信息的基本单位。大多数情况下,计算机存储单位的换算关系如下所示。
1B=8bit
1KB=1024B
1MB=1024KB
1GB=1024MB
上述关系中各个单位的具体说明如下所示。
二进制是计算技术中被广泛采用的一种数制,是使用0和1两个数码来表示数字的数制。二进制的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼茨发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一种非常微小的开关,用“开”表示1,用“关”表示0。因为只使用0、1两个数字符号,所以二进制非常简单方便,易于用电子方式实现。
下面介绍如何从十进制转换成二进制。
二进制 1 0 1 0
补齐位数 0 0 0 0 1 0 1 0
进行“n×2m”计算 0×27 0×26 0×25 0×24 1×23 0×22 1×21 0×20
计算结果 0 0 0 0 8 0 2 0
将各位求和的结果是10。所以,将二进制1010转换为十进制的结果是10。
如果要转换的二进制数补足位数后首位为1,表示这个二进制数是负整数。此时就需要先进行取反,再进行换算。例如,二进制数11101011的首位为1,那么先取反,得到−00010100,然后按照上面的计算过程得出10100对应的十进制数为20,所以二进制数11101011对应的十进制数为−20。
美国信息交换标准代码(American Standard Code for Information Interchange,ASCII)是基于拉丁字母的一套计算机编码系统,主要用于显示现代英语和其他西欧语言。ASCII是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。
一个英文字母(不分大小写)占1字节的空间,一个中文汉字占2字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制后,最小值为0,最大值为255。例如,一个ASCII码就是1字节。
Unicode(又称统一码、万国码或单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode是为了解决传统的字符编码方案的局限性而产生的,它为每种语言中的每个字符设定统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
最初的Unicode编码采用固定长度的16位,也就是2字节代表一个字符,这样一共可以表示65 536个字符。显然,要表示各种语言中所有的字符,这是远远不够的。Unicode 4.0规范考虑到了这种情况,定义了一组附加字符编码,附加字符编码采用两个16位来表示,这样最多可以定义1 048 576个附加字符,在Unicode 4.0规范中只定义了45 960个附加字符,在Unicode 5.0版本中已定义的字符有238 605个。
Unicode只是一种编码规范,目前实际实现的Unicode编码只有3种——UTF-8、UCS-2和UTF-16。这3种Unicode字符集之间可以按照规范进行转换。
UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。UTF-8由Ken Thompson于1992年创建,现在已经标准化为RFC 3629。UTF-8用1~6字节编码Unicode字符,用在网页上,可以统一页面显示的中文简体及其他语言(如英文、日文、韩文)。一个UTF-8英文字符等于1字节。一个UTF-8中文(含繁体)字符,少数占用3字节,多数占用4字节。一个UTF-8数字占用1字节。
知识点讲解:
纵观各大主流招聘媒体,总是会看到多条招聘Java程序员的广告。由此可以看出,Java程序员很受市场欢迎。本节将带领大家初步认识一下Java这门语言,为读者随后步入本书后面知识的学习打下基础。
我们通常所说的Java,指的是Sun公司在1995年5月推出的一套编程架构,它主要由Java程序设计语言(以后简称Java语言)和Java运行时环境两部分组成。用Java实现的HotJava浏览器(支持Java Applet)向我们展示了Java语言的魅力——跨平台、动态Web开发及Internet计算。当时,人们通过HotJava浏览器上运行的Java Applet程序,看到了Java是一门具有跨平台能力的程序设计语言,因而在动态Web开发及Internet计算领域有着巨大的潜力。从那以后,Java便被广大程序员和企业用户广泛接受,成为最受欢迎的编程语言之一。
当然,Java程序需要在Java平台的支持下运行,Java平台则主要由Java虚拟机(Java Virtual Machine,JVM)和Java应用编程接口(Application Programming Interface,API)构成。我们需要在自己的设备上安装Java平台之后,才能运行Java应用程序。关于这一点,读者倒是不必太担心,如今所有操作系统都有相应版本的Java平台,我们只需要按照相关的指示安装好它们,然后我们的Java程序只需要编译一次,可以在各种操作系统中运行了。
Java分为如下3个体系。
“TIOBE编程语言社区排行榜”是众多编程语言爱好者心目中的权威榜单。TIOBE榜单每月更新一次,上面的排名客观公正地展示了各门编程语言的地位。TIOBE排行榜的排名基于互联网上有经验的程序员、课程和第三方厂商的数量,TIOBE编程语言社区排行榜使用著名的搜索引擎(诸如Google、MSN、Yahoo!、Wikipedia、YouTube以及Baidu等)进行计算。都说“长江后浪推前浪,一浪更比一浪强”,但是在编程榜单上,Java和C语言的二人转已经表演多年,程序员也早已习惯C语言和Java的二人转局面。截至2018年9月,Java语言和C语言依然是最大的赢家。表1-1显示了最近两年榜单上前两名编程语言的排名信息。
表1-1 2017~2018年编程语言使用率统计
2018年排名 |
2017年排名 |
语言 |
2018年占有率(%) |
和2017年相比(%) |
---|---|---|---|---|
1 |
1 |
Java |
17.436 |
4.75 |
2 |
2 |
C |
15.447 |
8.06 |
由表1-1的统计数据可以看出,最近两年Java语言一直位居榜首。虽然TIOBE编程语言社区排行榜只反映某编程语言的热门程度,并不能说明一门编程语言本身设计的优劣,或者使用一门编程语言编写的代码量的多少,但是这个排行榜可以考查大家的编程技能是否与时俱进,也可以在开发新系统时作为语言选择依据。Java的功能比较强大,在服务器端应用、移动设备端应用、桌面应用和Web应用的开发中都占据重要的地位,所以占据排行榜榜首是非常正常的。
在现实应用中,Java语言主要应用于如下领域。
Java语言开发技术博大精深。正是因为如此,Java一直深受广大程序员的喜爱。作为一名初学者,肯定会在学习过程中遇到很多疑问和困惑。在本节的内容中,作者将自己的心得体会告诉大家,帮助读者解惑。
(1)学得要深入,基础要扎实。
基础的作用不必多说,在大学课堂上讲过很多次,在此重点说明“深入”。职场不是学校,企业要求你能高效地完成项目,但是现实中的项目种类繁多,我们需要从基础上掌握Java技术的精髓。走马观花式的学习已经被社会淘汰,入门水平不会被IT公司接受,他们需要的是高手。
(2)恒心,演练,举一反三。
学习编程的过程是枯燥的,我们需要将学习Java当成自己的乐趣,只有做到持之以恒才能有机会学好。另外,编程最注重实践,最忌讳闭门造车。每一个语法,每一个知识点,都要反复用实例来演练,这样才能加深对知识的理解。要做到举一反三,只有这样才能对知识有深入的理解。
对于很多具有C语言基础的读者来说,在Java的众多突出特性之中,垃圾回收机制是首先要习惯的一个,因为在他们之前的习惯中,动态分配的对象所占的内存会在程序结束运行之前一直被占用,在明确释放之前不能分配给其他对象;而在Java中,当没有对象引用指向原先分配给某个对象的内存时,该内存便被垃圾回收机制视为垃圾,后者是JVM中的一个系统级线程,它会自动释放这样的内存块,垃圾被回收意味着程序不再需要的对象是“无用信息”,这些信息将被丢弃。当一个对象不再被引用时,JVM就会回收它占用的内存,以便该内存能被后来的新对象使用。事实上,除了释放没用的对象之外,垃圾回收机制也会清除内存中的碎片。这些碎片是由于创建对象以及垃圾回收机制释放对象占用的内存空间造成的,碎片是分配给对象的内存块之间的空闲内存洞。执行碎片整理会将占用的堆内存移到堆的一端,JVM则将整理出的内存分配给新的对象。
垃圾回收机制能自动释放内存空间,这样做可以减轻编程人员的负担,赋予Java虚拟机一些优点。它能提高编程效率。在没有垃圾回收机制的时候,可能要花许多时间来解决让人费解的存储器问题。在用Java语言编程时,靠垃圾回收机制可大大缩短时间。另外,它能保护程序的完整性,垃圾回收是Java语言安全性策略的一个重要部分。
垃圾回收的一个潜在缺点是,它的开销会影响程序性能。Java虚拟机必须追踪所运行程序中有用的对象,而且最终释放没用的对象。这个过程需要占用处理器。另外,垃圾回收机制在算法上的不完备性,也会使得早先采用的某些垃圾回收不能保证100%回收所有的废弃内存。当然,随着垃圾回收算法的不断改进以及软硬件运行效率的不断提升,这些问题都终将得到解决。
Java API文档是Java官方为广大程序员提供的一份福利,里面详细介绍了类、方法和变量的解释说明。如果开发人员对正在使用的类不熟悉,想查看类里面定义的变量或方法,就可以打开Java API文档进行阅读和查看。Oracle官网上的在线Java API文档如图1-1所示。
图1-1 在线Java API文档
(1)二进制数00101110转换成十进制数的结果是______________。
(2)二进制数00101110转换成十六进制数的结果是______________。
(3)在网络中寻找在线的进制转换工具,练习将不同的数字转换成不同的进制。
经过对本书第1章内容的学习,相信大家已经了解了Java语言的基本特点。从本章内容开始,我们将和大家一起来学习Java语言的基本知识。当然,在学习具体语法知识之前,我们会首先介绍一下如何搭建Java开发环境。然后,我们会通过一段实例程序来介绍Java的运作机制,为后面的学习打下良好的基础。
知识点讲解:
“工欲善其事,必先利其器”,这一说法也同样适用于编程领域,因为学习Java开发也离不开一款好的开发工具。但是在使用开发工具进行Java开发之前,我们需要先安装好JDK,并对其进行相关设置。
如前所述,在进行任何Java开发之前,我们都必须先安装好JDK,并配置好相关的环境,这样我们才能开始在自己的计算机中编译并运行Java程序。显然,JDK(Java Development Kit)是我们整个Java开发环境的核心,它包括Java运行环境(JRE)、Java工具和Java基础类库,这是开发和运行Java程序的基础。所以,接下来我们首先要获得与自己当前所用操作系统对应的JDK,具体操作如下。
(1)虽然Java语言是Sun公司发明的,但是Sun公司已经被Oracle收购,所以我们安装JDK的工作得从Oracle中文官方网站上找到相关的下载页面开始。Oracle官方下载页面如图2-1所示。
图2-1 Oracle官方下载页面
(2)在该页面上单击“JavaSE”链接,弹出Java下载界面,如图2-2所示。
图2-2 Java下载界面
(3)单击图2-2中的“Java SE”链接,弹出Java SE下载界面,如图2-3所示。
图2-3 Java SE下载界面
(4)继续单击“Oracle JDK”下方的“DOWNLOAD”按钮,弹出JDK下载界面,如图2-4所示。
图2-4 JDK下载界面
(5)在图2-4中,你会看到有很多版本的JDK,这时读者就需要根据自己当前所用的操作系统来下载相应的版本了。下面我们对各版本对应的操作系统做具体说明。
注意:随着官方对Java 11的更新,官方可能会对上述不同系统分别推出32位版本和64位版本,读者可以随时关注官网的变化。例如下面的情况。
在这里,因为作者计算机中的操作系统是64位的Windows系统,所以在选中图2-4中的“Accept License Agreement”单选按钮后,单击的是“Windows”后面的“jdk-11_windows- x64_bin.exe”下载链接。如果下载的版本和自己的操作系统不对应,后续在安装JDK时就会面临失败。
(6)待下载完毕后,就可以双击下载的“.exe”文件,开始进行安装了,将弹出安装向导,单击“下一步”按钮,如图2-5所示。
图2-5 安装向导
(7)安装程序将会弹出“定制安装”对话框,可以选择JDK的安装路径,作者设置的是“C:\Program Files\Java\jdk-11\”,如图2-6所示。
图2-6 “定制安装”对话框
(8)设置好安装路径后,我们继续单击“下一步”按钮,安装程序就会提取安装文件并进行安装,如图2-7所示。
图2-7 解压缩下载的文件
(9)安装程序在完成上述过程后会弹出“完成”对话框,单击“关闭”按钮即可完成整个安装过程,如图2-8所示。
图2-8 完成安装
(10)检测一下JDK是否真的安装成功了,具体做法是依次单击“开始”︱“运行”,在“运行”对话框中输入“cmd”并按Enter键,在打开的CMD窗口中输入java–version。如果显示图2-9所示的提示信息,则说明安装成功。
图2-9 验证JDK安装成功
如果在CMD窗口中输入java –version命令后提示出错,则表明我们的Java JDK并没有完全安装成功。这时候读者不用紧张,只需要将JDK所在目录的绝对路径添加到系统变量PATH中即可解决。下面介绍该解决办法的流程。
(1)右击“我的电脑”,选择“属性”︱“高级系统设置”,单击下面的“环境变量”,在下面的“系统变量”处选择“新建”,在“变量名”处输入JAVA_HOME,在“变量值”处输入刚才的目录,比如作者使用的“C:\Program Files\Java\jdk-11\”,如图2-10所示。
图2-10 设置系统变量
(2)新建一个变量,名为CLASSPATH,变量值如下所示,注意最前面分别有英文格式的一个句点和一个分号。
.;%JAVA_HOME%/lib;%JAVA_HOME%\lib\tools.jar
单击“确定”按钮,找到PATH变量,双击或单击进行编辑,在变量值的最前面添加如下值。
%JAVA_HOME%/bin;
具体如图2-11所示。
图2-11 编辑系统变量
如果读者使用的是Windows 10系统,在设置系统变量PATH时,操作会和上面的步骤有所区别。因为在Windows 10系统中选中PATH变量并单击“编辑”按钮后,会弹出与之前Windows系统不同的“编辑环境变量”对话框,如图2-12所示。我们需要单击右侧的“新建”按钮,然后才能添加JDK所在目录的绝对路径,而不能用前面步骤中使用的“%JAVA_ HOME%”,此处需要分别添加Java JDK的绝对路径,例如作者的安装目录是“C:\Program Files\Java\jdk-11\”,所以需要分别添加如下两个变量值。
C:\Program Files\Java\jdk-11\bin
注意,在图2-12所示的界面中,一定要确保“C:\Program Files\Java\jdk-11\bin”选项在“C:\Program Files (x86)\Common Files\Oracle\Java\javapath”选项的前面(上面),否则会出错。
图2-12 为Windows 10的系统变量PATH添加变量值
完成上述操作后,我们可以依次单击“开始”︱“运行”,在“运行”对话框中输入“cmd”并按Enter车键,然后在打开的CMD窗口中输入java–version,读者应该会看到图2-13所示的提示信息,输入javac会显示图2-14所示的提示信息,这就说明Java JDK安装成功了。
图2-13 输入java–version
图2-14 输入javac
知识点讲解:
在完成Java开发环境的安装和配置之后,我们就要开始编写一段Java程序了。然后,我们还要编译这段Java程序并让它运行起来。下面就正式开始我们的Java编程之旅吧!
现在,让我们打开记事本程序,并在其中输入下面的代码。
(源码路径:daima\2\first.java)
public class first{
/*这是一个 main方法*/
public static void main(String [] args){
/* 输出此消息 */
System.out.println("第一段Java程序!");
}
}
然后将该文件保存为first.java。请注意,文件名“first.java”中的字符“first”一定要和代码行“public class first”中的字符“first”一致,并且字母大小写也必须完全一致,否则后面的编译步骤将会失败,如图2-15所示。
图2-15 用记事本编辑文件first.java
注意:可以用来编写Java程序的编辑器。可以使用任何无格式的纯文本编辑器来编辑Java源代码,在Windows操作系统中可以使用记事本(NotePad)、EditPlus等程序,在Linux平台上可使用vi命令等。但是不能使用写字板和Word等文档编辑器来编写Java程序,因为写字板和Word等工具是有格式的编辑器,当我们使用它们编辑一个文档时,这个文档中会包含一些隐藏的格式化字符,这些隐藏字符会导致程序无法正常编译和运行。
关键字指的是Java系统保留使用的标识符,也就是说,这些标识符只有Java系统才能使用,程序员不能使用这样的标识符。例如在first.java中,public就是一个关键字。另外,关键字还是Java中的特殊保留字。下面我们通过表2-1来具体看一下Java中到底有哪些关键字。
表2-1 Java关键字
另外,true、false和null也都是Java中定义的特殊字符,虽然它们不属于关键字,但也不能被用作类名、方法名和变量名等。另外,表2-1中的goto和const是两个保留字(reserved word)。保留字的意思是,Java现在还未使用这两个单词作为关键字,但可能在未来的Java版本中使用这两个单词作为关键字。
标识符指的是赋予类、方法或变量的名称。在Java语言中,我们通常会用标识符来识别类名、变量名、方法名、类型名、数组名和文件名。例如在first.java中,代码行“public class first”中的“first”就是一个标识符,它标识的是一个类,该类被命名为“first”。
按照Java语法的规定,标识符可以由大小写字母、数字、美元符号($)组成,但不能以数字开头,标识符没有最大长度限制。例如下面都是合法的标识符。
Chongqin$
D3Tf
Two
$67.55
关于标识符的合法性,主要可以参考下面4条规则。
由于标识符是严格区分大小写的,因此在Java中no和No是完全不同的。除此之外,还需要注意的是,虽然$符号在语法上允许使用,但我们会在编码规范中建议读者尽量不要使用,因为它很容易带来混淆。
注意:在Java 8版本中,如果在标识符中使用了下划线“_”,那么Java编译器会将其标记为警告。如果在lambda(正则)表达式中使用了下划线“_”,则直接将其标记为错误。在Java 10版本中,在任何情况下使用下划线“_”都会被标记为错误。
代码中的注释是程序设计者与程序阅读者之间通信的桥梁,它可以最大限度提高团队开发的效率。另外,注释也是实现程序代码可维护性的重要环节之一。所以程序员不能为写注释而写注释,而应该为了提高代码的可读性和可维护性而写注释。
因为注释不会影响程序的运行,和程序代码的功能无关,所以即使没有注释,也不会妨碍程序的功能。尽管如此,我们还是建议读者养成在代码中添加注释的习惯。在Java程序中有如下3种添加注释的方式。
(1)单行(single-line)注释:使用双斜杠“//”写一行注释内容。
(2)块(block)注释:使用“/*……*/”格式(以单斜杠和一个星号开头,以一个星号和单斜杠结尾)可以写一段注释内容。
(3)文档注释:使用“/**……*/”格式(以单斜杠和两个星号开头,以一个星号和单斜杠结尾)可以生成Java文档注释,文档注释一般用于方法或类。
例如,在first.java中我们还可以在代码中添加以下注释。
/*
多行注释开始:
开始定义一个类
类的名字是first
first中的f是小写的
*/
public class first{
/**
*文档注释部分
* main是一个方法,程序的执行总是从这个方法开始
* @author toppr(作者信息)
*
*/
public static void main(String [] args){
/*虽然是多行注释,但是也可以只写一行:输出此消息 */
System.out.println("第一段Java程序!"); //单行注释:能够输出一段文本
}
}
在上述代码中,我们对3种注释方式都做了示范,其中单行注释和块注释部分很容易理解,而文档注释通常由多行构成,一般分多行分别介绍某个类或方法的功能、作者、参数和返回值的信息。
在Java语言中,main()方法被认为是应用程序的入口方法。也就是说,在运行Java程序的时候,第一个被执行的方法就是main()方法。这个方法和Java中的其他方法有很大的不同,比如,方法的名字必须是main,方法的类型必须是public static void,方法的参数必须是一个String[]类型的对象等。例如在前面的first.java中,main()方法就负责整个程序的加载与运行。如果一个Java程序没有main()方法,该程序就没法运行。
控制台(Console)的专业名称是命令行终端,是无图形界面程序的运行环境,它会显示程序在运行时输入/输出的数据。我们在图2-13中看到的就是控制台在输入java version命令之后显示的信息。当然,控制台程序只是众多Java程序中的一类,本书前面章节中的实例都是控制台程序,例如first.java就是一个控制台程序,执行后会显示控制台界面,如图2-16所示。具体执行方法请看本章后面的内容。
图2-16 控制台界面
在Java语言中,通常使用System.out.println()方法将需要输出的内容显示到控制台中。在前面的实例first.java中,使用如下代码在控制台中输出文本“第一段Java程序!”。
System.out.println("第一段Java程序!");
知识点讲解:
经过前面的讲解,相信大家对Java程序已经有了大致的了解。本节将详细讲解如何编译并运行Java程序。
在运行Java程序之前,我们首先要将它的代码编译成可执行的程序,为此,我们需要用到javac命令。由于我们在前面已经把javac命令所在的路径添加到了系统的PATH环境变量中,因此现在可以直接调用javac命令来编译Java程序了。另外,如果直接在命令行终端中输入javac命令,其后不跟任何选项和参数的话,它会输出大量与javac命令相关的帮助信息,读者在使用javac命令时可以参考这些帮助信息。在这里,我们建议初学者掌握javac命令的如下用法。
javac -d destdir srcFile
在上述命令中,-d是javac命令的选项,功能是指定编译生成的字节码文件的存放路径(即destdir)。在这里,destdir必须是本地磁盘上的一条合法有效路径。而srcFile则表示的是Java源文件所在的路径,该路径既可是绝对路径,也可以是相对路径。通常,我们总是会将生成的字节码文件放在当前路径下,当前路径可以用点“.”来表示。因此,如果以之前的first.java为例,我们可以首先进入它所在的路径,然后输入如下编译命令。
javac -d . first.java
假设first.java所在的路径为“C:\Users\apple”,则整个编译过程在CMD窗口中的效果如图2-17所示。运行上述命令后,会在该路径下生成一个编译后的文件first.class,如图2-18所示。
图2-17 CMD窗口中的编译过程
图2-18 生成first.class文件
待完成编译之后,我们就需要用到java命令来运行程序了。关于该命令,我们同样可以通过在命令行终端中直接输入不带任何参数或选项的java命令来获得其帮助信息。在这里,我们需要用到的java命令的格式如下所示。
java <main_class_name>//<main_class_name>表示Java程序中的类名
请一定要注意,java命令后的参数应是Java程序的主类名(即main()方法所在的类),它既不是字节码文件的文件名,也不是Java源文件名。例如,我们可以在命令行终端中进入first.class所在的路径,输入如下命令。
java first
上述命令会输出如下结果。
第一段Java程序!
在控制台中,完整的编译和运行结果如图2-19所示。
图2-19 控制台中完整的编译和运行结果
另外需要提醒的是,初学者经常容易忘记Java是一门区分大小写的语言,例如在下面的命令中,我们错误地将first写成了First,这会造成命令执行失败或异常。
java First
从Java 11开始新增了一个特性:启动单一文件的源代码程序。单一文件程序是指整个程序只有一个源码文件。这时在控制台中使用如下格式即可运行Java文件,从而省掉了编译环节。
java Java文件名
以上面的Java文件first.java为例,在运行之前先不编译它,而是希望Java启动器能直接运行文件first.java。此时只需要将控制台命令放到程序目录中,然后运行如下命令即可。
java first.java
假设文件first.java位于本地计算机的“H:\eclipse-workspace\qiantao\src”目录下,则上述直接运行方式在控制台中的完整过程如下。
C:\Users\apple>h:
H:\>cd H:\eclipse-workspace\qiantao\src
H:\eclipse-workspace\qiantao\src>java first.java
第一段Java程序! ←--- 这是运行文件 first.java 的结果,省去了前面的编译环节
知识点讲解:
在体验Java程序的过程中,我们发现这样编写、编译、运行程序的过程非常烦琐。为了提高开发效率,我们可以使用第三方工具来帮助我们。在现实应用中,开发Java程序的最主流IDE工具是Eclipse。本节将详细讲解搭建并使用Eclipse工具的知识。
Eclipse是一款著名的集成开发环境(IDE),最初主要用于Java开发。但由于Eclipse本身同时是一个开放源码的框架,后来陆续有人通过插件的形式将其扩展成了支持Java、C/C++、Python、PHP等主要编程语言的开发平台。目前,Eclipse已经成为最受Java开发者欢迎的集成开发环境。
Eclipse本身附带了一个标准的插件集,它们是Java开发工具(Java Development Tool,JDT)。当然,Eclipse项目的目标是致力于开发全功能的、具有商业品质的集成开发环境。其中,下面是软件开发者经常会用到的4个组件。
其中,启动Java版Eclipse后的界面如图2-20所示。
图2-20 Eclipse启动界面
Eclipse是一个免费的开发工具,用户只需要去其官方网站下载即可,具体操作过程如下。
(1)打开浏览器,在浏览器的地址栏中输入Eclipse的网址,按Enter键打开后,单击右上角的“DOWNLOAD”按钮,如图2-21所示。
图2-21 Eclipse官网首页
(2)这时候,Eclipse官网会自动检测用户当前所使用计算机的操作系统,并提供对应版本的下载链接。例如作者的计算机上安装的是64位Windows系统,所以会自动显示64位Eclipse的下载按钮,如图2-22所示。
图2-22 64位的Eclipse版本
(3)单击“DOWNLOAD 64 BIT”按钮之后,就会看到弹出的一个新页面,如图2-23所示。继续单击“Select Another Mirror”后,我们会在下方看到许多镜像下载地址。
图2-23 下载页面
(4)读者既可以根据自身情况选择一个镜像下载地址,也可以直接单击上方的“DOWNLOAD”按钮进行下载。下载完毕后会得到一个“.exe”格式的可执行文件,双击这个文件就可以开始安装Eclipse了。安装程序首先会弹出欢迎界面,如图2-24所示。
图2-24 Eclipse欢迎界面
(5)安装程序会显示一个选择列表框,其中显示了不同版本的Eclipse,在此读者需要根据自己的情况选择要下载的版本,如图2-25所示。
图2-25 不同版本的Eclipse
(6)因为本书将使用Eclipse开发Java项目,所以需要选择第一项“Eclipse IDE for Java Developers”。接下来单击“Eclipse IDE for Java Developers”,然后安装程序会弹出“安装目录”对话框,我们可以在此设置Eclipse的安装目录,如图2-26所示。
图2-26 设置Eclipse的安装目录
(7)设置好路径之后,我们继续单击“INSTALL”按钮。然后,安装程序会首先弹出协议对话框,我们只需要单击下方的“Accept Now”按钮继续安装即可,如图2-27所示。
图2-27 单击“Accept Now”按钮
(8)此时我们会看到一个安装进度条,这说明安装程序开始正式安装Eclipse了,如图2-28所示。安装过程通常会比较慢,需要读者朋友们耐心等待。
图2-28 安装进度条
(9)安装完之后,安装程序会在界面底部显示 “Launch”按钮,如图2-29所示。
图2-29 显示“Launch”按钮
(10)单击“Launch”按钮,就可以启动安装成功的Eclipse了。Eclipse会在首次运行时弹出设置workspace的对话框,我们在此可以设置一条自己常用的本地路径作为“workspace”,如图2-30所示。
图2-30 设置workspace
注意:“workspace”通常被翻译为工作空间,在这个目录中保存Java程序文件。“workspace”是Eclipse的硬性规定,每次启动Eclipse的时候,都要将“workspace”路径下的所有Java项目加载到Eclipse中。如果没有设置workspace,Eclipse会弹出一个界面,只有在设置一条路径后才能启动Eclipse。设置一个本地目录为“workspace”后,会在这个目录中自动创建一个子目录“.metadata”,在里面生成一些文件夹和文件,如图2-31所示。
图2-31 自动创建的子目录“.metadata”中的内容
(11)设置完workspace路径,单击“OK”按钮后,我们就会看到启动界面。启动完毕后,程序就会显示欢迎使用界面,如图2-32所示。
图2-32 欢迎使用界面
(1)打开Eclipse,在顶部的菜单栏中依次单击“File”|“New”|“Java Project”命令,新建一个项目,如图2-33所示。
图2-33 选择命令
(2)在打开的“New Java Project”对话框中,在“Project name”文本框中输入项目名称,例如输入“one”,其他选项使用默认设置即可,最后单击“Finish”按钮,如图2-34所示。
图2-34 新建项目
(3)在Eclipse界面左侧的“Package Explorer”面板中,用鼠标右击项目名称“one”,然后在弹出的快捷菜单中依次选择“New”|“Class”命令,如图2-35所示。
图2-35 依次选择“New”|“Class”命令
(4)打开“New Java Class”对话框,在“Name”文本框中输入类名,如“First”,并分别勾选和,如图2-36所示。
图2-36 “New Java Class”对话框
(5)单击“Finish”按钮后,Eclipse会自动打开刚刚创建的类文件First.java,如图2-37所示。此时我们发现Eclipse会自动创建一些Java代码,从而提高了开发效率。
图2-37 输入代码
注意:在前面的步骤中,设置的类文件名是“First”,因此会在Eclipse项目中创建一个名为First.java的文件,并且该文件里面的代码也体现出类名是“First”。在图2-36和图2-37中,标注的3个“First”必须大小写完全一致,否则程序就会出错。
(6)接着在自动生成的代码中添加如下一行Java代码。
System.out.println("第一段Java程序!");
添加后的效果如图2-38所示。
图2-38 添加一行代码
刚刚创建的项目“one”在我们的“workspace”目录中,进入这个目录,会发现里面自动生成的文件夹和文件,如图2-39所示。
图2-39 项目“one”在“workspace”目录中生成的文件和文件夹
编译代码的方法非常简单,只需要单击Eclipse界面顶部的按钮即可编译并运行当前的Java项目。例如,对于2.3.3节中的项目“one”,单击按钮后会成功编译并运行这个项目,执行结果如图2-40所示。
图2-40 编译并运行项目
如果在一个项目中有多个“.java”文件,而我们只想编译调试其中的某个文件,这时应该怎样实现呢?我们可以使用鼠标右击要运行的Java文件,例如First.java,然后在弹出的命令中依次选择“Run As”|“1Java Application”命令,此时便只会运行文件First.java,如图2-41所示。
图2-41 依次选择“Run As”|“1Java Application”命令
在编译完成后,Eclipse会在“one”项目的项目目录下自动生成编译后的文件First.class,具体位置是one/bin/one/First.class。这就说明在Eclipse运行Java程序时,也需要先编译Java文件以生成“.class”文件,之后运行的是编译后的文件“First.class”。
读者将本书配套资源复制到本地计算机上之后,在Eclipse界面顶部依次单击“File”|“Open Projects from File System”选项,如图2-42所示。
图2-42 依次单击“File”|“Open Projects from File System”
此时在弹出的“Import Projects from File System or Archive”对话框中,单击“Directory”按钮,找到复制在本地计算机中的源码,然后单击右下角的“Finish”按钮,即可成导入并打开本书配套资源中的源码,如图2-43所示。
图2-43 导入本书配套资源中的源码
注意:对于初学者来说,建议使用Eclipse新建项目后,直接使用Eclipse编辑器手动编写全部代码,这样可以帮助我们快速掌握Java语言的语法知识,通过实例巩固所学的知识。
知识点讲解:
Java是一种特殊的高级语言,不但具有解释型语言的特征,也具有编译型语言的特征。我们需要首先编译Java程序,然后解释运行Java程序。在2.2节中,我们通过一段Java程序了解了编译并运行Java程序的基本方法。但我们只是从表面了解了编译和运行Java程序的流程,为了加深读者对Java的理解,本节将从根本上讲解Java程序的运行机制。
高级语言有两种执行程序的方式,分别是编译型和解释型。
编译型语言会使用专门的编译器,针对特定平台(操作系统)将某种高级语言的源代码一次性“翻译”成可被该平台硬件执行的机器码(包括机器指令和操作数),并包装成该平台所能识别的可执行程序的格式,这个转换过程称为编译(Compile)。编译完之后会生成一个可以脱离开发环境的可执行程序,它可以在很多特定的平台上独立运行。
有些程序编译结束后,还可能需要对其他编译好的目标代码进行链接,即需要组装两个以上的目标代码模块才能生成最终的可执行程序,通过这种方式实现低层次的代码复用。
因为编译型语言是一次性编译成机器码,所以可以脱离开发环境独立运行,而且通常运行效率较高。但因为编译型语言的程序被编译成特定平台上的机器码,所以编译生成的可执行程序通常无法移植到其他平台上运行。如果需要移植,则必须将源代码复制到特定平台上,针对特定平台进行修改,至少需要采用特定平台上的编译器重新编译。现有的C和C++等高级语言都属于编译型语言。
解释型语言会使用专门的解释器将该语言的源程序逐行解释成特定平台的机器码并立即执行,解释型语言通常不会进行整体性的编译和链接处理,解释型语言相当于把编译型语言中的编译和解释过程混合到一起同时完成。可以认为:每次执行解释型语言的程序都需要进行一次编译,因此解释型语言的程序运行效率通常较低,而且不能脱离解释器独立运行。但解释型语言有一个优势——跨平台比较容易,只需要提供特定平台的解释器,每个特定平台上的解释器负责将源程序解释成特定平台的机器指令。解释型语言可以方便地实现源程序级的移植,但这是以牺牲程序执行效率为代价的。现有的Ruby、Python等语言都属于解释型语言。
Java语言比较特殊,由Java编写的程序必须经历编译步骤,但这个编译步骤并不会生成特定平台的机器码,而是生成一种与平台无关的字节码(也就是*.class文件,例如2.2.2节中的first.class和2.3.4节中的First.class都是编译后的字节码文件)。当然,这种字节码必须使用Java解释器来解释执行。正因为如此,我们可以认为Java既是一种编译型语言,也是一种解释型语言。
在Java语言中,负责解释执行字节码文件的是Java虚拟机(Java Virtual Machine,JVM)。所有平台上的JVM向编译器提供相同的编程接口,而编译器只需要面向虚拟机,生成虚拟机能理解的代码,然后由虚拟机来解释执行。在一些虚拟机的实现中,还会将虚拟机代码转换成特定系统的机器码执行,从而提高执行效率。
Java中的命名规则有很多,例如变量命名规则和类命名规则等。下面讲解的是Java源文件的命名规则。在编写Java程序时,源文件的名称不能随便起,需要遵循下面两条规则。
根据上述规则,我们可以得出命名程序文件的如下3个建议。
有很多初学者经常犯一个错误,即在保存Java文件时经常保存成形如“*.java.txt”格式的文件名,因为这种格式的文件名从表面看起来太像“*.java”了,所以经常会引发错误。要想纠正这个错误,我们可以修改Windows系统的默认设置。因为Windows系统的默认设置是“隐藏已知文件类型的扩展名”,所以我们只需要取消勾选这个选项即可,如图2-44所示。
图2-44 取消勾选“隐藏已知文件类型的扩展名”选项
Java JDK经过几年的发展,已经发展到现在的JDK 10系列。新的JDK更加成熟,速度也更快。但是往往程序员总是难以忘记以前版本的一些特点和用法,经常会不自觉地在新版本中按照旧版本的方式进行操作。例如最常见的就是环境变量问题,2.1.2节已经介绍了设置环境变量的问题。其实对于开发纯Java项目来说,如果使用的是JDK 1.5以上版本,则完全不用画蛇添足般地设置环境变量。
设置CLASSPATH环境变量会比较麻烦,在设置CLASSPATH环境变量后,Java解释器会在当前路径下搜索Java类,例如,在First.class文件所在路径下执行java First命令将没有任何问题。但如果设置了CLASSPATH环境变量,Java解释器只在CLASSPATH环境变量指定的系列路径下搜索Java类,这就容易出现问题。
在当今很多教科书和资料中,都提到在CLASSPATH环境变量中添加dt.jar和tools.jar这两个文件,所以很多初学者会将CLASSPATH环境变量的值设置为如下形式。
D:\Java\jdkl.10.0\lib\dt.jar;D:\Java\jdkl.10.0\lib\tools.jar
这样做会导致Java解释器不在当前路径下搜索Java类,此时如果在文件First.class所在路径下执行java First命令,就会出现图2-45所示的错误提示。
图2-45 错误提示
造成上述错误的原因是找不到类定义,这是由CLASSPATH环境变量设置不正确造成的。所以在此建议广大读者,在设置CLASSPATH环境变量时一定不要忘记在CLASSPATH环境变量中增加“.”,以强制Java解释器在当前路径下搜索Java类。
Java语言是严格区分大小写的,但是很多初学者对大小写问题往往都不够重视。例如,有的读者编写的Java程序里的类是“first”,但在运行Java程序时使用的是“java First”的形式。所以在此提醒读者必须注意,Java程序中的First和first是不同的,必须严格注意Java程序中大小写的问题。在此建议广大读者,在按照书中实例程序编写Java代码时,必须严格注意Java程序中每个单词的大小写,不要随意编写,例如class和Class是不同的两个词,class是正确的,但如果写成Class,则程序无法编译通过。这是因为Java程序里的关键字全部是小写的,无须大写任何字母。
如果需要用Java解释器直接运行一个Java类,则这个Java类必须包含main()方法。在Java中必须使用public和static来修饰main(),并且必须使用void来声明main()方法的返回值,而且main()方法的形参只能是一个字符串数组,而不能是其他形式的参数。对于main()方法来说,修饰它的修饰符public和static的位置可以互换,但其他部分则是固定的。
在定义main()方法时也需要注意大小写的问题,如果不小心把方法名的首字母写成了大写,编译时不会出现任何问题,但运行程序时将引发错误。
空格问题是初学者很容易犯的一个错误, Windows系统中的很多路径都包含空格,例如C盘中的“Program Files”,而这个文件夹恰好是JDK的默认安装路径。如果CLASSPATH环境变量包含的路径中含有空格,则可能会引发错误。所以推荐大家在安装JDK和Java相关程序/工具时,不要安装在包含空格的路径里,否则可能引发错误。
作者对初学者的建议是:在初期尽量不要使用IDE工具,但现在是追求速成的年代,大多数人都希望用最快的速度掌握Java技术。其实市面上的IDE工具居多,除了Eclipse、Jbuilder和NetBeans之外,还有IBM提供的WSAD、JetBrains提供的IntelliJ IDEA、IBM提供的VisualAge、Oracle提供的JDeveloper、Symantec提供的Visual Cafe以及BEA提供的WorkShop,每个IDE都各有特色、各有优势。如果从工具学起,势必造成对工具的依赖,当换用其他IDE工具时会变得极为困难。而如果从Java语言本身学起,把Java语法和基本应用熟记于心,到那时再使用IDE工具便能得心应手。
在我们日常使用的Windows平台上可以选用记事本来编码,如果嫌Windows下记事本的颜色太单调,可以选择使用EditPlus、UltraEdit、VS Code和sublime text等工具。
如果实在要用IDE工具,例如Eclipse,则建议纯粹将它作为一款编辑器来用,所有代码要靠自己一个一个字符敲入来完成,而不是靠里面的帮助文档和操作菜单来完成编码工作。
对于很多初学者来说,对JDK和JRE两者比较迷糊,不知道它们之间到底有什么异同。
Oracle把Java分为Java SE、Java EE和Java ME,而且为Java SE与Java EE分别提供JDK和Java EE SDK(Software Development Kit)两个开发包。如果读者只学习Java SE的编程知识,可以下载标准的JDK;如果学完Java SE之后还需要继续学习Java EE相关内容,就必须下载Java EE SDK。因为Java EE SDK版本中已经包含最新版的JDK,所以在安装的Java EE SDK中已经包含JDK。
一般来说,如果我们只是要运行Java程序,可以只安装JRE,而无须安装JDK。但是如果要开发Java程序,则应该安装JDK。安装好JDK之后就自然包含JRE了,也可以运行Java程序。
(1)编写一个Java程序,使之能够输出显示如下3条文本信息。
Java是一门面向对象语言
我爱学习Java
厉害了我的Java
(2)编写一个Java程序,使之能够输出5条同样的文本信息:“我爱学习Java”。
(3)编写一个Java程序,使之能够显示如下所示的图案效果。
(4)(计算圆的面积和周长)编写一个Java程序,使用以下公式计算并显示半径为5.8cm的圆的面积和周长。
周长=2×半径×π
面积=半径×半径×π
(5)编写一个Java程序,使用下面的公式计算并显示宽为4.5cm、高为7.8cm的矩形的面积和周长。
面积=宽×高
周长=2×(宽+高)
(6)编写一个Java程序,使之能够显示1+2+3+4+5+6+7+8+9+10的计算结果。