教材内容总结

网络编程

定义:网络编程就是在两个或两个以上的设备之间传输数据。

计算机网络概述:

网络编程的实质就是两个(或多个)设备(例如计算机)之间的数据传输。

网络中的每个设备都会有一个唯一的数字标识,这个就是IP地址。在计算机网络中,现在命名IP地址的规定是IPv4协议,该协议规定每个IP地址由4个0-255之间的数字组成,例如10.0.120.34

为了方便记忆,有创造了另外一个概念——域名(Domain Name),例如sohu.com等。一个IP地址可以对应多个域名,一个域名只能对应一个IP地址。

端口(port):在同一个计算机中每个程序对应唯一的端口,这样一个计算机上就可以通过端口区分发送给每个端口的数据了,就是一个计算机上可以并发运行多个网络程序(在硬件上规定,端口的号码必须位于0-65535之间)

网络编程概述:

网络通讯基于“请求-响应”模型。第一次主动发起通讯的程序被称作客户端而在第一次通讯中等待连接的程序被称作服务器端。

客户端被安装在用户电脑上,服务器端程序运行在公司机房中,为用户提供服务。这种网络编程的结构被称作客户端/服务器结构,也叫做Client/Server结构,简称C/S结构。表现力丰富,但通用性差。

没有必要使用专用的客户端,而使用通用的客户端,例如浏览器,这种结构被称作浏览器/服务器结构,也叫做Browser/Server结构,简称为B/S结构。开发的压力比较小。但是表现力不强,无法进行系统级操作。

网络通讯方式

TCP(传输控制协议)方式

UDP(用户数据报协议)方式

网络编程技术

网络编程步骤

客户端网络编程

服务器网络编程

客户端网络编程步骤

建立网络连接:建立网络连接时需要指定连接到的服务器的IP地址和端口号,建立完成以后,会形成一条虚拟的连接,后续的操作就可以通过该连接实现数据交换了。

交换数据:由客户端发送一个请求数据到服务器,服务器反馈一个响应数据给客户端,如果客户端不发送请求则服务器端就不响应。

关闭网络连接:在数据交换完成以后,关闭网络连接,释放程序占用的端口、内存等系统资源,结束网络编程。

服务器端网络编程步骤

监听端口:服务器端属于被动等待连接,所以服务器端启动以后,不需要发起连接,而只需要监听本地计算机的某个固定端口即可。

获得连接:当客户端连接到服务器端时,服务器端就可以获得一个连接,这个连接包含客户端的信息,例如客户端IP地址等等,服务器端和客户端也通过该连接进行数据交换。

交换数据:服务器端通过获得的连接进行数据交换。接收客户端发送过来的数据,然后进行逻辑处理,再把处理以后的结果数据发送给客户端。在数据交换完成以后,关闭和客户端的连接。

关闭连接:当服务器程序关闭时,需要关闭服务器端,通过关闭服务器端使得服务器监听的端口以及占用的内存可以释放出来,实现了连接的关闭。

Java网络编程技术

InetAddress类:该类的功能是代表一个IP地址,并且将IP地址和域名相关的操作方法包含在该类的内部。

Socket类:以java.net.Socket类代表客户端连接,以java.net.ServerSocket类代表服务器端连接。

在客户端网络编程中,首先需要建立连接,在Java API中以java.net.Socket类的对象代表网络连接,所以建立客户端网络连接,也就是创建Socket类型的对象,该对象代表网络连接,示例如下:

Socket socket1 = new Socket(“192.168.1.103”,10000);

     Socket socket2 = new Socket(“www.sohu.com”,80)

连接一旦建立,紧接着的步骤就是按照“请求-响应”模型进行网络数据交换,在Java语言中,数据传输功能由Java IO实现,也就是说只需要从连接中获得输入流和输出流即可,然后将需要发送的数据写入连接对象的输出流中,在发送完成以后从输入流中读取数据即可。示例代码如下:

OutputStream os = socket1.getOutputStream(); //获得输出流

InputStream is = socket1.getInputStream();     //获得输入流
最后当数据交换完成以后,关闭网络连接,释放网络连接占用的系统端口和内存等资源,完成网络操作,示例代码如下: socket1.close();

教材中的问题及解决过程

1、22.6中使用await而没有使用wait,两者区别为?

• wait()后,线程会释放掉它所占有的“锁标志”,从而使线程所在对象中的其他shnchronized数据可被别的线程使用。

代码托管

https://git.oschina.net/bestiisjava2017/nhx20155309-Java

结对及互评

20155220 吴思其http://www.cnblogs.com/20155220wsq/p/6718224.html

错题总结及分析

1.Linux中使用rm删除文件时,如果想忽略提示,直接删除文件,可以使用()选项强制删除。

A .

-r

B .

-R

C .

-c

D .

-f

答案是d

2.Linux中使用cp命令拷贝目录时要加上()选项。

A .

-r

B .

-directory

C .

-all

D .

-R

答案是ad

3.Linux中获取当前路径的绝对路径的命令是()?

A .

cd

B .

passwd

C .

tree

D .

pwd

答案是d

4.NIO2中,可以使用()中的方法取出文件系统根目录信息。

A .

Path

B .

DirectoryStream

C .

FileStore

D .

FileSystem

答案是d

5.Java NIO中与InputStream/OutputStream相对应的接口是(),用来连接数据节点。

A .

Channel

B .

Buffer

C .

Path

D .

FileStore

答案是a

6.正则表达式 zo* 匹配()

A .

z

B .

zo

C .

zoo

D .

zooooooooooooooooooooooooooo

答案是abcd

7.正则表达式 r.t 能够匹配字符串()

A .

rat

B .

rt

C .

rut

D .

root

答案是ac

8.正则表达式“r.t”匹配字符串“rat”的Java 代码表达式是()

A .

"rat".matcher("r.t")

B .

"r.t".matcher("rat")

C .

Pattern.compile("rat").matcher("r.t")

D .

Pattern.compile("r.t").matcher("rat")

答案是d

9.Suppose we have an array of String objects identified by the variable names. Which of the following for loops will not correctly process each element in the array.(假如我们有一个名为names的String对象数组,下面哪个for循环不能遍历数组中的每一个元素?)

A .

for(int i = 0; i < names.length; i++)

B .

for(String name : names)

C .

for(int i = 0; i < names.length(); i++)

D .

none of these will correctly process each element(以上都不能遍历)

E .

all of these will correctly process each element(以上都能遍历)

答案是c

10.可以通过Logger logger = new Logger(); 来产生Logger对象。

A .

True

B .

False

答案是b

学习与感悟

不知不觉课本上的内容已经接近了尾声。但是感觉自己对于java课程的了解还只是杯水车薪。在java路上还有很长一段路要走。正如同每周的小测验就算是自己感觉掌握得很好,可是结果还是不尽如人意。所以书自己准备再翻阅一遍,希望之后自己对java的理解能更深。

学习进度条

代码行数(新增/累积)	博客量(新增/累积)	学习时间(新增/累积)

目标 5000行 30篇 400小时

第一周 50/100 1/1 24/24

第二周 250/300 1/2 30/54

第三周 552/852 1/3 16/60

第四周 717/1569 1/4 10/70

第五周 495/2064 1/5 6/76

第六周 754/2818 1/6 7/82

第七周 679/3493 2/8 5/87

第八周 302/3795 3/8 6/90

预计学习时间6小时

实际学习时间3小时

2016-2017-2 20155309南皓芯《java程序设计》第十周学习总结的更多相关文章

  1. 2016-2017-2 20155309南皓芯java第五周学习总结

    教材内容总结 这一周学习的进度和前几周比较的话是差不多的,都是学习两章. 异常处理 1.理解异常架构 2.牚握try...catch...finally处理异常的方法 3.会用throw,throws ...

  2. 2016-2017-2 20155309 南皓芯java第六周学习总结

    教材内容详解 这一次主要学习的是第十章与第十一章的内容.主要讲述了串流,字符处理和线程以及并行API. 输入输出 串流:Java中的数据有来源(source)和目的地(destination),衔接两 ...

  3. 2016-2017-2 20155309南皓芯java第四周学习总结

    教材内容总结 这次我们学习的还是两章的内容,学习任务量跟上次比的话大体上来讲是差不多的. 继承与多态 继承 继承也符合DRY(Don't Repeat Yourself)原则 Role role1 = ...

  4. 201521123027 <java程序设计>第十周学习总结

    1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 异常: 多线程: 2.书面作业 Q1.finally 题目4-2 1.1 截图你的提交结果(出现学号) 1.2 ...

  5. Java程序设计第十周学习总结

    Java课程知识梳理: 流的区分; 字符流与字节流的区别: 字节流是直接操作文件本身的,如果没有关闭字节流操作,文件会依然输出内容 而字符流在程序运行之后会发现文件没有任何的内容,这是因为字符流操作的 ...

  6. 20155220 2016-2017-2 《Java程序设计》第九周学习总结

    20155220 2016-2017-2<Java程序设计>第九周学习总结 教材学习内容总结 JDBC(Java DataBase Connectivity)即java数据库连接,是一种用 ...

  7. 20155336 2016-2017-2《JAVA程序设计》第九周学习总结

    20155336 2016-2017-2<JAVA程序设计>第九周学习总结 教材学习内容总结 第十六章 JDBC(Java DataBase Connectivity)即java数据库连接 ...

  8. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  9. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  10. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

随机推荐

  1. UIImage加载图片的方式以及Images.xcassets对于加载方法的影响

    UIImage加载图片的方式以及Images.xcassets对于加载方法的影响 图片缓存 根据是否将创建好的对象缓存入系统内存,有两类创建UIImage对象的方法可选: 缓存:+ imageName ...

  2. 自定义ribbon规则

    关于ribbon的知识:. 在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的.Spring cloud有两种服务调用方式,一种是ribbon+restT ...

  3. shell实例浅谈之一产生随机数七种方法

    一.问题 Shell下有时需要使用随机数,在此总结产生随机数的方法.计算机产生的的只是“伪随机数”,不会产生绝对的随机数(是一种理想随机数).伪随机数在大量重现时也并不一定保持唯一,但一个好的伪随机产 ...

  4. linux 中 virtualenvwrapper的使用

    原文链接:http://www.jianshu.com/p/3abe52adfa2b Virtaulenvwrapper Virtaulenvwrapper是virtualenv的扩展包,用于更方便管 ...

  5. enumerate 遍历numpy数组

    enumerate 遍历numpy数组 觉得有用的话,欢迎一起讨论相互学习~Follow Me 遍历一维数组 i,j 分别表示数组的 索引 和 存储的值 import numpy as np a=np ...

  6. IOC轻量级框架之Autofac

    http://www.cnblogs.com/WeiGe/p/3871451.html http://www.cnblogs.com/hkncd/archive/2012/11/21/2780041. ...

  7. 20155213 2016-2017-2 《Java程序设计》第七周学习总结

    20155213 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 Lambda 如果使用JDK8的话,可以使用Lambda特性去除重复的信息. 在只有Lamb ...

  8. [NOIP提高&洛谷P1024]一元三次方程求解 题解(二分答案)

    [NOIP提高&洛谷P1024]一元三次方程求解 Description 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约 ...

  9. 9、StringBuffer和StringBuilder

    StringBuffer简介 StringBuffer是一个字符串缓冲区,如果需要频繁的对字符串进行拼接时,建议使用StringBuffer.工作原理StringBuffer的底层是char数组,如果 ...

  10. 【译】第十篇 SQL Server代理使用代理帐户

    本篇文章是SQL Server代理系列的第十篇,详细内容请参考原文 在这一系列的上一篇,你查看了msdb库下用于授权访问SQL Server代理的安全角色.这些角色包括SQLAgentUserRole ...