教材内容总结

网络编程

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

计算机网络概述:

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

网络中的每个设备都会有一个唯一的数字标识,这个就是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. web项目中日志管理工具的使用

    在web项目中,很多时候会用到日志管理工具,常见的日志管理用具有:JDK logging(配置文件:logging.properties) 和log4j(配置文件:log4j.properties) ...

  2. SPSS数据类型:测量字段、角色字段

    一:测量字段 • 默认值.具有未知存储类型和值的数据(例如,由于其尚未被读取)将显示为<默认值>. •  连续.用于描述整数.实数或日期/时间等数字值,如范围 0 - 100 或 0.75 ...

  3. poj 3294 后缀数组 多字符串中不小于 k 个字符串中的最长子串

    Life Forms Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 16223   Accepted: 4763 Descr ...

  4. 【Asp.net入门01】动态网站基础知识

    本节将介绍: 网站搭建流程 动态网站相关基础概念 网页的访问原理 使用浏览器访问网站是我们几乎天天在做的事情.以前我们只需要关注网页内容,作为网站开发人员,从现在开始我们要关注更深层次的东西了. 1. ...

  5. 使用 Dojo 掌握面向对象开发

    原文出处:Joe Lennon 从头开始学习 Dojo,第 2 部分 使用 Dojo 掌握面向对象开发 什么是面向对象开发? 面向对象编程(Object-Oriented Programming,OO ...

  6. 在MyBatis中,前台传数组批量传id处理数据方式

    <update id = "dishBatchSaleOrDown"> <if test="ids != null"> <if t ...

  7. uboot常用命令详解

    dnw:在进入系统之前进入指令行,输入该指令可下载烧录文件. re:重新启动嵌入式系统. printenv:打印当前系统环境变量. setenv:设置环境变量,格式:setenv name value ...

  8. linux服务器上修改oracle数据库的字符集

    linux服务器上以dba身份进入:sqlplus / as sysdba; 依次执行以下命令:shutdown immediate; startup mount; alter system enab ...

  9. windows10安装ipython jupyter

    环境: windows 10 x64 python2.7(已经安装好numpy scipy matplotlib) 过程: 首先安装visual c++ 9.0环境,去http://aka.ms/vc ...

  10. Vue 表格内容根据后台返回状态位填充文字

    本文地址:http://www.cnblogs.com/veinyin/p/8534365.html  Vue 做表格时我们常用的就是 v-for ,直接把 prop 绑定上去,但是如果表格内容需要我 ...