教材学习内容总结

第十三章

URL类

URL类是java.net包中的一个重要的类,URL的实例封装着一个统一资源定位符(Uniform Resource Locator),使用URL创建对象的应用程序称作客户端程序。

一个URL对象通常包含最基本的三部分信息:协议、地址、资源。

URL的构造方法

URL类通常使用如下的构造方法创建一个URL对象:

  • public URL(String spec) throws MalformedURLException
  • public URL(String protocol, String host,String file) throws MalformedURLException
读取URL中的资源

URL对象调用:

InputStream openStream()

方法可以返回一个输入流,该输入流指向URL对象所包含的资源。通过该输入流可以将服务器上的资源读入到客户端。

InetAdress类

Internet上的主机有两种方式表示地址:
  • 域名

    例如 www.tsinghua.edu.cn
  • IP地址

    例如 202.108.35.210

    java.net包中的InetAddress类对象含有一个Internet主机地址的域名和IP地址,例如 www.sina.com.cn/202.108.37.40
获取地址
  • 获取Internet上主机的地址:

    可以使用InetAddress类的静态方法getByName(String s);

    获得一个InetAddress对象,该对象含有主机地址的域名和IP地址,该对象用如下格式表示它包含的信息:

    www.sina.com.cn/202.108.37.40
  • 获取本地机的地址:

    我们可以使用InetAddress类的静态方法getLocalHost()获得一个InetAddress对象,该对象含有本地机的域名和IP地址。
套接字

IP地址标识Internet上的计算机,端口号标识正在计算机上运行的进程(程序)。端口号被规定为一个16位的0~65535之间的整数。

当两个程序需要通信时,它们可以通过使用Socket类建立套接字对象并连接在一起(端口号与IP地址的组合得出一个网络套接字)。

客户端套接字:

建立连接到服务器的套接字对象:

try{  Socket mysocket=new Socket(“http://192.168.0.78”,1880);
}
catch(IOException e)
{ }

与mysocket相关的方法

  • getInputStream()获得一个输入流
  • getOutputStream()获得一个输出流
  • 用getInputStream()得到的输入流接到另一个DataInputStream数据流上
  • 用getOutputStream()得到的输出流接到另一个DataOutputStream数据流上
ServerSocket对象与服务器端套接字

服务器必须建立一个ServerSocket对象,该对象通过将客户端的套接字对象和服务器端的一个套接字对象连接起来,从而达到连接的目的。

建立ServerSocket对象:

try{  ServerSocket  serverForClient =new ServerSocket(2010);
}
catch(IOException e){}

使用方法accept()将客户的套接字和服务器端的套接字连接起来,代码如下所示:

try{  Socket sc= serverForClient .accept();
}
catch(IOException e){}

所谓“接收”客户的套接字连接就是accept()方法会返回一个和客户端Socket对象相连接的Socket对象。

使用多线程技术

使用Socket类不带参数的构造方法Socket()创建一个套接字对象,该对象需调用

public void connect(SocketAddress endpoint) throws IOException

为了使用connect方法,可以使用SocketAddress的子类InetSocketAddress创建一个对象,InetSocketAddress的构造方法是:

InetSocketAddress(InetAddress addr, int port)

发送数据包
  • 用DatagramPacket类将数据打包,即用DatagramPacket类创建一个对象,称为数据包。

    用DatagramPacket的以下两个构造方法创建待发送的数据包:
DatagramPacket(byte data[],int length,InetAddtress address,int port)
DatagramPack(byte data[],int offset,int length,InetAddtress address,int port)
  • 用DatagramSocket类的不带参数的构造方法:DatagramSocket()创建一个对象,该对象负责发送数据包。例如:
DatagramSocket  mail_out=new DatagramSocket();
mail_out.send(data_pack);

代码托管

上周考试错题总结

  • 错题1

    对于下列程序,哪个叙述是正确的? B

    A . JVM认为这个应用程序共有两个线程。

    B . JVM认为这个应用程序只有一个主线程。

    C . JVM认为这个应用程序只有一个thread线程。

    D . 程序有编译错误,无法运行。

  • 错题2

    下列关于守护线程的说法,正确的是 A B C D

    A . thread.setDaemon(true)必须在thread.start()之前设置,否则会报IllegalThreadStateException异常。

    B . 如果用户线程已经全部退出运行,只剩下守护线程存在,那么虚拟机也就退出了。

    C . 将线程转换为守护线程可以通过调用Thread对象的setDaemon(true)方法来实现 。

    D . 守护线程应该永远不去访问固有资源,如文件、数据库,因为它会在任何时候甚至在一个操作的中间发生中断。

感悟

现在的java已经进阶到了网络编程了,需要花很多时间去理解一些从未遇到过的的问题和操作。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 1/4 10/10
第二周 300/500 1/5 10/20
第三周 800/1300 1/6 20/40
第四周 700/2000 2/8 20/60
第五周 1100/ 3100 2/10 30 /90
第六周 1100 /4200 1/ 11 15 /105
第七周 500/4700 3/14 20/125
第八周 800/5500 2/16 20/145
第九周 1100/6600 2/18 20/165
第十周
  • 计划学习时间:20小时

  • 实际学习时间:20小时

参考资料

20165231 2017-2018-2 《Java程序设计》第9周学习总结的更多相关文章

  1. 学号 20175212 《Java程序设计》第九周学习总结

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

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

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

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

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

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

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

  5. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  6. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  7. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  8. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  9. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

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

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

随机推荐

  1. CodeForces1051F LCA + Floyd

    题意:给定一个10W的无向联通图,和10W的询问,每个询问求任意两点间的距离,限制条件是边数-点数不超过20 一般来说图上任意两点间的距离都会采用Floyd算法直接做,但是这个数据范围显然是不合理的, ...

  2. [DUBBO] Unexpected error occur at send statistic, cause: Forbid consumer 192.168.3.151 access servic

    [DUBBO] Unexpected error occur at send statistic, cause: Forbid consumer 192.168.3.151 access servic ...

  3. python socket原理 及socket如何使(tcp udp协议)

    网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. 建立网络通信连接至少要一对端口号(socket).socket本质是编程接口(API) 主要内容: 1.基于 ...

  4. MySQL mysqldump与source导入慢的解决方法

    Jquery中文网 >  数据库  >  mysql  >  正文 MySQL mysqldump与source导入慢的解决方法 MySQL mysqldump与source导入慢的 ...

  5. PHP7 网络编程(一)多进程初探

    准备 我们都知道PHP是单进程执行的,PHP处理多并发主要是依赖服务器或PHP-FPM的多进程及它们进程的复用,但PHP实现多进程也意义重大,尤其是在后台Cli模式下处理大量数据或运行后台DEMON守 ...

  6. PHP7 学习笔记(十四)Reids 键空间通知配合TP5 实现分布式延时任务

    测试环境:windows 10 + phpStudy 配置redis配置文件 redis.windows.conf notify-keyspace-events "Ex" 重启re ...

  7. 060、在docker中使用flannel(2019-03-29 周五)

    参考https://www.cnblogs.com/CloudMan6/p/7441188.html   配置docker 连接flannel   编辑host1的docker配置文件/etc/sys ...

  8. java操作数据库:增删改查

    不多bb了直接上. 工具:myeclipse 2016,mysql 5.7 目的:java操作数据库增删改查商品信息 test数据库的goods表 gid主键,自增 1.实体类Goods:封装数据库数 ...

  9. Android MediaPlayer播放raw资源封装类

    import android.content.Context; import android.media.MediaPlayer; import xxxx.R; public class MediaU ...

  10. 清除 SQL Server Management Studio 服务器名称历史记录

    Ø  前言 在开发过程中,经常使用 SQL Server Management Studio 连接本地或远程 SQL Server 服务器,时间长了可能有些名称就不用了或者重复了,SQL Server ...