描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302532118丛书名: 高职高专计算机教学改革新体系规划教材
本书以现代学徒制人才培养理论为指导,以培养学生的职业能力为核心,以工作实践为主线,面向企业技术工程师岗位能力模型设置教材内容,建立以实际工作过程为框架的职业教育课程结构。
本书主要介绍Java开发和运行环境、Java基本语法、面向对象的程序设计、图形界面设计、文件输入/输出流操作、线程、网络和数据开发基础等知识,并通过加强实训,提高应用技能。本书既可作为应用型大学本科和高职高专院校计算机专业的教材,也可作为企事业信息化从业者的培训教材,并为广大社会居民和IT创业者提供有益的学习指导。
目录
第1章Java概述
1.1Java语言简介
1.1.1Java的形成
1.1.2Java发展历史
1.1.3Java语言跨平台特性
1.2Java环境搭建
1.2.1安装JDK
1.2.2配置环境变量
1.2.3测试Java运行环境
1.3编写HelloWorld程序
1.4常用开发工具介绍
1.4.1文本编辑工具EditPlus
1.4.2集成开发环境Eclipse
习题
第2章Java基本语法
2.1Java语言基本元素
2.1.1标识符
2.1.2关键字
2.1.3分隔符
2.1.4注释
2.2常量和变量
2.2.1常量
2.2.2变量
2.3Java基本数据类型与封装类型
2.3.1基本数据类型
2.3.2引用类型
2.3.3封装类型
2.4运算符及表达式
2.4.1表达式
2.4.2运算符
2.4.3算术运算符
2.4.4关系运算符
2.4.5逻辑运算符
2.4.6位运算符
2.4.7赋值运算符
2.4.8条件运算符
2.4.9运算符的优先级
2.5数据类型转换
2.5.1自动类型转换
2.5.2强制类型转换
2.6Java控制语句
2.6.1顺序结构
2.6.2分支结构
2.6.3循环结构
2.6.4跳转控制语句
习题
第3章数组与字符串
3.1一维数组
3.1.1数组的说明与构造
3.1.2数组的初始化
3.1.3数组元素的使用
3.2多维数组
3.2.1二维数组的声明
3.2.2二维数组的初始化
3.2.3二维数组的使用
3.2.4数组复制
3.2.5数组应用实例
3.3字符串
3.3.1String类
3.3.2StringBuffer类和StringBuilder类
3.3.3String和StringBuffer互相转换
习题
第4章类与对象
4.1面向过程和面向对象
4.1.1面向过程
4.1.2面向对象
4.1.3面向过程和面向对象的比较
4.2类与对象
4.2.1定义类
4.2.2定义属性
4.2.3定义方法
4.2.4对象的创建及使用
4.3构造方法与对象的初始化
4.3.1类的构造方法
4.3.2对象的初始化过程
4.4包
4.4.1包的概念
4.4.2使用其他包中的类
4.4.3Java系统包
4.5类的封装
4.5.1类成员访问权限
4.5.2getter/setter访问器
习题
第5章类的继承
5.1继承
5.1.1继承的概念
5.1.2继承的作用
5.1.3继承的特性
5.1.4Object类
5.2super/this关键字
5.2.1super关键字
5.2.2this关键字
5.3方法的重载与重写
5.3.1方法重载
5.3.2方法重写
5.4多态
5.4.1多态的概念
5.4.2多态的形式
5.4.3多态的转型
5.5static关键字
5.6final关键字
习题
第6章抽象类接口
6.1抽象类
6.1.1抽象类的概念
6.1.2抽象方法和抽象类的声明及应用
6.2接口
6.2.1接口的概念
6.2.2Java的接口
6.2.3接口的使用
6.2.4接口的实际应用
6.2.5接口应用——简单工厂模式
6.3内部类
6.3.1内部类的概念
6.3.2成员内部类
6.3.3局部内部类
6.3.4匿名内部类
6.3.5静态内部类
习题
第7章异常
7.1异常概述
7.2Java异常的分类和类结构图
7.3异常处理机制
7.3.1使用try…catch…finally处理异常
7.3.2throws声明抛弃异常
7.3.3throw人工抛出异常
7.3.4创建用户自定义异常类
7.3.5获取异常信息
7.4异常处理规则
习题
第8章Java GUI编程
8.1GUI概述
8.1.1GUI程序设计原理
8.1.2Java平台上的GUI
8.2AWT和Swing
8.2.1AWT
8.2.2Swing
8.3GUI组件分类
8.3.1组件(Component)
8.3.2容器(Container)类
8.3.3非容器类组件
8.4布局管理
8.4.1流式布局管理器(FlowLayout)
8.4.2边界布局管理器(BorderLayout)
8.4.3网格布局管理器(GridLayout)
8.4.4卡片布局管理器(CardLayout)
8.4.5网格包布局管理器(GridBagLayout)
8.4.6通过嵌套设定复杂的布局
8.5Java事件处理
8.5.1事件及事件监听器
8.5.2GUI事件监听器的注册
8.5.3一个对象注册多个监听器
8.5.4多个组件注册到一个监听器
8.6常用Swing组件
8.6.1框架(JFrame)
8.6.2面板(JPanel)
8.6.3按钮(JButton)
8.6.4文本框(JTextField和JPasswordField)
8.6.5标签(JLabel)
8.6.6单选按钮(JRadioButton)
8.6.7复选框(JCheckBox)
8.6.8组合框(JComboBox)
8.6.9列表(JList)
8.6.10文本域(JTextArea)
8.6.11表格(JTable)
8.7菜单与工具条
8.7.1菜单的定义与使用
8.7.2工具栏的定义与使用
实训简易仿Windows计算器
实训要求
知识点
效果参考图
参考代码
习题
第9章线程
9.1进程与线程概念
9.1.1基本概念
9.1.2线程的生命周期
9.2线程的创建与启动
9.2.1继承Thread类创建和启动新的线程
9.2.2实现Runnable接口创建和启动新线程
9.2.3使用Callable和Future接口创建线程
9.2.4创建线程的三种方式对比
9.3线程的控制
9.3.1线程的优先级
9.3.2线程合并jion
9.3.3线程睡眠sleep
9.3.4线程让步yield
9.3.5后台线程
9.3.6结束线程
9.4线程同步
实训简易秒表
实训要求
知识点
参考代码
习题
第10章I/O操作
10.1流与文件概述
10.1.1输入/输出
10.1.2流
10.1.3文件
10.2文件类
10.2.1File类
10.2.2文件遍历
10.2.3文件的过滤器
10.3字节流和字符流
10.3.1字节输出流
10.3.2字节输入流
10.3.3字符输出流
10.3.4字符输入流
10.3.5字节流和字符流的区别
10.4字节流和字符流的转换
10.4.1InputSreamReader
10.4.2OutputStreamWriter
10.5随机文件访问类RandomAccessFile
10.6对象序列化与反序列化
实训仿Windows记事本
实训要求
知识点
实训效果参考图
参考代码
习题
第11章Java数据库编程
11.1MySQL数据库
11.1.1MySQL数据库概述
11.1.2MySQL数据库的安装
11.1.3Navicat的安装和使用
11.2JDBC的体系结构
11.2.1JDBC组成
11.2.2JDBC API简介
11.3JDBC应用程序开发
11.3.1JDBC使用基本流程
11.3.2数据库驱动程序的加载
11.3.3连接数据库
11.3.4对数据库表中的数据进行操作
11.3.5操作结果的处理与访问
11.3.6JDBC的关闭操作
实训学生信息管理系统
实训要求
知识点
效果参考图
参考代码
习题
第12章网络编程
12.1网络编程的基本概念
12.1.1网络基础
12.1.2TCP与UDP
12.1.3Java中所涉及的网络应用类
12.2InetAddress
12.2.1IP地址
12.2.2创建InetAddress对象
12.3URL
12.3.1URL简介
12.3.2URL类
12.3.3URLConnection类
12.4URLEncoder/URLDecoder类
12.4.1application/xwwwformurlencoded字符串
12.4.2对字符编码时的规则
12.4.3URL参数的转码与解码
12.5TCP编程
12.5.1套接字通信机制
12.5.2客户端套接字Socket类
12.5.3服务器端套接字ServerSocket类
12.5.4多线程服务器程序
实训简易多人聊天室
实训要求
知识点
效果参考
参考代码
习题
参考文献
前言
Java程序设计开发是计算机程序设计的重要基础课,是计算机网络专业重要的核心课程,掌握Java程序设计已经成为从事网站及网络信息系统工作的先决和必要条件。它对程序设计思想的建立和提升有重要作用,既为后续的计算机课程奠定了一个较为扎实的基础,又可以提高学生分析问题和解决问题的能力。
本书是编著者多年教学实践经验的总结,严格按照教育部关于“加强职业教育、突出实践技能和能力培养”的教学改革要求编写。本书全面介绍了Java程序设计开发人员应该掌握的各项基础技术,内容突出“基础、全面、深入”的特点,同时强调“实战”效果。在此基础上,加入了SCJP认证考试的相关试题,使得学生能及时考察自己对知识的掌握情况。 全书共12章,主要包含以下内容。
(1) 第1~3章是Java基础部分,包括Java概述、基本语法、数组与字符串等内容。
(2) 第4~7章是Java高级部分,包括类与对象、继承、抽象类接口和异常等内容。
(3) 第8~12章是Java应用开发部分,包括Java GUI编程、线程、I/O操作、数据库编程和网络编程等内容。
本书以现代学徒制人才培养理论为指导,以培养学生的职业能力为核心,以工作实践为主线,面向企业技术工程师岗位能力模型设置教材内容,建立以实际工作过程为框架的职业教育课程结构,着重培养学生的编程应用能力。书中的案例都是完整的、可以运行通过的Java程序,便于学生通过实训项目的训练提高分析问题和解决问题的能力。本书既可作为应用型大学本科和高职高专院校计算机专业的教材,也可作为企事业信息化从业者的培训教材,并为广大社会居民和IT创业者提供有益的学习指导。
本书由孙洪迪、贾民政、方园、杨民峰共同编写完成,全书由孙洪迪统稿。本书的出版受到了北京市职业院校教师素质提升计划资助项目的支持。
由于编著者水平有限,书中难免有不足之处,欢迎读者对本书内容提出意见和建议。
编著者
2019年4月
第1章
Java概述
Chapter 1
实习学徒学习目标
(1) 了解Java技术内容。
(2) 会编写HelloWorld程序。
1.1Java语言简介
1.1.1Java的形成
Java是Java程序设计语言和Java平台的总称,它不仅是一种程序设计语言,也是一个完整的平台,庞大的资源库中包含很多可重用的代码和提供安全性、可移植性及可自动垃圾回收等服务的执行环境。
Java来自Sun公司一个名为Green的项目,其最初的目的是为家用电子产品开发一个分布式代码系统,这样就可以把Email发给电冰箱、电视机等家用电器,对它们进行控制,和它们进行信息交流。最初打算采用C 语言,但C 既复杂,安全性又差,最后基于C 开发了一种新的语言Oak(Java的前身)。Oak是一种用于网络的精巧且安全的语言,Sun公司曾以此投标一个交互式电视项目,结果被SGI打败。可怜的Oak几乎无家可归,恰巧这时Mark Ardreesen开发的Mosaic和Netscape启发了Oak项目组成员,他们用Java编制了HotJava浏览器,得到了Sun公司首席执行官Scott McNealy的支持,触发了Java进军Internet的开关。Java的起名也有一些趣闻,由于Oak名称已经被注册了,有一天,几位Java组员正在讨论给这个新的语言起什么名字,当时他们正在咖啡馆喝着Java(爪哇)咖啡,有一个人灵机一动说就叫Java怎样,得到了其他人的赞同,于是Java这个名字就这样传开了。
1.1.2Java发展历史
1995年5月23日,Sun公司在SunWorld大会上正式发布Java 1.0版本。Java语言第一次提出了“Write Once,Run Anywhere”的口号。1996年1月23日,JDK 1.0发布,Java语言有了第一个正式版本的运行环境。JDK 1.0提供了一个纯解释执行的Java虚拟机实现(Sun Classic VM)。JDK 1.0版本的代表技术包括: Java虚拟机、Applet、AWT等。1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入Java技术。同年9月,已有大约8.3万个网页应用了Java技术进行制作。在1996年5月底,Sun公司于美国旧金山举行了首届JavaOne大会,从此JavaOne成为全世界数百万Java语言开发者每年一度的技术盛会。1997年2月19日,Sun公司发布了JDK 1.1,Java技术的一些最基础的支撑点(如JDBC等)都是在JDK 1.1版本中发布的,JDK 1.1版本的技术代表有: JAR文件格式、JDBC、JavaBeans、RMI。Java语法也有了一定的发展,如内部类(Inner Class)和反射(Reflection)都是在这个时候出现的。直到1999年4月8日,JDK 1.1一共发布了1.1.0~1.1.8九个版本。从1.1.4之后,每个JDK版本都有一个自己的名字(工程代号),分别为: JDK 1.1.4Sparkler(宝石)、JDK 1.1.5Pumpkin(南瓜)、JDK 1.1.6Abigail(阿比盖尔,女子名)、JDK 1.1.7Brutus(布鲁图,古罗马政治家和将军)和JDK 1.1.8Chelsea(切尔西,城市名)。1998年12月4日,JDK迎来了一个里程碑式的版本JDK 1.2,工程代号为Playground(竞技场),Sun公司在这个版本中把Java技术体系拆分为3个方向,分别是面向桌面应用开发的J2SE(Java 2 Platform,Standard Edition)、面向企业级开发的J2EE(Java 2 Platform,Enterprise Edition)和面向手机等移动终端开发的J2ME(Java 2 Platform,Micro Edition)。在这个版本中出现的代表性技术非常多,如EJB、Java Plugin、Java IDL、Swing等,并且这个版本中Java虚拟机第一次内置了JIT(Just In Time)编译器(JDK 1.2中曾并存过3个虚拟机,Classic VM、HotSpot VM和Exact VM,其中Exact VM只在Solaris平台出现过,其余两个虚拟机都内置JIT编译器,而之前版本所带的Classic VM只能以外挂的形式使用JIT编译器)。在语言和API级别上,Java添加了strictfp关键字和现在Java编码中极为常用的一系列Collections集合类。在1999年3月和7月,分别有JDK 1.2.1和JDK 1.2.2两个小版本发布。1999年4月27日,HotSpot虚拟机发布,HotSpot最初由一家名为“Longview Technologies”的公司开发,因为HotSpot的优异表现,这家公司在1997年被Sun公司收购。HotSpot虚拟机发布时是作为JDK 1.2的附加程序提供的,后来它成为JDK 1.3及之后所有版本的Sun JDK的默认虚拟机。2000年5月8日,工程代号为Kestrel(美洲红隼)的JDK 1.3发布,JDK 1.3相对于JDK 1.2的改进主要表现在一些类库上(如数学运算和新的Timer API等),JNDI服务从JDK 1.3开始被作为一项平台级服务提供(以前JNDI
仅仅是一项扩展),使用CORBA IIOP来实现RMI的通信协议,等等。这个版本还对Java 2D做了很多改进,提供了大量新的Java 2D API,并且新添加了JavaSound类库。JDK 1.3有1个修正版本JDK 1.3.1,工程代号为Ladybird(瓢虫),于2001年5月17日发布。自从JDK 1.3开始,Sun维持了一个习惯: 大约每隔两年发布一个JDK的主版本,以动物命名,期间发布的各个修正版本则以昆虫作为工程名称。2002年2月13日,JDK 1.4发布,工程代号为Merlin(灰背隼)。JDK 1.4是Java真正走向成熟的一个版本,Compaq、Fujitsu、SAS、Symbian、IBM等著名公司均有参与JDK 1.4的开发甚至实现独立的JDK 1.4。哪怕是在十多年后的今天,仍然有许多主流应用(Spring、Hibernate、Struts等)能直接运行在JDK 1.4上,或者继续发布能运行在JDK 1.4上的版本。JDK 1.4同样发布了很多新的技术特性,如正则表达式、异常链、NIO、日志类、XML解析器和XSLT转换器等。2002年前后还发生了一件与Java没有直接关系,但事实上对Java的发展进程影响很大的事件,那就是微软公司的.NET Framework发布了。这个无论是技术实现上还是目标用户上都与Java有很多相近之处的技术平台给Java带来了很多讨论、比较和竞争,.NET平台和Java平台之间声势浩大的孰优孰劣的论战至今仍在继续。
2004年9月30日,JDK 1.5发布,工程代号Tiger(老虎)。从JDK 1.2以来,Java在语法层面上的变化一直很小,而JDK 1.5在Java语法易用性上做出了非常大的改进。例如,自动装箱、泛型、动态注解、枚举、可变长参数、遍历循环(foreach循环)等语法特性都是在JDK 1.5中加入的。在虚拟机和API层面上,这个版本改进了Java的内存模型(Java Memory Model,JMM),提供了java.util.concurrent并发包,等等。另外,JDK 1.5是官方声明可以支持Windows 9x平台的最后一个JDK版本。
2006年12月11日,JDK 1.6发布,工程代号Mustang(野马)。在这个版本中,Sun终结了从JDK 1.2开始已经有8年历史的J2EE、J2SE、J2ME的命名方式,启用Java SE 6、Java EE 6、Java ME 6的命名方式。JDK 1.6的改进包括: 提供动态语言支持(通过内置Mozilla Java Rhino引擎实现)、提供编译API和微型HTTP服务器API等。同时,这个版本对Java虚拟机内部做了大量改进,包括锁与同步、垃圾收集、类加载等方面的算法都有相当多的改动。
在2006年11月13日的JavaOne大会上,Sun公司宣布最终会将Java开源,并在随后一年多的时间里,陆续将JDK的各个部分在GPL v2(GNU General Public License v2)协议下公开了源码,并建立了OpenJDK组织对这些源码进行独立管理。除了极少量的产权代码(Encumbered Code,这部分代码大多是Sun本身也无权限进行开源处理的)外,OpenJDK几乎包括了Sun JDK的全部代码,OpenJDK的质量主管曾经表示,在JDK 1.7中,Sun JDK和OpenJDK除了代码文件头的版权注释之外,代码基本完全一样,所以OpenJDK 7与Sun JDK 1.7本质上就是同一套代码库开发的产品。
JDK 1.6发布以后,由于代码复杂性的增加、JDK开源、开发JavaFX、经济危机及Sun公司收购案等原因,Sun公司在JDK发展以外的事情上耗费了很多资源,JDK的更新没有再维持两年发布一个主版本的发展速度。JDK 1.6到目前为止一共发布了37个Update版本,最新的版本为Java SE 6 Update 37,于2012年10月16日发布。
2009年2月19日,工程代号为Dolphin(海豚)的JDK 1.7完成了其第一个里程碑版本。根据JDK 1.7的功能规划,一共设置了10个里程碑。最后一个里程碑版本原计划于2010年9月9日结束,但由于各种原因,JDK 1.7最终无法按计划完成。
从JDK 1.7最开始的功能规划来看,它本应是一个包含许多重要改进的JDK版本,其中的Lambda项目(Lambda表达式、函数式编程)、Jigsaw项目(虚拟机模块化支持)、动态语言支持、GarbageFirst收集器和Coin项目(语言细节进化)等子项目对于Java业界都会产生深远的影响。在JDK 1.7开发期间,Sun公司由于相继在技术竞争和商业竞争中陷入泥潭,公司的股票市值跌至仅有高峰时期的3%,已无力推动JDK 1.7的研发工作按正常计划进行。为了尽快结束JDK 1.7长期“跳票”的问题,Oracle公司收购Sun公司后不久便宣布将实行“B计划”,大幅裁剪了JDK 1.7预定目标,以便保证JDK 1.7的正式版本能够于2011年7月28日准时发布。“B计划”把不能按时完成的Lambda项目、Jigsaw项目和Coin项目的部分改进延迟到JDK 1.8中。最终,JDK 1.7的主要改进包括: 提供新的G1收集器(G1在发布时依然处于Experimental状态,直至2012年4月的Update 4中才正式“转正”)、加强对非Java语言的调用支持(JSR292,这项特性到目前为止依然没有完全实现定型)、升级类加载架构等。
到目前为止,JDK 1.7已经发布了9个Update版本,最新的Java SE 7 Update 9于2012年10月16日发布。从Java SE 7 Update 4起,Oracle开始支持Mac OS X操作系统,并在Update 6中达到完全支持的程度,同时,在Update 6中还对ARM指令集架构提供了支持。至此,官方提供的JDK可以运行于Windows(不含Windows 9x)、Linux、Solaris和Mac OS平台上,支持ARM、x86、x64和Sparc指令集架构类型。
2009年4月20日,Oracle公司宣布正式以74亿美元的价格收购Sun公司,Java商标从此正式归Oracle所有(Java语言本身并不属于哪家公司所有,它由JCP组织进行管理,尽管JCP主要是由Sun公司或者说Oracle公司所领导的)。由于此前Oracle公司已经收购了另外一家大型的中间件企业BEA公司,在完成对Sun公司的收购之后,Oracle公司分别从BEA和Sun中取得了目前三大商业虚拟机的其中两个: JRockit和HotSpot,Oracle公司宣布在未来1~2年将把这两个优秀的虚拟机互相取长补短,最终合二为一。可以预见在不久的将来,Java虚拟机技术将会产生巨大的变化。2011年7月28日,Oracle公司发布Java SE 7。2014年3月18日,Oracle公司发表Java SE 8。2017年9月22日,Oracle公司发表Java SE 9。
评论
还没有评论。