1、URL

URL—Uniform Resource Location统一资源定位符URL是Internet上用来描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上,特别是著名的Mosaic。采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。URL一般由三部组成
①协议(或称为服务方式)
②存有该资源的主机IP地址(有时也包括端口号)
③主机资源的具体地址。如目录和文件名等

URL 可以通过 OpenConnection() 获得一个 URLConnection 对象,而 URLConnection 可以通过 connection() 等方法对网络资源进行操作。

2、URI

URI—Uniform Resource Identifier通用资源标志符

Web上可用的每种资源如HTML文档、图像、视频片段、程序等都是一个来URI来定位的
URI一般由三部组成
①访问资源的命名机制
②存放资源的主机名
③资源自身的名称,由路径表示,着重强调于资源。

① URI 提供一个 toURL() 方法将 URI 转化成一个 URL ,如果转换不成功会抛出 MalformedURLException 或者在执行过程中可能会抛出: IllegalArgumentException 。

② URI 实现了 Serializable 和 Comparable 接口,由此看来 URI 是可以被序列化的,并且需要提供 Comparable 接口的 compareTo 方法。

3、总结

① 都是 java.net 包下的。
② URL 是 URI 的一个子集,URL是 URI 其中的一种。
③ URI 类在某些特定的情况下,会对其组成的字段执行转义。建议使用 URI 管理 URL 的编码和解码,并使用 URI.toURL() 和 URL.toURI() 进行转换。