反射 发表于 2020-08-17 更新于 2024-03-18 分类于 java基础 阅读次数: Valine: 本文字数: 3.6k 阅读时长 ≈ 3 分钟 反射Java提供反射来在运行时状态下动态的获取类的属性、方法等信息,在框架中很多地方都用到了反射 阅读全文 »
StAX解析 发表于 2020-08-16 更新于 2023-07-27 分类于 xml 阅读次数: Valine: 本文字数: 254 阅读时长 ≈ 1 分钟 StAX解析StAX解析介绍StAX解析与SAX解析类似,也是基于事件驱动的,不同之处在于StAX采用的是拉模式,应用程序通过调用解析器推进解析的进程,可以调用next()方法来获取下一个解析事件(开始文档,结束文档,开始标签,结束标签),当处于某个元素时可以调用XmlPullParser的getAttribute()方法来获取属性的值,也可以调用nextText()获取本节点的值。 阅读全文 »
SAX解析 发表于 2020-08-16 更新于 2024-08-03 分类于 xml 阅读次数: Valine: 本文字数: 4.6k 阅读时长 ≈ 4 分钟 SAX解析SAX解析介绍由于DOM解析XML的弊端,一种替代的技术就是使用SAX解析。 SAX是基于事件模型的XML解析方式,不需要将整个XML文档加载到内存中,只需加载一部分即可开始解析,在处理过程中不会在内存中记录XML中的数据,占用的资源比较少,当程序处理满足一定条件时,可以立即停止解析,这样不必解析剩余的XML内容。 阅读全文 »
DOM解析 发表于 2020-08-16 更新于 2024-08-02 分类于 xml 阅读次数: Valine: 本文字数: 6.5k 阅读时长 ≈ 6 分钟 DOM解析DOM解析介绍DOM是基于树形结构的XML解析方式,会将整个XML文档读入内存并构建一个DOM树,基于这棵树形结构对各个节点进行操作。XML文档中每个成分都是一个节点, 阅读全文 »
Lock 发表于 2020-08-13 更新于 2024-07-04 分类于 多线程 阅读次数: Valine: 本文字数: 14k 阅读时长 ≈ 13 分钟 Lock由于synchronized在很多情况下是不可控的,所以在jdk5出现了一个新的加锁方式Lock,提供了无条件的,可轮询的,可定时的,可中断的锁获取操作,所有加锁和解锁都是显式的 1234567891011121314public interface Lock { // 获取锁,会阻塞 void lock(); // 如果当前线程未被中断,则获取锁 void lockInterruptibly() throws InterruptedException; // 尝试获取锁,如果锁可用,则获取锁,返回true;如果锁不可用,则返回false boolean tryLock(); // 尝试获取锁,设置超时时间,如果该时间内没有获取到锁,则返回false boolean tryLock(long time, TimeUnit unit) throws InterruptedException; // 释放锁 void unlock(); // 将Condition绑定到该Lock实例上 Condition newCondition();} 阅读全文 »