• Java高级编程
21年品牌 40万+商家 超1.5亿件商品

Java高级编程

正版全新

32.11 7.1折 45 全新

仅1件

上海浦东
认证卖家担保交易快速发货售后保障

作者魏勇

出版社清华大学出版社

ISBN9787302450948

出版时间2016-12

装帧其他

开本16开

纸张胶版纸

定价45元

货号2093441

上书时间2023-10-16

闲暇一卷书的书店

三年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
【书    名】 Java高级编程
【书    号】 9787302450948
【出 版 社】 清华大学出版社
【作    者】 魏勇
【出版日期】 2016-12-01
【版    次】 1
【开    本】 16开
【定    价】 45.00元

【编辑推荐】 
Java语言是当今*流行的计算机网络编程语言,它以其健壮性、安全性、可移植性等优点成为了程序员必备的技术。读者通过阅读本书可以全面掌握Java相关开发技术和理论,本书可作为高等院校软件技术专业、网络技术专业及其相关专业的教材或参考书,也适合软件开发人员及其有关人员作为参考书或培训教材。。

【内容简介】 
本书是一本针对Java解决方案的书籍。随着开发项目的增大,以及开发团队人员的增加,项目管理显得越来越重要。本书将介绍注释文档自动生成、Java应用程序转换为操作系统平台直接运行的程序、实时监控程序的JMX技术、利用SVN版本控制等具有Java项目管理特征的技术作为第1章的开头。接下来的主要内容是在具有Java基础知识的前提下,学习如何利用Java类库实现数据结构的主要算法、Java网络编程、MINA框架、Java安全技术、远程对象调用、动态模块等内容。
本书适合软件技术相关专业高年级学生学习,也是Java工程师重要的参考资料。

【目录】 
目录

第1章Java开发环境及工具1

1.1注释文档的生成1

1.2jar与可执行文件的制作12

1.3JMX管理框架24

1.4版本控制34

第2章Java数据结构48

2.1顺序存储结构48

2.2链式存储结构54

2.3树66

2.4Java工具包72

第3章Java网络编程85

3.1Java网络编程概述85

3.2应用案例100

3.2.1通过流套接字连接实现客户机/服务器的交互100

3.2.2用UDP方式实现聊天程序108

3.3Web通信112

3.3.1用Java实现Web服务器112

3.3.2用JEditorPane实现浏览器的功能119

3.3.3WebSocket通信128

3.4邮件服务器136

第4章MINA与通信147

4.1MINA应用程序147

4.2MINA的状态机160

4.3在Windows下搭建基于Jabber协议的移动即时通信172

4.3.1安装Openfire173

4.3.2Jabber客户端的安装与配置181

4.3.3用Openfire开发文档187

第5章Java安全技术203

5.1类装载器203

5.2消息摘要210

5.3私钥密码术219

5.4用公钥加密数据226

5.5数字签名233

5.6保护C/S通信的SSL/TLS242

第6章远程对象256

6.1RMI远程方法的调用256

6.2CORBA268

6.3开发EJB278

第7章OSGi技术292

7.1OSGi的Bundle292

7.2OSGi应用程序开发301

7.3使用OSGi的HTTP服务322

参考文献333

【文摘】 
第3章Java网络编程在Internet被广泛使用的今天,网络编程就显得尤为重要。网络应用是Java语言取得成功的领域之一,Java现在已经成为Internet上*流行的一种编程语言。网络编程似乎需要面对复杂的网络知识。然而,用Java进行网络编程没有那么复杂。因为Java已经封装了网络底层技术、协议等。只需了解基本网络结构,就可轻松地用Java语言编写网络程序。本章将从服务器端和客户端重点介绍利用Socket实现网络通信的示例。通信前需要先创建一个连接,由客户端程序发起;而服务器端的程序需要一直监听着主机的特定端口号,等待客户端的连接。连接成功后收发数据。Java中的网络程序有TCP和UDP两种协议,TCP通过握手协议进行可靠的连接,UDP则是不可靠连接。3.1Java网络编程概述Java语言的网络功能非常强大,其网络类库不仅可以开发、访问Internet应用层程序,而且还可以实现网络底层的通信。【实例】编写程序,利用ServerSocket和Socket创建进行通信的简单程序。一旦建立通信连接后,仅由服务端向客户端发送一个字符串。1. 详细设计程序由服务端程序SimpleServer和客户端程序SimpleClient实现。服务端程序SimpleServer开放端口5432,并等待客户端连接,一旦有客户端连接过来,发出字符串"Hello Net World!"到客户端。客户端连接服务端成功后,接受服务端发来的字符串并进行显示。2. 编码实现(1) 等待与客户端连接语句如下: Socket socket=serversocket.accept();//Get output stream associated with the socketOutputStream outputstream=socket.getOutputStream();DataOutputStream dataoutputstream=new DataOutputStream(outputstream);分析: serversocket是ServerSocket对象,其accept()方法等待客户端连接。一旦连接成功,利用Socket对象生成数据输出流,以便向客户端输出数据。(2) 发送数据语句如下: dataoutputstream.writeUTF("Hello Net World!");//Close the connection, but not the server socketdataoutputstream.close();socket.close();分析: 通过数据输出流对象向客户端发送数据。(3) 客户端接收数据语句如下: Socket socket=new Socket("127.0.0.1", 5432);
//Get an input stream from the socketInputStream inputstream=socket.getInputStream();//Decorate it with a "data" input streamDataInputStream datainputstream=new DataInputStream(inputstream);
//Read the input and print it to the screenSystem.out.println(datainputstream.readUTF());
//When done, just close the steam and connectiondatainputstream.close();socket.close();分析: 客户端首先通过socket连接服务端,再通过数据输入流接收服务端发来的数据。3. 源代码服务端SimpleServer类源代码如下: import java.net.; import java.io.;
 public class SimpleServer { public static void main(String args\[\]) { ServerSocket serversocket=null; try { serversocket=new ServerSocket(5432); } catch (IOException e) { }
 while (true) { try { //等待与客户端连接 Socket socket=serversocket.accept(); //Get output stream associated with the socket OutputStream outputstream=socket.getOutputStream(); DataOutputStream dataoutputstream=new DataOutputStream(outputstream); //发送数据 dataoutputstream.writeUTF("Hello Net World!"); //Close the connection, but not the server socket dataoutputstream.close(); socket.close(); } catch (IOException e) { } } }}注意如果用writeUTF发送数据,在接收端必须用readUTF读数据。客户端SimpleClient代码如下: import java.net.; import java.io.;
 public class SimpleClient { public static void main(String args\[\]) { try { //Open your connection to a server, at port 5432 //localhost used here Socket socket=new Socket("127.0.0.1", 5432);
 //Get an input stream from the socket InputStream inputstream=socket.getInputStream(); //Decorate it with a "data" input stream DataInputStream datainputstream=new DataInputStream(inputstream);
 //Read the input and print it to the screen System.out.println(datainputstream.readUTF());
 //When done, just close the steam and connection datainputstream.close(); socket.close(); } catch (ConnectException connExc) { System.err.println("Could not connect to the server."); } catch (IOException e) {} } }注意UTF表示UCS(Universal Character Set)传输格式。它是一种跨平台数据格式,在网络中进行数据交换一般采用这种格式。4. 测试与运行图31客户端接收服务端字符串运行时先启动服务端程序SimpleServer, 再启动客户端程序SimpleClient, 看到客户端接收到服务端发来的字符串,如图31所示。5. 技术分析1) 网络基础一般情况下,在进行网络编程之前,程序员应该掌握与网络有关的知识,甚至对细节也应该非常熟悉。由于篇幅有限,这里只介绍必备的网络基础知识,详细内容请参看相关的书籍。(1) OSI网络结构计算机网络是建立在结构化软件基础上的。计算机网络是按功能分级(LEVEL)或层(LAYER)的方式来组织的,下层为上层提供服务,如图32所示为层协议和接口。图32层协议和接口网络通信协议是计算机间进行通信所要遵循的各种规则的集合。OSI七层结构是国际标准化组织制定的计算机图33计算机网络体系结构的参考模型网络的体系结构参考模型,如图33所示。① 应用层: 应用层包含大量应用服务的协议。② 表示层: 完成某些特定的功能,它只关心语法和语艺。 ③ 会话层: 会话层允许不同的机器上的用户建立会话层关系。④ 传输层: 从上一层接收数据,必要时把它们分成适当的段传给网络层,并保证这些段可正确到达目的地。⑤ 网络层: 可将数据分组从源路由到目的地。⑥ 数据链路层: 提供一条可以无差错传输比特流的链路。⑦ 物理层: 在信道上传输原始的比特流。(2) TCP/IP协议TCP/IP(Transport Control Protocol/Internet Protocol)是Internet的主要协议,定义了计算机和外设进行通信所使用的规则。TCP/IP网络参考模型包括四个层次: 链路层、网络层、传输层、应用层。Internet的主要协议有: 网络层的IP协议,传输层的TCP和UDP协议,应用层的FTP、HTTP、SMTP等协议。每一层负责不同的功能,下面分别进行介绍。① 链路层: 也称为数据链路层或网络接口层。通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。② 网络层: 网络层对TCP/IP网络中的硬件资源进行标识。连接到TCP/IP网络中的每台计算机(或其他设备)都有唯一的地址,这就是IP地址。IP地址实际上是一个32位整数,通常以“%d.%d.%d.%d”的形式表示,其中,每个d都是一个8位整数。③ 传输层: 在TCP/IP网络中,不同的机器之间进行通信时,数据的传输是由传输层控制的,这包括数据要发往的目标机器及应用程序,以及数据的质量控制等。TCP/IP网络中*常用的传输协议——TCP(Transport Control Protocol)和UDP(User Datagram Potocol)就属于这一层。传输层通常以TCP和UDP协议来控制端点到端点的通信。用于通信的端点是由Socket来定义的,而Socket是由IP地址和端口号组成的。TCP协议是通过在端点与端点之间建立持续的连接而进行通信的。建立连接后,发送端对要发送的数据印记序列号和错误检测代码,并以字节流的方式发送出去;接收端则对数据进行错误检查并按序列顺序将数据整理好,在需要时可以重新发送数据,因此,整个字节流到达接收端时完好无缺。这与两个人打电话的情形类似。TCP协议具有可靠性和有序性等特性,并且以字节流的方式发送数据,通常被称为流通信协议。与TCP协议不同,UDP协议是一种无连接的传输协议。利用UDP协议进行数据传输时,首先需要将要传输的数据定义成数据报(Datagram),在数据报中指明数据所要达到的Socket(主机地址和端口号),其次再将数据报发送出去。这种传输方式是无序的,也不能确保绝对安全可靠,但它非常简单,也具有比较高的效率,这与通过邮局发送邮件的情形非常相似。TCP协议和UDP协议各有各的用处。当对所传输的数据有时序性和可靠性等要求时,应使用TCP协议;当传输的数据比较简单、对时序等无要求时,UDP协议能发挥更好的作用。④ 应用层: 大多数基于Tnternet的应用程序都被看作TCP/IP的*上层协议——应用层协议,例如ftp、http、smtp、pop3、telnet等协议。(3) 通信端口一台机器只通过一条链路连接到网络上,但一台机器中往往有很多应用程序需要进行网络通信,如何区分呢?这就要用到网络端口号(port)了。端口号是一个标记机器的逻辑通信信道的正整数,端口号不是物理实体。IP地址和端口号组成了所谓的Socket,Socket是网络上运行的程序之间双向通信链路的*后终节点,是TCP和UDP的基础。IP协议使用IP地址使数据投递到正确的计算机上,TCP和UDP协议使用端口号将数据投递给正确的应用程序。端口号是用一个16位的整数来表示的,其范围为0~65535,其中,0~1023被系统保留,专门用于那些通用的服务(wellknown service)。例如,HTTP服务的端口号为80,Telnet服务的端口号为21,FTP服务的端口号为23等。因此,当编写通信程序时,应选择一个大子1023的数作为端口号,以免发生冲突。(4) URL概念URL是统一资源定位器(Uniform Resource Locator)的简称,它表示Internet上某一资源的地址。Internet上的资源包括HTML文件、图像文件、声音文件、动画文件以及其他任何内容(并不完全是文件,也可以是对数据库的一个查询等)。通过URL,就可以访问Internet。浏览器或其他程序通过解析给定的URL就可以在

【前言】 
序言前言
Java自从诞生以来,一直是编程语言中的“万金油”,其使用范围广,市场占有率高。随着全球云计算和移动互联网的发展,Java进一步表现出其明显的优势和广阔的发展前景。因而Java是现在大多数企业在从事电子商务开发、企业信息化建设、Web应用开发时的首选技术。实际开发过程中,Java程序员很少碰到只涉及语言本身的问题。因为Java在诸多方面都提供了解决方案。譬如在利用Java进行项目开发过程中如何进行有效的项目管理;如何直接利用Java类库实现数据结构中的算法;如何依靠典型的通信框架实现稳定的系统及建立安全的通信机制;如何实现远程对象的调用;如何实现动态模块等。随着本书学习的深入,读者会越来越感觉到Java不仅是一门编程语言,更重要的是Java提供了多种解决方案。本书每一部分的内容都从提出一个具体的实际工作任务开始,分别通过详细设计、编码实现、源代码、测试与运行、技术分析、问题与思考几个步骤来完成。每个步骤各自需要达到的目的如下。(1) 详细设计。提出实现本任务的基本程序框架和主要算法等。(2) 编码实现。用Java语句实现详细设计,并对重点语句进行分析和说明。(3) 源代码。给出实现程序的完整源程序。读者可以逐步尝试并练习如何在前两个步骤的基础上写出自己的源程序,从而达到*终完成设计和编写源程序的目的。(4) 测试与运行。对以上编写的程序进行测试。有时用几组数据直接运行程序进行测试;有时需要编写测试程序,并对结果进行基本的分析。(5) 技术分析。该步骤是围绕提出的一个工作任务而进行的,对引出的知识需要系统地整理。如果按学科体系组织教学内容,这个步骤应放在*前面,然后再通过一些例子验证。本书基于工作过程,每个具体内容都先让读者知道如何做,再去梳理设计过程中所涉及的知识。(6) 问题与思考。这个步骤对学习过程中有疑问的一些问题进行讨论,既可以为以后的知识做一些铺垫,又可以对所学内容起到举一反三的作用。各章内容如下。第1章主要介绍注释文档自动生成、Java应用程序转换为操作系统平台直接运行的程序、实时监控程序的JMX技术、利用SVN版本控制等具有Java项目管理特征的技术。第2章主要介绍标准Java库提供的*基本的数据结构,讲述如何利用Java编程语言实现各种传统的数据结构。第3章从服务器端和客户端两个角度重点介绍利用Socket实现网络通信的示例。Java中网络程序有TCP和UDP两种协议,TCP通过握手协议进行可靠的连接,UDP则是不可靠的连接。第4章介绍如何利用MINA框架开发通信软件。MINA封装了TCP/IP、线程等内容,由于其安全、稳定,以及开发人员无须考虑通信细节等特点,广泛应用在Client/Server模式的环境中。成功的案例包括Openfire和Spark搭建的及时通信环境。第5章在介绍加密/解密基本知识的前提下,向读者展示如何用Java的类库实现私钥加密/解密、公钥加密/解密、数字签名等技术。第6章介绍RMI框架及EJB框架,让读者能够实现RMI和CORBA编程,能够建立基本的EJB和发布技术。第7章让读者了解OSGi动态模块——Bundle的基本结构,Bundle之间如何调用以及如何实现OSGi的Web应用等。书中实例程序都已调试通过,因而读者在上机实践时,不会出现不必要的困惑。本书在编写过程中得到了清华大学出版社的大力支持,在此表示衷心的感谢!由于时间紧迫,本书难免有不妥之处,欢迎各界专家和读者朋友批评指正,也欢迎读者交流。本人的联系方式是emailweiuser@hotmail.com。
编者2016年8月

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP