您好,欢迎光临有路网!
Java 程序设计教程
QQ咨询:
有路璐璐:

Java 程序设计教程

  • 作者:肖云鹏 李暾 刘宴兵
  • 出版社:清华大学出版社
  • ISBN:9787302529903
  • 出版日期:2019年08月01日
  • 页数:0
  • 定价:¥39.80
  • 分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    内容提要
    本书是为大学本专科Java程序设计课程准备的教材。全书以“what、why、how”的方式讲解,强调原理,重视实践。全书贯穿一个实例,把大学教学*常使用的“图书管理系统”作为实例,从第1章开始,安排在每一章的*后一节。纵向,各章承前启后,层层递进,从*简单的控制台、一个类图书管理系统→控制台、多个类的图书管理系统→合理的数据结构、代码设计的图书管理系统→带数据库的图书管理系统→有漂亮界面的图书管理系统→带网络连接的图书管理系统→带多线程、多客户端可以并行的图书管理系统。*后,将图书管理系统稍作修改,实现了一个简单QQ的程序。横向,对于每一章,*后一节的实例也是对本章学习内容的总结和实践。 同时,根据实际教学情况,我们在本书的实例中用*简单的方式融汇了面向对象、数据结构、数据库、网络编程、多线程、通信协议、程序结构、常用设计模式等同学们在前期课程中学习过,但在实际运用中不一定能掌握的重要知识点。为了配合教师教学及同学们自学,本书提供了配套教学的PPT和所有章节的源代码。
    文章节选
    第5章数据存储
    本章中,我们将了解如何进行读取和存储数据、数据存储的不同形式及其所涉及的相关知识,由此我们便能够分辨出它们的优缺点。
    5.1本 章 任 务
    理论任务: 了解I/O的基本概念,对于文件系统有基本认识,学会使用JDBC连接数据库,并对数据库中的数据进行存储和读取,同时学习MVC设计模式,将编写的程序代码按照MVC设计模式进行重构。
    实践任务: 在之前的章节中,booklist中的内容都是存储在内存中的,不能保证数据的长期存储。在这一章中,我们将会把数据存储在硬盘中,通过文件或者数据库的形式对数据进行长期保存,保证数据不丢失。同时,我们将讲解MVC的设计模式,并对之前的代码进行重构,将显示内容、数据操作类、控制类进行分类和归类,降低程序耦合度,以便提高开发效率、方便代码维护。
    5.2IO
    IO(输入输出)在Java及众多编程语言中都是极其重要的一部分,在Java中,输入输出主要采用数据流的方式实现,在本节中,我们将讲解基本的输入输出方法。
    5.2.1基本IO
    正如2.7节中提到的,按照标准的I/O模型,Java提供了System.in、System.out进行输入输出操作,在使用过程中,因为System.out被包装,我们可以直接使用,但是System.in是一个没有被包装过的InputStream,所以在使用过程中,我们需要自己包装System.in。并且在其使用过程中,通常我们使用readline()一次一行读取数据,但是在实际操作中,除了对数据进行一行一行的读取,我们还可能对数据进行数组的存储或者字符的截取。这时,我们会发现,针对不知道长度或者大小的输入,我们的操作会变得困难而复杂,所以在下节中,我们将会讲解更方便的IO操作。
    5.2.2更好用的IO
    Java的输入输出功能都是基于类库java.io包来实现,java.io库提供了全面的IO接口,并且Java中IO是以流为基础的。流是什么呢?流是一组有顺序的,有起点和终点的字节集合,当程序需要读取数据的时候,就会开启一个通向数据源的流,Java将来自不同源和目标的数据统一抽象为数据流。
    在Java的IO操作中,对流的操作分为读和写两种。根据流的运动方向,我们将流分为输入流和输出流,这里的输入输出都是以计算机内存为参照物的,所以,从键盘等外设流入计算机内存的数据序列称为输入流,反之,从计算机内存流出的数据序列称为输出流。
    Java按照流中元素的基本类型,将数据流分为字节流和字符流。以字节为单位传输数据的流称为字节流; 以字符为单位传输数据的流称为字符流。根据功能的不同,又将流分为节点流和处理流。直接从数据源读写数据的流为节点流; 从其他的流上进行数据处理的流为处理流。Java中所有的流类型分别继承四种抽象流类,如表51所示。
    表51四种抽象输入输出流
    字节流
    字符流
    输入流
    InputStream
    Reader
    输出流
    OutputStream
    Write 在本节中我们将根据流的分类从输入和输出方面讲解更好用的IO。
    1. 输入流
    在Java中,把能够读取一个字节序列的对象称为字节输入流,把能够写一个字节的对象称为字节输出流。
    输入流又分为字节输入流和字符输入流,这两个类下又分为多个类,其中,字节输入流依靠InputStream类及其子类实现,字符输入流由Reader类及其子类实现。
    (1) InputStream类
    InputStream类是一个抽象类,是所有基于字节的输入流的超类,InputStream类的定义如下。
    public abstract class InputStream implements Closeable; 可以看出,InputStream抽象类继承了Closeable类,由于InputStream作为一个抽象类,不能用new创造实例,所以对字节输入流的操作,都是由它的子类对象完成,它的子类结构如图51所示。 图51InputStream类的派生类
    从图51中,我们可以看到,字节输入流根据类型和操作方式不同,划分了不同的子类,其中我们主要讲解文件字节输入流(FileInputStream)。
    FileInputStream可以从文件系统中的某个文件中获得输入字节,简单地说,就是用于读取本地文件中的字节数据,FileInputStream类的构造函数主要有以下三种。
     FileInputStream(File flie): 以file指定的文件对象创建文件输入流。
     FileInputStream(FileDescriptor fdObj): 以fdObj指定的文件描述对象创建文件输入流。
     FileInputStream(String name): 以字符串name指定的文件名创建文件输入流。
    可以看到,三个构造函数的区别只是参数的不同,所以FileInputStream构造方法可以接受字符串、file对象。其次,它的构造函数在使用的时候需要指定文件的来源,FileInputStream类的常用方法如表52所示。
    表52FileInputStream类的常用方法
    目录
    目录 第1章Java入门 1.1本章任务 1.2Java的故事 1.3三个版本的过去和现在 1.4环境搭建 1.5从控制台到Eclipse——一个*简单的图书管理系统V1.0 1.6一个简单的面向对象的改造 1.7JDK、JRE和JVM 1.8养成良好的学习习惯 1.9如何导入本书的案例库 第2章基础知识 2.1本章任务 2.2Java基本程序结构 2.3Java程序基本代码规范 2.3.1注释规范 2.3.2标识符 2.3.3关键字 2.4数据类型与变量 2.4.1整型 2.4.2浮点型 2.4.3char型 2.4.4布尔型 2.4.5变量 2.4.6常量 2.5运算符、表达式与控制语句 2.5.1运算符 2.5.2关系运算符 2.5.3逻辑运算符 2.5.4赋值运算符 2.5.5运算符优先级 2.5.6控制语句 2.6数组 2.7基本输入输出 2.8一个单机版、控制台、只有一个类的图书管理系统V2.0 2.8.1运行效果图 2.8.2类结构示意图 2.8.3代码实现 第3章面向对象 3.1本章任务 3.2面向对象基本概念 3.3类与对象 3.3.1类 3.3.2对象 3.4封装 3.5继承 3.6多态 3.7抽象类和接口 3.7.1抽象类 3.7.2接口 3.8访问控制 3.9异常 3.9.1什么是异常 3.9.2异常处理 3.10三个常见的关键字static、final、this 3.10.1static关键字 3.10.2final关键字 3.10.3this关键字 3.11图书管理系统V3.0 3.11.1运行效果图 3.11.2类结构示意图 3.11.3代码实现 第4章集合 4.1本章任务 4.2集合——数据结构Java实现 4.3Java集合的整体框架 4.4Collection接口 4.5List接口 4.5.1List接口简介 4.5.2ArrayList集合 4.5.3LinkedList集合 4.6Set接口 4.6.1Set接口简介 4.6.2HashSet集合 4.6.3TreeSet集合 4.7Map接口 4.7.1Map接口简介 4.7.2HashMap集合 4.7.3TreeMap集合 4.8常用的三个工具:Iterator接口、Collections类、Arrays类 4.8.1Iterator接口 4.8.2Collections类 4.8.3数组工具类Arrays 4.9图书管理系统V4.0 4.9.1运行效果图 4.9.2类结构示意图 4.9.3代码实现 第5章数据存储 5.1本章任务 5.2IO 5.2.1基本IO 5.2.2更好用的IO 5.3文件系统 5.3.1按字节读取 5.3.2按字符读取 5.3.3按行读取 5.3.4随机读取 5.4图书管理系统V5.1 5.4.1运行效果图 5.4.2类结构示意图 5.4.3代码实现 5.5数据库 5.5.1JDBC简介 5.5.2JDBC访问数据库的基本过程 5.5.3JDBC常用类 5.6MVC设计模式 5.6.1什么是MVC设计模式 5.6.2为什么要使用MVC设计模式 5.7图书管理系统V5.2 5.7.1运行效果图 5.7.2类结构示意图 5.7.3代码实现 第6章界面 6.1本章任务 6.2画画的故事 6.3容器 6.3.1底层容器 6.3.2面板容器 6.4布局管理器 6.4.1布局管理器概述 6.4.2FlowLayout布局管理器 6.4.3BorderLayout布局管理器 6.4.4GridLayout布局管理器 6.5组件 6.5.1组件概述 6.5.2常用的组件 6.6事件监听器和内部类 6.6.1事件处理模式 6.6.2事件类 6.6.3内部类 6.7图书管理系统V6.0 6.7.1运行效果图 6.7.2类结构示意图 6.7.3代码实现 6.8把我们的界面变漂亮 第7章网络编程 7.1本章任务 7.2网络的几个重要问题 7.3TCP编程 7.3.1什么是TCP/IP 7.3.2TCP建立连接步骤(阻塞式) 7.3.3TCP建立连接步骤(非阻塞式) 7.4UDP编程 7.4.1什么是UDP 7.4.2UDP建立连接步骤 7.5HTTP编程 7.5.1什么是HTTP,为什么要有HTTP 7.5.2HTTP建立连接步骤 7.6客户/服务器模式 7.6.1控制台上的简单输入输出 7.6.2控制台上的循环输入输出 7.6.3一个客户端和一个服务器一次通信 7.6.4一个客户端和一个服务器多次通信 7.6.5多个客户端和一个服务器串行通信 7.6.6多个客户端和一个服务器并行通信 7.6.7客户端与服务器端HTTP通信 7.7图书管理系统V7.0 7.7.1运行效果图 7.7.2类结构示意图 7.7.3通信协议 7.7.4关键代码 第8章多线程 8.1本章任务 8.2几个概念 8.2.1进程 8.2.2线程 8.3生命周期 8.3.1线程生命周期概述 8.3.2为什么要有生命周期 8.3.3线程生命周期详解 8.4线程调度和线程优先级 8.4.1线程的调度 8.4.2线程的优先级 8.5创建线程的两种方式 8.5.1继承Thread类创建线程类 8.5.2通过Runnable接口创建线程类 8.6线程常用方法 8.7线程同步 8.7.1线程同步理解 8.7.2线程同步实现 8.8计时器Timer 8.9图书管理系统V8.0 8.9.1运行效果图 8.9.2类结构示意图 8.9.3代码实现 第9章扩展——从图书管理系统到QQ 9.1本章任务 9.2总体结构 9.3服务器端 9.3.1运行效果图 9.3.2类结构示意图 9.3.3代码实现 9.4客户端 9.4.1运行效果图 9.4.2类结构示意图 9.4.3代码实现

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外