新書推薦:
《
云冈:人和石窟的1500年
》
售價:NT$
332.0
《
淡水鱼类营养生理与饲料
》
售價:NT$
1520.0
《
人体结构绘画重点
》
售價:NT$
653.0
《
中国妖怪故事(全集·增订版)
》
售價:NT$
1010.0
《
于胥斯原 乡族、风水与地方记忆
》
售價:NT$
806.0
《
以经治国与汉代社会
》
售價:NT$
449.0
《
我真正想要什么?:智慧瑜伽答问/正念系列
》
售價:NT$
265.0
《
元朝理财记 从成吉思汗的崛起到元朝的衰亡
》
售價:NT$
449.0
|
編輯推薦: |
☆Java编程入门宝典,开启你的Java编程之旅。
☆内容全面,深入讲解基础语法、编程思想、实战应用等Java核心内容。
☆层层深入,注重实践,带你了解完整项目的开发过程。
☆图文并茂,大量贴近工作和生活的编程示例,方便易学。
☆精心设置的板块,为你指出编程重点难点,带你巧避误区,拓展编程知识。
☆这本书通俗易懂,可读性强,读来定有收获。
|
內容簡介: |
本书是一本关于Java语言基础知识和程序设计开发用书。本书深人浅出地介绍了Java语言程序开发的环境、Java语言的基础语法知识、Java语言的编程思想、Java语言的网络编程、数据库编程、Swing组件编程、Web编程等多种应用以及项目实战内容。本书注重学练结合,基础知识均配合相应示例,示例包含完整源码,并附以详细注释,每章还提供相应的练习,相信“基础知识 示例 练习”的形式可以帮助读者牢固掌握知识点,快速提高编程水平。
全书结构完整、思路清晰、逻辑严谨,适合编程爱好者、初学者、中级程序开发人员以及其他相关从业人员阅读使用,相信您阅读本书一定能有所收获!
|
關於作者: |
黎明,副教授,英国布拉德福德大学软件工程专业硕士,对数据库、知识工程及生物信息学颇有研究。
丁洁,计算机技术工程专业硕士,理学与经济学双学士,深耕信息技术基础、编程语言应用及电子商务技术等领域。
张雪英,山西大学软件工程专业硕士,主要从事电子技术与软件工程、网络安全技术与应用方面的研究。
|
目錄:
|
第1章 初识Java语言
1.1 Java简介
1.2 搭建Java开发环境
1.3 Java的开发工具 Eclipse
1.4 第一个Java程序
第2章 变量与基本数据类型
2.1 变量与常量
2.2 标识符与保留字
2.3 基本数据类型
2.4 数据类型的转换
2.5 数组
第3章 运算符和编码规范
3.1 数学运算符
3.2 关系运算符
3.3 三目运算符
3.4 逻辑运算符
3.5 位运算符
3.6 运算符的优先级
3.7 编码规范
第4章 流程控制语句
4.1 条件语句
4.2 循环语句
第5章 面向对象编程
5.1 面向对象的编程思想
5.2 类和对象
5.3 属性
5.4 方法
5.5 this关键字
5.6 static关键字
5.7 代码块
第6章 包装类
6.1 String类
6.2 Integer类
6.3 Boolean类
6.4 Character类
6.5 Double类
6.6 Number类
6.7 Date类
第7章 继承与多态
7.1 继承
7.2 多态
第8章 接口与内部类
8.1 接口
8.2 内部类
第9章 集合类
9.1 Collection接口
9.2 List集合
9.3 Set集合
9.4 Map集合
9.5 其他集合类
9.6 算法
第10章 异常与调试
10.1 认识异常
10.2 捕获异常
10.3 自定义异常
10.4 断言
10.5 日志
10.6 调试技术
第11章 Java I/O
11.1 文件操作
11.2 输入和输出
11.3 字符编码
11.4 对象序列化
第12章 反射
12.1 认识反射机制
12.2 Class类对象实例化
12.3 反射机制与类操作
12.4 反射与设计模式
第13章 多线程
13.1 认识多线程
13.2 线程的生命周期
13.3 创建与操作线程
13.4 线程同步
13.5 线程之间的协作
13.6 线程池
第14章 网络编程
14.1 网络知识
14.2 TCP编程
14.3 UDP编程
第15章 数据库编程
15.1 数据库简介
15.2 JDBC简介
15.3 数据库操作
第16章 Swing用户界面组件
16.1 认识Swing
16.2 Swing组件
16.3 布局管理器
16.4 事件处理
第17章 Web编程
17.1 认识 Web开发
17.2 Java Web开发的主流框架
17.3 Web服务器
17.4 创建Java Web项目
17.5 Web开发相关技术
第18章 企业设备管理系统
18.1 系统分析
18.2 系统设计
18.3 开发环境
18.4 系统实现
参考文献
|
內容試閱:
|
Java语言作为一种高效的、面向对象的高级编程语言,因其具有简单、安全、跨平台、可移植等显著特点,从开发使用至今一直备受欢迎,是广泛流行的编程语言之一。
Java语言功能强大,应用场景广泛,使用Java不仅可以开发软件工具、服务器程序、Web程序和安卓应用,还可以处理大数据。随着信息化发展的不断推进,计算机行业对于程序员的需求逐年上升,由于Java技术横跨多个应用领域,因此对Java人才的需求一直居高不下。在信息化技术日益精进的今天,学习和掌握一门编程语言十分必要,而Java语言无疑是很好的选择。
本书内容循序渐进,按照“搭建开发环境—基础语法知识—高阶编程思想—实战应用”的逻辑顺序详细介绍了如何配置Java开发环境、编写首个应用程序;系统阐述了变量、基本数据类型、运算符、编码规范、流程控制语句等基础语法知识;深入讲解了面向对象、反射、多线程等编程思想;全面展示了Java语言在网络编程、数据库编程、桌面窗体开发、Web开发等方面的实际应用。书中最后以企业设备管理系统为例,演示了完整项目的开发过程。
本书展示和解析了大量贴近工作和生活的编程示例,并且示例提供了完整的代码和运行结果,读者可以根据示例边学边练,在练习中掌握和巩固相关知识点,快速提高编程能力。本书核心代码均配有详细注释,助力读者快速读懂代码逻辑。
书中特别设有“技巧点拨”“巧避误区”和“小试锋芒”版块。“技巧点拨”版块分析Java实用编程技巧,总结Java编程重点和难点,帮助读者提升编程技能;“巧避误区”版块梳理编程过程中的易错点,帮助读者规避误区,少走弯路;“小试锋芒”版块根据重点知识提供相关练习,以练促学,帮助读者复习巩固所学知识,及时检验学习成果。
全书语言通俗易懂、可读性强,内容丰富、启发性强,结构逻辑严谨、层次分明。通过阅读本书,相信你一定可以掌握Java语言,提升编程思想,丰富编程技能。
本书在编撰过程中,借鉴了不少学者的观点与相关资料,在此,对这些学者表示真诚的感谢!同时,欢迎您提出宝贵意见与建议,以便不断完善本书,再次表示感谢!
第14章 网络编程
计算机通过路由器等设备接入网络,网络与网络串连形成了庞大的互联网,接入到互联网的各个计算机之间通过应用程序(如QQ等)可以互相通信,这些应用程序的实现正是依赖于网络编程。
了解网络基础知识,掌握网络编程的方法,能让你进一步熟悉计算机与计算机之间通信的具体过程。
14.1 网络知识
14.1.1 网络与网络协议
网络编程是指编写与其他计算机进行通信的程序。计算机网络实现了计算机与计算机之间的互连,网络应用程序借助网络协议实现计算机之间的数据交流,完成互联应用。
在现实世界中,大家接入到网络中时,好像都处于同一个网络,因为所有接入到网络中的计算机相互之间都能通信,但其实,我们经常使用的计算机网络是由许许多多不同类型的网络通过路由器互连而成的。
计算机与计算机之间想要互相通信,必须遵守同样的通信协议。国际标准化组织ISO于1981年提出了开放系统互联模型OSI,该模型共分为七层,由下到上依次为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。这个标准模型的建立大大推动了网络通信的发展。
14.1.2 TCP/IP协议
TCP协议是传输层协议,IP协议是网络层协议。其实,人们常说的TCP/IP协议不只包含TCP协议和IP协议,它是一个协议簇,包含FTP(应用层)、SMTP(应用层)、UDP(传输层)、TCP(传输层)、IP(网络层)等多种协议,在这些协议中,TCP协议和IP协议最具有代表性,因此被称为TCP/IP协议。
IP协议是表示网络之间互联的协议,它的全称为InternetProtocol。它位于网络层,向上可以为传输层提供各种协议的信息,向下可以将IP信息包放到数据链路层传送。IP协议不保证传送分组的可靠性和顺序,所传送的分组有可能丢失或者产生乱序。
TCP协议是传输控制协议。它位于传输层,是一种面向连接的、可靠的传输层通信协议。许多更高级的协议也是建立在TCP协议之上的,例如我们浏览网页时使用的HTTP协议,发送邮件时使用的SMTP协议等。
UDP协议是无连接通信协议,它不保证数据一定能可靠传输,它传输的数据也无法保证有序,但正是因为使用UDP协议无需建立连接,所以其数据传输速度更快。使用UDP协议能够向若干个目标地址发送数据,也可以接收来自若干个源的数据。
计算机与计算机之间相互通信其实是两台计算机中的进程间相互通信,而两个进程间相互通信依靠的则是TCP、UDP等协议。
技巧点拨
TCP协议和UDP协议的应用场景
TCP协议适用于对数据准确性要求高的场景,如文件传输,邮件的收发等。
UDP协议适用于即时通信,对数据准确性要求不高的场景,如IP电话、实时视频会议等。
14.1.3 IP地址
互联网的出现极大地改变了人们的生活,现在人们可以使用电脑上网,使用各种通讯软件(如微信、QQ等)聊天,还能在线看电影、视频等,我们在使用这些服务之前,都需要与服务端进行连接,然后才能通信。那么,在互联网这个大网络中,用户的计算机是如何找到服务端的呢?
在现实生活中,我们要去商场买东西首先得知道商场的地址,在网络中也一样,想要与其他计算机进行连接也必须知道对方的地址。如果我们把整个因特网看成是一个大的网络,那么连接在这个网络中的每台计算机都有一个属于自己的唯一的标识符,这个标识符就是IP地址,它是一个32位的整数(IPv4地址),是每台计算机在网络中的地址,计算机与计算机之间进行连接和通信都需要依靠IP地址。
IPv4协议中的IP地址是32位的整数,为了便于阅读,人们一般把IP地址的每8位分为一组,共分为4组,组与组之间使用“.”分隔,最终将IP地址以“×.×.×.×”形式表示,例如IP地址“192.168.1.199”。
随着互联网中的用户数逐渐增多,IPv4中的地址已经无法满足需求,因此又提出了IPv6协议,IPv6协议中的地址是128位整数。
14.2 TCP编程
14.2.1 套接字
套接字(Socket),是网络编程的基本组件。它位于传输层和应用层之间,是应用层与TCP/IP协议簇进行通信的中间层(图14-1)。Socket向下对TCP/IP协议进行封装,向上为应用层提供接口,应用程序通过Socket向网络发出请求或应答网络请求,使计算机与计算机之间可以互相通信。
Socket的功能是由操作系统提供的,Java语言对其进行了简单的封装。为什么需要使用Socket进行网络通信呢?因为仅仅使用IP地址进行通信是远远不够的。同一台计算机同一时间可能需要运行多个网络应用程序,如浏览器、聊天软件、邮件等,如果一个数据包只包含IP地址,则无法区分这个数据包是提供给哪个应用程序的。
Socket由IP地址和端口号组成,通过Socket可以将应用程序与端口连接起来,方便接收数据包。端口并非真实的物理存在,而是一个假想的连接装置。端口号的取值范围为0~65535,一般选取1024以后的端口号,因为前面的已经被常用应用程序占用了。
14.2.2 使用套接字通信的流程
TCP是面向连接的传输层协议,在传输数据之前,必须先建立连接。利用TCP协议进行通信的两个应用程序,一个为服务端程序,一个为客户端程序,客户端和服务端使用套接字进行通信的流程如图14-2所示。
java.net.Server Socket类表示服务器套接字,它主要用于接收客户端的请求。服务器套接字一次可以与一个套接字连接,如果存在多个连接请求,则多余的连接请求会进入等待队列。
常用的Server-Socket类的构造方法如下所示。
ServerSocket(int port)
port表示应用程序使用的端口号,该构造方法用于创建一个绑定到特定端口的服务器套接字。
ServerSocket类的常用方法如下所示。
accept()
该方法用于等待客户端的连接,若连接成功,则返回一个Socket对象。
isBound()
该方法用于判断ServerSocket的绑定状态。
getInetAddress()
该方法用于获取InetAddress对象,该对象表示服务器套接字的本地地址。
close()
该方法用于关闭服务器套接字。
bind(SocketAddress endpoint)
该方法将ServerSocket绑定到由IP地址和端口号指定的特定地址。
getLocalPort()
该方法用于获取服务器套接字监听的端口号。
14.2.3 TCP编程实例
ServerSocket对象通过accept()方法与客户端建立连接,一旦连接建立成功将返回一个Socket对象,然后通过该Socket对象与客户端通信,ServerSocket对象继续监听其他客户端连接。
Socket对象通过getInputStream()方法和getOutputStream()方法可以分别获得输入流和输出流,用于读取信息和写入信息。
【例】分别创建服务端和客户端,使二者基于TCP协议进行聊天通信。
定义TCPServer类表示服务端,定义TCPClient类表示客户端,服务端与客户端建立连接后,二者可互相发送消息,当接收到“exit”时,断开连接,通信结束。具体代码如下所示。
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;
……
|
|