process: 进程
thread: 线程
线程: 通常使用内部类来创建线程
1. extends Thread 中重写run()方法,实例化thread并调用start();
2. implements Runnable 重写run()方法,用thread 实例化线程并传入runnable,然后start();
并发原理:
* 多个线程同时运行只是我们感官上的一种表现。事实上,线程是并发运行的。
OS将时间划分为很多时间片段,尽可能均匀的分配给每一个线程,获取时间片段的线程被CPU运行,
而其他线程全部等待。所以微观上走走停停,宏观上都在运行。这种现象叫并发,但不是绝对意义上的“同时发生”。
使用ExecutorService实现线程池
* 线程池两个主要作用:
- 控制线程数量
- 重用线程
BlockingQueue:双缓冲队列
* 多线程并发时,若需要使用队列,我们可以使用Queue,但是要解决一个问题就是同步,
但同步操作会降低并发对Queue操作的效率。
* BlockingQueue内部使用两条队列,可允许两个线程同时向队列一个做存储,一个做取出操作。
在保证并发安全的同时提高了队列的存取效率。
Socket:通常称作“套接字”
* 用于描述IP地址和端口,是一个通信链的句柄。
在Internet上的主机一般运行了多个服务软件,同时提供几种服务。
每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。
* 应用程序通常通过Socket向网络发出请求或者应答网络请求。
Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,
操作这个实例,完成所需的会话。
* 通过Socket获取输入流和输出流,这两个方法是使用Socket通讯的关键方法。
* 使用完毕后,要关闭Socket以释放系统资源。 void close();
XML用途:
* XML 可扩展标记语言(EXtensible Markup Language)
- 是独立于软件和硬件的信息传输工具
* XML应用与web开发的许多方面,常用于简化数据的存储和共享。
* XML简化数据共享/简化数据传输/简化平台的变更。
XML元素和属性
* XML文档包含XML元素
* XML元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。
元素可包含其他元素/文本或者两者的混合物。元素也可以拥有属性。
* XML对大小写敏感,这一点不像HTML。
- 在XML中<Letter>标记和<letter>标记是不一样的。
* CDATA段:<![CDATA[文本内容]]> 特殊标签中的实体引用都被忽略,所有内容被当成一整块文本数据对待。
XML解析方式 :Dom4J
* SAX(simple API for XML)是一种XML解析的替代方法。
相比于DOM,SAX是一种速度更快更有效的方法。
* DOM(Document Object Model 即文档对象模型) 常用。
XPath
* XPath是一门在XML文档中查找信息的语言。
XPath可用来在XML文档中对元素和属性进行遍历。
* XPath使用路径表达式在XML文档中进行导航
* XPath包含一个标准函数库
* XPath是XSLT中的主要元素?
* XPath是一个W3C标准
路径表达式:
* 相对路径和绝对路径。
- "." 表示当前节点
- ".."表示当前节点的父节点
* 举例
- /bookstore :选取根节点bookstore,绝对路径写法。
- bookstore/book :选取所有书店下面的书元素,相对路径
- //book :选择所有book子元素,不管在文档的哪个位置
- bookstore//book :bookstore后代中的book元素
- //@lang :选取所有名为lang的属性
* 谓语条件:[] 对节点进行进一步筛选
* 通配符:
- //* :选择文档中的所有元素节点
- /*/* :表示选择所有第二层的元素节点
- /bookstore/* :表示选择bookstore的所有元素子节点
- //title[@*] :表示选择所有带有属性的title元素