JDK_API剖析之java.net包

为实现网络应用程序提供类。(按照字母顺序排序)

1、Authenticator

  • 抽象类
  • 自1.2开始有
  • 无父类和接口
  • Authenticator 类表示懂得如何获得网络连接验证的对象。通常,它通过提示用户输入信息来完成此操作。应用程序通过重写子类中的 getPasswordAuthentication() 使用此类。此方法通常使用各种 getXXX() 访问器方法获取关于请求验证的实体的信息。然后,它必须通过与用户交互或者某些其他非交互手段获取用户名和密码。之后凭据将以 PasswordAuthentication 返回值的形式返回。接下来通过调用 setDefault(Authenticator) 向系统注册此具体子类的实例。需要进行验证时,系统将调用其中一个 requestPasswordAuthentication() 方法,这些方法将依次调用注册对象的 getPasswordAuthentication() 方法。请求验证的所有方法都有一个失败的默认实现

2、BindException

  • 类、异常
  • 自1.1开始有
  • 继承SocketException
  • 试图将套接字绑定到本地地址和端口时发生错误的情况下,抛出此异常。这些错误通常发生在端口正在使用中或无法分配所请求的本地地址时。

3、CacheRequest

  • 抽象类
  • 自1.5开始有
  • 无父类和接口
  • 表示在 ResponseCache 中存储资源的通道。这种类的实例提供一个 OutputStream 对象,协议处理程序可以调用该对象来将资源数据存储到缓存中;另外还提供一个 abort() 方法,该方法允许中断和放弃缓存存储操作。如果从缓存读取响应或将响应写入缓存时遇到 IOException,则将中止当前缓存存储操作。

4、CacheResponse

  • 抽象类
  • 自1.5开始有
  • 无父类和接口
  • 表示从 ResponseCache 获取资源的通道。这种类的实例提供返回实体正文的 InputStream,同时提供一个返回关联响应头的 getHeaders() 方法。

5、ConnectException

  • 类、异常
  • 自1.1开始有
  • 继承SocketException
  • 试图将套接字连接到远程地址和端口时发生错误的情况下,抛出此异常。这些错误通常发生在拒绝远程连接时(例如,没有任何进程在远程地址/端口上进行侦听)。

6、ContentHandler

  • 抽象类
  • 自1.0开始有
  • 无父
  • 抽象类 ContentHandler 是从 URLConnection 读取 Object 的所有类的超类。应用程序一般不直接调用此类中的 getContent 方法。而是调用 URLURLConnection 类中的 getContent 方法。应用程序的内容处理程序工厂(实现 ContentHandlerFactory 接口的类的实例,该接口通过调用 setContentHandler 设置)通过某个 String 来调用,该 String 给出将在套接字上接收的对象的 MIME 类型。工厂返回 ContentHandler 的子类的实例,并调用其 getContent 方法创建对象。

7、ContentHandlerFactory

  • 接口
  • 自1.0开始有
  • 无父
  • 此接口定义内容处理程序的工厂。此接口的实现应该将 MIME 类型映射到 ContentHandler 的实例中。URLStreamHandler 类使用此接口创建 MIME 类型的 ContentHandler
  • 创建从 URLStreamHandler 读取对象的新 ContentHandler的方法createContentHandler(String mimetype)

8、CookieHandler

  • 抽象类
  • 自1.5开始有
  • 无父
  • CookieHandler 对象提供一种回调机制以将 HTTP 状态管理策略实现挂钩到 HTTP 协议处理程序。HTTP 状态管理机制利用 HTTP 请求和响应指定创建有状态的会话的方式。

    可以通过执行 CookieHandler.setDefault(CookieHandler) 来注册 HTTP 协议处理程序要使用的系统级 CookieHandler。调用 CookieHandler.getDefault() 可以获取当前注册的 CookieHandler。 有关 HTTP 状态管理的更多信息,请参见 RFC 2965: HTTP 状态管理机制

9、CookieManager

  • 抽象类
  • 自1.6开始有
  • 继承CookieHandler
  • CookieManager 提供 CookieHandler 的具体实现,它将 cookie 的存储区与围绕接受和拒绝 cookie 的策略分离开来。使用管理存储的 CookieStore 以及做出 cookie 接受/拒绝决策的 CookiePolicy 对象来初始化 CookieManager。

    java.net 包中的 HTTP cookie 管理如下所示:

    use
    CookieHandler <------- HttpURLConnection
           ^
    | impl
    |         use
    CookieManager -------> CookiePolicy
    |   use
    |--------> HttpCookie
                 |              ^
    |              | use
    |   use        |
    |--------> CookieStore
                                ^
    | impl
                                |
    Internal in-memory implementation 

10、CookiePolicy

  • 接口
  • 自1.6开始有
  • 无父
  • CookiePolicy 实现决定应该接受哪个 cookie 以及应该拒绝哪个 cookie。提供了三种预定义的策略实现,即 ACCEPT_ALL、ACCEPT_NONE 和ACCEPT_ORIGINAL_SERVER。

11、CookieStore

  • 接口
  • 自1.6开始有
  • 无父
  • 表示 cookie 存储区的 CookieStore 对象。可以存储和获取 cookie。CookieManager 将调用 CookieStore.add 为每个传入的 HTTP 响应保存 cookie,调用 CookieStore.get 为每个传出的 HTTP 请求获取 cookie。CookieStore 负责移除已过期的 HttpCookie 实例。

12、DatagramPacket

  • final类
  • 自1.0开始有
  • 无父
  • 此类表示数据报包。数据报包用来实现无连接包投递服务。每条报文仅根据该包中包含的信息从一台机器路由到另一台机器。从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达。不对包投递做出保证。

13、DatagramSocket

  • 自1.0开始有
  • 无父
  • 此类表示用来发送和接收数据报包的套接字。

    数据报套接字是包投递服务的发送或接收点。每个在数据报套接字上发送或接收的包都是单独编址和路由的。从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达。

    在 DatagramSocket 上总是启用 UDP 广播发送。为了接收广播包,应该将 DatagramSocket 绑定到通配符地址。在某些实现中,将 DatagramSocket 绑定到一个更加具体的地址时广播包也可以被接收。

    示例:DatagramSocket s = new DatagramSocket(null); s.bind(new InetSocketAddress(8888)); 这等价于:DatagramSocket s = new DatagramSocket(8888); 两个例子都能创建能够在 UDP 8888 端口上接收广播的 DatagramSocket。

14、DatagramSocketImpl

  • 抽象类
  • 自1.1开始有
  • 实现SocketOptions
  • 数据报和多播套接字实现的抽象基类。

15、DatagramSocketImplFactory

  • 接口
  • 自1.3开始有
  • 无父
  • 此接口定义用于数据报套接字实现的工厂。DatagramSocket 类使用它来创建实际的套接字实现。
  • 方法DatagramSocketImpl  createDatagramSocketImpl()

16、FileNameMap

  • 接口
  • 自1.3开始有
  • 无父
  • 提供在文件名和 MIME 类型字符串之间进行映射的机制的简单接口。
  • 方法String getContentTypeFor(String fileName),获取指定文件名的 MIME 类型。

17、HttpCookie

  • final类
  • 自1.6开始有
  • 实现Cloneable
  • HttpCookie 对象表示一个 http cookie,该 cookie 带有服务器和用户代理之间的状态信息。广泛采用 Cookie 来创建有状态 (stateful) 会话。

18、HttpURLConnection

  • 抽象类
  • 自1.1开始有
  • 继承URLConnection
  • 支持 HTTP 特定功能的 URLConnection。有关详细信息,请参阅 the spec 。每个 HttpURLConnection 实例都可用于生成单个请求,但是其他实例可以透明地共享连接到 HTTP 服务器的基础网络。请求后在 HttpURLConnection 的 InputStream 或 OutputStream 上调用 close() 方法可以释放与此实例关联的网络资源,但对共享的持久连接没有任何影响。如果在调用 disconnect() 时持久连接空闲,则可能关闭基础套接字。

19、IDN

  • final类
  • 自1.6开始有
  • 无父
  • 提供在普通 Unicode 表示形式和 ASCII 兼容性编码 (ACE) 表示形式之间进行国际化域名 (IDN) 转换的方法。国际化域名可以使用整个 Unicode 范围内的字符,而传统域名只限于 ASCII 字符。ACE 是只使用 ASCII 字符的 Unicode 字符串编码方式,能够与只识别传统域名的软件(如 Domain Name System)一起使用。

20、Inet4Address

  • final类
  • 自1.4开始有
  • 继承InetAddress
  • 此类表示 Internet Protocol version 4 (IPv4) 地址。此类是由 RFC 790:Assigned NumbersRFC 1918:Address Allocation for Private InternetsRFC 2365:Administratively Scoped IP Multicast 定义的。

    IP 地址的文本表示形式

    用作方法输入的 IPv4 地址的文本表示形式采取以下形式之一:

    d.d.d.d
    d.d.d
    d.d
    d

    当指定四个部分时,将每个部分解释为一个数据字节,并从左到右分配给 IPv4 地址的四个字节。

    当指定三部分地址时,将最后一个部分解释为 16 位量,并放置在网络地址的最右边两个字节。这使得三部分地址格式便于将 Class B 网络地址指定为 128.net.host。

    当提供两部分地址时,将最后一个部分解释为 24 位量,并放置在网络地址的最右边三个字节。这使得两部分地址格式便于将 Class A 网络地址指定为 net.host。

    当仅给出一个部分时,值被直接存储在网络地址中,无需进行字节重排。

    对于将文本表示形式作为输出值返回的方法而言,使用第一种形式,即使用以点分隔的四个字符串。

21、Inet6Address

  • final类
  • 自1.4开始有
  • 继承InetAddress
  • 此类表示互联网协议第 6 版 (IPv6) 地址。

22、InetAddress

  • 自1.0开始有
  • 实现Serializable
  • 此类表示互联网协议 (IP) 地址。

23、InetSocketAddress

  • 自1.0开始有
  • 继承SocketAddress
  • 此类表示互联网协议 (IP) 地址。

原文地址:https://www.cnblogs.com/yang75n/p/8446397.html

时间: 2024-10-29 00:28:21

JDK_API剖析之java.net包的相关文章

JDK_API剖析之java.util包

Java的实用工具类库java.util包.在这个包中,Java提供了一些实用的方法和数据结构. 一.接口 1.Collection<E> 接口 自1.2开始有 继承Iterable<E> Collection 层次结构 中的根接口.Collection 表示一组对象,这些对象也称为 collection 的元素.一些 collection 允许有重复的元素,而另一些则不允许.一些 collection 是有序的,而另一些则是无序的.JDK 不提供此接口的任何直接 实现:它提供更具

JDK_API剖析之java.lang包

java.lang是Java语言的基础包,默认包中的所有来自动import到你写的类中.(按照字母排序) 1.AbstractMethodError 类.错误 自1.0开始有 继承自IncompatibleClassChangeError 当应用程序试图调用一个抽象方法时,抛出此错误.通常由编译器捕获此错误:如果某个类的定义自当前执行方法最后一次编译以后作了不兼容的更改,则此错误只可能在运行时发生. 有带消息和无参构造函数 没有自定义方法 2.Appendable 接口 自1.5开始有 没有父接

java的包导入机制总结与剖析

java中有两种包的导入机制 总结如下: 1>>单类型导入(single-type-import),例如import java.io.File;   2>>按需类型导入(type-import-on-demand),例如 import java.io.*; 关于这两种导入类型大家各有所爱,众说纷纭.这里分析一下这两种导入类型的大致工作原理供大家参考. 单类型导入比较好理解,仅仅导入一个public类或者接口.而对于按需类型导入,有人误解为导入一个包下的所有类,其实不然,看名字就知道

JDK源码简析--java.lang包中的基础类库

题记 JDK,Java Development Kit. 我们必须先认识到,JDK只是,仅仅是一套Java基础类库而已,是Sun公司开发的基础类库,仅此而已,JDK本身和我们自行书写总结的类库,从技术含量来说,还是在一个层级上,它们都是需要被编译成字节码,在JRE中运行的,JDK编译后的结果就是jre/lib下得rt.jar,我们学习使用它的目的是加深对Java的理解,提高我们的Java编码水平. 本系列所有文章基于的JDK版本都是1.7.16. 本节内容 在本节中,简析java.lang包所包

1.java.io包中定义了多个流类型来实现输入和输出功能,

1.java.io包中定义了多个流类型来实现输入和输出功能,可以从不同的角度对其进行分 类,按功能分为:(C),如果为读取的内容进行处理后再输出,需要使用下列哪种流?(G)   A.输入流和输出流 B.字节流和字符流 C.节点流和处理流   D.File stream E.Pipe stream F.Random stream G.Filter stream

Java io包中特殊的抽象类FilterReader和FilterWriter实践

刚才在看帮助文档的时候,发现Java io包中FilterReader和FilterWriter类没使用过,所以想实践一下. 还用以前的老方法,new一个出来,结果提示有错误: Cannot instantiate the type FilterReader 不能实例化? 一查帮助文档原来这样写道: public abstract class FilterReader extends Reader Abstract class for reading filtered character str

java中包命名常见规则

做java的都知道java的包.类.接口.枚举.方法.常量.变量等等模型都有一套约定的命名规则! 学习每一种语言都应该学习对应语法和命名规则,以保持一个良好的编码风格.一来显示自己的专业.二来方便阅读和检查,快速供其他人参考,尽快理解项目代码结构! 今天首先谈谈一些常用的java package命名规则,以后有时间再写写java其他的一些规范! 首先我们该知道的是,java的包名都是由小写单词组成的,类名的首字母都是大写,也就是我们常用的驼峰写法,包路径一般都是对系统模板的定义与归类.这样看了包

java中包容易出现的错误及权限问题

/* 3,权限在不同地方的体现: public protected default private 同一类中: ok ok ok ok 同一包中: ok ok ok 子类中: ok ok 不同包中: ok 在同一包中子类中是可以访问父类中默认权限(default)的方法,但是在不同包中不行! 在不同包中如果子类继承了父类,那么子类就可以访问父类中的protected方法! */ //import mytest.*; /* package mytest; public class DemoA{ p

转:java常用包

JAVA提供了强大的应用程序接口,既JAVA类库.他包含大量已经设计好的工具类,帮助程序员进行字符串处理.绘图.数学计算和网络应用等方面的工作.下面简单介绍JAVA核心类库中常用的组建包. 1.java.lang包 在所有的JAVA API类库中,JAVA.LANG包是最重要的,它提供了JAVA语言的核心类库,包含了运行JAVA程序必不可少的系统类,如:基本数据类型.基本数学函数.字符串处理.线程管理和异常处理类等.运行JAVA程序时,系统会自动加载JAVA.LANG包,既这个包的加载是默认的.