Unique~sgm

《JAVA程序设计》第十一周学习总结

《JAVA程序设计》第十一周学习总结

一、目录:

  • 第十三章知识总结
  • 上周错题
  • 代码托管
  • PSP

二、第十三章知识总结:Java网络编程

  • URL类是java.net包中的一个重要的类,URL的实例封装着一个统一资源定位符,使用URL创建对象的应用程序称作客户端程序。
  • 一个URL对象包含的三个基本信息:协议、地址和资源。
  • 协议:必须是URL对象所在的Java虚拟机支持的协议,常用的有:Http、Ftp、File协议,由参数protocol指定。
  • 地址:必须是能连接的有效IP地址或域名,由参数host指定。
  • 资源:可以是主机上的任何一个文件,由参数file指定。
  • 构造方法:
public URL (String spec) throws MalformedURLException
public URL(String protocol,String host,String file) throws MalformedURLException
  • URL对象调用InputStream()方法返回一个指向对象包含的资源的输入流,可以用来读取信息。
  • Internet上主机表示地址的两种方式:
    • 域名
    • IP地址
  • 获取地址:
    • 获取Internet上主机地址:getByName(String s)
    • 获取本地机地址:getLocalHost()
  • IntAdress类中两个实例方法:
    • public String getHostName()获取对象所含的域名;
    • public String getHostAdress()获取对象所含的IP地址。
  • 套接字中与mysocket相关的方法:
    • getInputStream()获得一个输入流
      • 用getInputStream()得到的输入流接到另一个DataInputStream数据流上
    • getOutputStream()获得一个输出流
      • 用getOutputStream()得到的输出流接到另一个DataOutputStream数据流上
  • Socket类的构造方法: Socket(String host, int port)
  • ServerSocket 的构造方法:ServerSocket(int port)
  • 使用方法accept()将客户端的套接字和服务器端的套接字连接起来
try{ Socket sc = serverForClient.accept();
}
catch(IOException e) {}
  • 套接字通信的两个基本原则:
    • 服务器要启动一个专门的线程与客户的套接字建立连接;
    • 套接字的输入流在读取信息时可能发生阻塞,所以客户端与服务器端都需要在一个单独的线程中读取信息。
  • 数据包的发送与接收:
    • 使用DatagramPacked类的构造方法DatagramPacket([字节数组],[长度],[地址],[端口])创建数据包对象
    • 使用DatagramSocket类创建的对象调用send([数据包])方法来发送数据包。
  • 数据包对象可以用DatagramSocket类得到构造方法DatagramPacket([字节数组],[长度])来创建数据包对象。
  • Internet的地址是a.b.c.d的形式,计算机地址分为四大类:
    ②A类:a<128,则a表示网络地址,b,c,d表示主机地址;
    ②B类:128<=a<192,则a,b表示网络地址,c,d表示主机地址;
    ②B类:192<=a则a,b,c表示网络地址,d表示主机地址;
    ②B类:224.0.0.0~224.255.255.255是保留地址,称为D类地址。
  • 远程调用的基本步骤是:客户程序请求远程对象调用方法,然后远程对象调用方法并返回必要的结果。
  • RMI为标志远程对象,实现了java.rmi包中的Remote接口,注意必须扩展这个接口,同时远程对象的类必须要实现Remote接口。
  • 远程对象创建之前,RMI要求远程服务器必须先启动注册rmiregistry。然后远程服务器使用java.rmi包中的Naming类调用类方法rebind(String name.Remote obj)绑定一个远程对象到rmiregistry所管理的注册表中。
  • 存根是一种特殊的字节码,并让这个存根产生的对象作为远程对象的代理,其字节码后缀为"_Stub"
  • 代理的特点是它与远程对象实现了相同的接口。

三、上周错题:

  • 错题一:
    • 使用 Statement 来执行 SELECT 等查询用的 SQL 指令时,应使用下列哪个方法?
      A .executeSQL()
      B .executeQuery()
      C .executeUpdate()
      D .executeFind()
    • 答案:B
  • 错题二:
    • 哪些 JDBC 驱动程序可以有跨平台的特性?
      A .TYPE 1
      B .TYPE 2
      C .TYPE 3
      D .TYPE 4
    • 答案:C,D
  • 错题三:
    • 关于 Connection 的描述,何者正确?
      A .可以从 DriverManager 上取得 Connection
      B .可以从 DataSource 上取得 Connection
      C .在方法结束之后 Connection 会自动关闭
      D .Connection 是线程安全( Thread-safe)
    • 答案:A,B
  • 错题四:
    • 现有以下代码,哪个选项插入将输出“abc”?
class ForInTest  {
static List list=new ArrayList();
public static void main (String  []  args)  {
list. add("a"); list. add("b");list. add( "c");
//insert code here
System.out.print (o);
}
}

A .for (Iterator o : list.iterator(); o.hasNext (); )
B .for (Iterator o : list)
C .for (Object o : list.iterator())
D .for (Object o : list)

  • 答案:D
  • 错题五:
    • 现有以下代码,哪些选项插入到第5行可以通过编译?
1. import java.util.*;

2.

3. Class FindStuff  {

4.public static void main (String[]args)    {

5.    //insert code here

6.    c.put ("X", 123);

7.    }

8.  }

A .Map c= new SortedMap();
B .HashMap c= new HashMap();
C .HashMap c= new Hashtable();
D .SortedMap c= new TreeMap();
E .ArrayList c= new ArrayList();
F .Map c = new LinkedHashMap();

  • 答案:B,D,F

四、代码托管:

https://gitee.com/sgm5/text1/commit/78388844e3273b54e50bfae9487d80dfa5816c52

五、PSP:

周数 代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第十一周 4797/4057 1/12 19/110

posted on 2019-05-12 15:05  胖铭鸭  阅读(166)  评论(0编辑  收藏  举报

导航