Java类库里有两个对应的类java.net.URL和java.net.URI:
看看官方定义:
(URL)A Uniform Resource Locator that identifies the location of an Internet resource as specified by RFC 1738.(统一资源定位符用于标示网络资源的位置)
(URI,统一资源标识符)A Uniform Resource Identifier that identifies an abstract or physical resource, as specified by RFC 2396.(统一资源标识符用于标示一个抽象或者物理资源)
个人觉得最大的区别就是:前者具体,后者抽象
URI表示请求服务器的路径,定义这么一个资源。而URL同时说明要如何访问这个资源(http://)。
在Java类库中,URI类不包含任何访问资源的方法,它唯一的作用就是解析。相反的是,URL类可以打开一个到达资源的流,因此URL类只能作用于那些 Java类库知道该如何处理的模式,