3 com.google.common.net:这个
package包含了与主机标示
(数字
IP和域名
)相关的工具方法和工具类。
3.1 HostSpecifier:与主机标示相关的类,内部用
private字符串以
ip或域名来保存主机地址。
内部类:
TeredoInfo:
Teredo——
一种通过网络地址转换器
(NAT)
发送
IPv4 封装的
IPv6 数据包的
IPv6
转换技术。
静态方法:
fromValid(String
specifier):返回
HostSpecifier。将字符串
specifier解析为
ip或域名,根据解析结果创建
HostSpecifier的实例。
from(String
specifier):返回
HostSpecifier。如果知道
specifier是有效的就直接调用
fromValid(),否则调用
from()。
isValid(String
specifier):判断
specifier是否是有效的主机地址。
3.2 InetAddresses:提供了与
InetAddress类相关的静态工具方法。
静态方法:
forString(String
ipString):如果
ipString是
ip地址则返回
InetAddress,否则会抛出异常。
isInetAddress(String
ipString):判断
ipString是否是有效的
ip地址。
toUriString(InetAddress
ip):返回
ip的字符串形式。
IPV4的形式类似于:
127.0.0.0,而
IPV6的形式类似于:
[2001:db8::1]。
forUriString(String
hostAddr):根据
Uri字符串创建
InetAddress的实例。
isUriInetAddress(String
ipString):判断
ipString是否为
Uri形式的
IP地址的字符串。
isCompatIPv4Address(Inet6Address
ip):判断
ip是否是
IPv4兼容地址。
getCompatIPv4Address(Inet6Address
ip):从
ip获取
IPv4地址,返回
Inet4Address的实例。
如果
IPv6地址实际上是
IPv4的地址,后
32位元可以用
10进制数表示;因此:
ffff:192.168.89.9
等价于:
:ffff:c0a8:5909,但不等价于:
:192.168.89.9
和:
:c0a8:5909。
ffff:1.2.3.4格式叫做
IPv4
映射地址
,是不建议使用的。而:
:1.2.3.4格式叫做
IPv4
一致地址
。
IPv4
地址可以很容易的转化为
IPv6格式。举例来说,如果
IPv4的一个地址为
135.75.43.52(十六进制为
0x874B2B34),它可以被转化为
0000:0000:0000:0000:0000:0000:874B:2B34或者:
:874B:2B34。同时,还可以使用混合符号(
IPv4-
compatible address),则地址可以为:
:135.75.43.52。
is6to4Address(Inet6Address
ip):判断
ip是否是
6to4地址。
get6to4Address(Inet6Address
ip):从
ip获取植入的
IPv4地址,返回
Inet4Address的实例。
6to4隧道可以将多个
IPv6域通过
IPv4网络连接到
IPv6网络。它和
IPv4兼容
IPv6自动隧道类似,使用一种特殊的地址——
2002:a.b.c.d:xxxx:xxxx:xxxx:xxxx:xxxx格式的
6to4地址。其中
a.b.c.d是内嵌在
IPv6地址中的
IPv4
地址,可以用来查找
6to4网络中的其它终端。
6to4地址有
64位网络前缀,其中前
48位由路由器上的
IPv4地址决定,用户不能改变,后
16位由用户
自己定义。这样,这个边缘路由器后面就可以连接一组网络前缀不同的网络。
isTeredoAddress(Inet6Address ip)
:判断ip
是否是Teredo
地址。
getTeredoInfo(Inet6Address ip)
:从ip
获取TeredoInfo
。
isIsatapAddress(Inet6Address ip)
:判断ip
是否是Isatap
地址。
getIsatapIPv4Address(Inet6Address
ip)
:从ip
获取IPv4
地址,返回Inet4Address
的实例。
hasEmbeddedIPv4ClientAddress(Inet6Address
ip)
:判断
ip
中是否有嵌入的
IPv4
地址。
getEmbeddedIPv4ClientAddress(Inet6Address
ip)
:获取
ip
中嵌入的
IPv4
地址。
getCoercedIPv4Address(InetAddress
ip)
:将
ip
强制转换为
IPv4
地址。
coerceToInteger(InetAddress
ip)
:把
ip
强制转换为
int
,不管它是不是
IPv4
地址。
fromInteger(
int
address)
:将
address
转换为
Inet4Address
。
fromLittleEndianByteArray(
byte
[]
addr)
:将
addr
转换为
InetAddress
。
3.3 InternetDomainName:不可改变的,符合语法规范的互联网域名,不保证该域名存在。
静态方法:
fromLenient(String
domain):返回一个
InternetDomainName的实例。
3.4 TldPatterns:提供了判断字符串是否为
TLD的依据。
在因特网上,高端域
(TLD)用来标识因特网址域名中最普通的部分,
TLD要么是一般的高端域
(gTLD)
,例如用于标识商业的
"com"及用于标识教育的
"edu"等等
,要么就是国家代码高端域
(ccTLD),例如用于标识法国的
"fr"以及标识冰岛的
"is"。
以上。
分享到:
相关推荐
本学习笔记将重点介绍Guava中的几个核心工具类:Joiner、Splitter、Preconditions。 1. Joiner类与Splitter类 Joiner类的主要功能是将集合中的元素拼接成一个字符串。通过指定分隔符,可以灵活地将集合或Map中的...
Guava是Google开发的一个Java库,它包含许多用于处理核心Java集合、并发、I/O、字符串、函数式编程等任务的实用工具类。这个压缩包文件看起来是一个学习资源,包括文档和代码示例,旨在帮助用户理解和应用Guava库。 ...
Guava学习笔记笔记的大部分中文翻译内容来源于以下译者: 沉义扬,罗立树,何一昕,武祖校对:方腾飞感谢给我们带来的这一系列好文章。引言Guava工程包含了若干被Google的Java项目广泛依赖的核心库,例如:集合...
Guava-Event-Bus 学习笔记 Guava的EventBus源码学习,基于Guava的18.0版本 分析者: ###1. 背景简介 EventBus是google的一个Java工具包其中的一个工具类,类似的有多个版本其中包括移植到Android端的 和改良的,功能...
最后,笔记可能涵盖了其他工具类和框架的使用,例如Spring框架用于依赖注入和AOP(面向切面编程),MyBatis简化SQL操作,还有可能涉及Apache Commons或Google Guava等实用工具库,它们提供了许多方便的函数和数据...
Guava是Google提供的开源Java库,它包含了大量有用和高效的工具类,例如用于集合操作的工具类,它简化了常见的集合操作,提高了代码的可读性和可维护性。Apache Commons也是一个流行的开源Java库,它提供了很多实用...
标签中提到的“源码”和“工具”,暗示这份学习笔记可能涉及到Guava库的使用,Guava是Google提供的一款广泛用于Java开发的开源库,特别在并发处理和缓存管理方面有着强大的功能。 在提供的压缩包文件中,我们有五份...
谷歌师兄的leetcode刷题笔记 请叫我大师兄 Java Note Project 项目结构目录 bean 统一存放一些测试使用的model的bean,enum... 设计模式 简要说明 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码...
`dependencies`则定义项目所依赖的外部库,例如Google的Guava库和JUnit测试框架。在Gradle中,你可以使用Groovy的DSL(Domain Specific Language)语法来编写这些配置,使得代码更简洁易读。 Groovy语言特性在...
Guava是Google提供的一个强大的Java库,提供了许多实用功能,例如集合框架的扩展、缓存、并发工具等。在处理空集合时,Guava提供了更安全的API。比如,Guava的`Optional<T>`类可以用来表示一个值可能存在也可能不...
2. **类库和框架**:可能引用了一些第三方库,如Apache Commons、Google Guava等,以提供额外的功能,如文件操作、网络通信等。 3. **配置文件**:.properties或.xml文件,用于配置应用的行为和设置,比如数据库...
6. **Guava Cache**:Google的Guava库提供了强大的缓存功能,可能会详细讲解如何使用Guava Cache构建和管理缓存。 7. **JCache(JSR 107)**:Java标准的缓存API,介绍如何利用JCache接口进行缓存操作,以及它与...
在实际开发中,Java的丰富的开源库(如Apache Commons、Guava等)和工具(如Maven或Gradle进行项目管理,JUnit进行单元测试)为"tpLectorDeNotas"的构建提供了极大的便利。同时,遵循良好的编程规范和文档编写,也有...
例如,Apache Commons、Google Guava等开源库提供了丰富的工具类。在Java标准库中,java.util.*包下有许多工具类,如Collections、Arrays、Date和Calendar等,它们提供了排序、查找、复制、格式化日期等操作。学会...
Java语言的特点包括跨平台性(得益于"一次编写,到处运行"的JVM)、强大的库支持(如Apache Commons、Google Guava等)、以及丰富的生态系统(如Maven Central仓库)。在实际开发中,Java被广泛应用于Web应用、大...
在Java多线程的实践中,通过阅读和理解开源项目的源码,如Apache Commons Pool、Google Guava的线程池管理,可以帮助我们更好地理解和运用线程管理。同样,设计模式的源码实现,如Spring框架中的策略模式、工厂模式...
它旨在帮助开发者通过Markdown格式整理和分享他们的学习笔记,同时也涵盖了其他技术领域如Vue.js、Node.js、Android学习以及Guava库的常用解析。 【描述】该项目可能是正在进行中的工作,因为提到了"可能未完结",...
9. **框架与库**:Spring、MyBatis等流行框架的使用,以及第三方库如Apache Commons、Google Guava等。 10. **设计模式**:学习并应用常见的23种设计模式,提高代码的可读性和可维护性。 综上所述,"PubLearnNotes...
heavyz的Tomcat学习笔记(包括启动流程分析、启动脚本分析) ] () [ java8 新特性讲解系列文章 ] () [ Java 从Jar文件中动态加载类 ] () [ Java并发源码分析 - ThreadPoolExecutor ] () [ java ClassLoader 基本原理 ]...