## DOM解析:
**介绍:**根据XML层级结构在内存中分配一个**树形结构**,在XML DOM每个元素都会被解析为一个节点Node,常用的节点分为:元素节点(Element)、属性节点(Attr)、文本节点(Text)、文档节点(Document)。
**优点:**因为分配了一个树形结构,更快实现的增删改的操作
**缺点:**一次性读取所有数据到内存中,如果解析的文件过大,一次性分配一个树形结构会造成内存的溢出。
**关键包:**org.w3c.dom.Doc- 阅读剩余部分 -
## URI、URL和URN的概念

**简述: **URI是统一资源标识符,URI分为URL和URN,一般常用的都是URL。
**位置:**java.net.URI、java.net.URL
**创建URL对象:**由于URL属于URI,所以用URI和URL创建都是一样的。
**使用URI创建URL对象1:**
URI 对象名 = - 阅读剩余部分 -

**UDP服务端:**
**步骤一:创建UDP套接字**
DatagramSocket ds = new DatagramSocket(本地监听的端口)
**步骤二:封装准备接收数据的DatagramPacket对象**
DatagramPacket dp = new DatagramPacket(new byte\[长度], 数据长度);- 阅读剩余部分 -
**TCP服务端:**
**步骤一:创建服务端套接字**
ServerSocket server = new ServerSocket(端口号);
**步骤二:监听连接**
Socket socket = server.accpet();
**步骤三:获取输入流(读取数据)**
InputStream is = socket.getInputStream();
**步骤四:打印输入流中的内容**
略。
**实例:**
:**InetSocketAddress
**位置:**java.net.InetSocketAddress
**介绍:**由IP地址(或主机名)与端口号组成
**创建InetSocketAddress对象:**
```java
方法一:通过域名+端口号创建
InetSocketAddress socket1 = new InetSocketAddress("www.flayerveo.com", 80);
方法二:通过IP地址+端- 阅读剩余部分 -
**IP地址类:**InetAddress
**位置: **java.net.InetAddress
**功能:**用于存储返回主机名与IP地址信息
**创建InetAddress对象:**
**方法一:**获取本地网卡的IP信息
InetAddress 对象名 = InetAddress**.getLocalHost()**; // 注意:默认的IP信息是首张网卡的



## 非阻塞模型实例:
**服务端:**
主方法:
- 阅读剩余部分 -
## ThreadLocal类
**位置:**位于java.lang包中
**概述:**可以为每一个线程维护一个独立的变量副本。和单例的含义相同,但和单例的区别在于ThreadLocal作用于线程,单例作用于系统。比如在连接数据库时,保证同时只有一个连接,不用在每次获取连接时创建一个新的实例,提高了性能。
**常用方法:**
.get():获取值
.set():设置值
.remove():删除值
重写initialValue():赋初值
.withInitia- 阅读剩余部分 -
## Fork/Join框架
**概述:**该框架是一个ExecutorService的高效实现,采用分而治之的算法充分利用多核或多处理器的运算能力。
**使用场景:**可以将一个任务分成读个可以并行执行的子任务,当子任务完成时,并行结果合并为最终的结果。

**工作窃取算法(work-stealing):**指某个线程从其他队列里窃取任务来- 阅读剩余部分 -
**概念:**java5中引入的一些列并发库中与Executor相关的一些功能类,其中包括“线程池、Executor接口、Executors接口、Callable接口、Future接口等。
**Callable接口: **
功能:该接口与Runnable接口类似,提供了唯一的方法来分装要执行的任务代码,如在Runnable中的方法为run(),Callable中的代码则为call()。Callable与Runnable的不同点在于其方法会将执行结果返回,且可以跑出异常- 阅读剩余部分 -
**并发线程简介:**Java5引入,用于代替原始的使用Thread,简化多线程开发。

## 原子变量类:
**位置:**java.util.concurrent.atomic
**作用:**方便在多线程的环境下,无锁的进行原子操作。
**一共有四种原子更新方式:**
**原子更新基本类型 (存储的是基本数据类型):**
-Ato- 阅读剩余部分 -