教材学习内容总结

第十三章

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. qml:基本知识记录

    1.  property信号处理函数: 在qml中,通过property可以定义属性,这些属性自带信号处理函数,例如: property   string    szTitle: “hello wor ...

  2. layui基础总结

    1.layui结构 ├─css //css目录      │  │─modules //模块css目录(一般如果模块相对较大,我们会单独提取,比如下面三个:)      │  │  ├─laydate ...

  3. JAVA核心技术I---JAVA基础知识(知识回顾)

    一:多态问题 class Father { public void hello() { System.out.println("Father says hello."); } } ...

  4. Sublime Text 3 Mac常用快捷键与注意事项

    大多数情况下容易忘记的快捷键,在此整理了一下. 编辑快捷键:cmd+L:选择行(重复按下将下一行加入选择):cmd+D:选择词(重复按下时多重选择相同的词进行多重编辑):cmd+shift+D 复制光 ...

  5. Hadoop记录-Hadoop集群添加节点和删除节点

    1.添加节点 A:新节点中添加账户,设置无密码登陆 B:Name节点中设置到新节点的无密码登陆 C:在Name节点slaves文件中添加新节点 D:在所有节点/etc/hosts文件中增加新节点(所有 ...

  6. Web API中的Help Page

    一.自动创建带帮助的WebAPI 第一步  创建项目的时候选择WebAPI 如下图所示,生成的项目会自动生成帮助文档 第二步  设置调用XML文档的代码 第三步 设置项目注释XML文档生成目录 项目— ...

  7. STM32学习笔记:【001】时钟树与RCC

    导言 如果学过单片机的同学应该不会陌生,学习51单片机时最经常听到的就是“最小系统”. 最小系统里面少不了晶振,否则单片机无法工作. 单片机需要晶振(时钟源)来工作,那么对于STM32芯片同样如此. ...

  8. JavaScript中调皮的undefined

    JavaScript中调皮的undefined 在JavaScript中undefined只是一个标识符,不是关键字,这个很不靠谱的标识符还不能像其他符号一样随意使用,一方面是需要它的原始值保持不变, ...

  9. Springboot中Feign的使用总结

    Feign是Webservice服务的客户端,创建接口+注解就可完成,实现简单 客户端通过@EnableFeignClients开启Feign的支持功能 @SpringBootApplication ...

  10. keeping.py

    定时push+告警 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author : 71standby@gmail.com # Description ...