(一)java基础篇笔记库(6)
来源:互联网 发布:淘宝的优点和缺点 编辑:程序博客网 时间:2024/06/10 17:34
一. 单例
1 ) . 概念 : 单例就是该类只返回一个实例2 ) . 特点 : 单例所具备的特点
1. 私有化的构造函数2. 私有的静态的全局变量3. 公有的静态的方法3 ) . 琐式 : 单例分为懒汉式,饿汉式,和双层琐式
1. 懒汉式 :class single2{private static single2 s=null;private single2(){}public static single2 getsingle2(){if (s==null)s=new single2();return s;}public int age;public void setage(int age){this.age=age;}public int getage(){return age;}}2. 饿汉式 :private int age;public void setage(int age){this.age=age;}public int getage(){return age;}}public class simple {public static void main(String[] args){simple1 s1=simple1.getsimple();s1.setage(32);System.out.println(s1.getage());}}3. 双层琐式 :public class SingleTon {private static SingleTon singleTon = null;public SingleTon() {// TODO Auto-generated constructor stub}public static SingleTon getInstance(){if (singleTon == null) {synchronized (SingleTon.class) {if (singleTon == null) {singleTon = new SingleTon();}}}return singleTon;}}
小结 :
1. 通过双重判断来保证单例设计模式在多线程中的安全性,并且它在性能方面提高了很多
2. 关于Synchroizedsynchronized在方法上加锁(同步锁)synchronized在代码块内部加锁(同步代码块)synchronized(同步锁)
3. 使用synchronized如何解决线程安全的问题?①.synchronized在方法上加锁②.synchronized在代码块内部加锁①懒汉 ②饿汉 ③双重判断
二. 解析XML文件的几种技术
读取方式 : 面向模型,面向事件
1 : 面向模型的dom模式 采用建立树形结构的方式访问 XML 文档
DOM方式原理: 一次性的将xml文档加入内存,在内存中形成一颗dom树,然后通过语言对树的节点进行操作。
分析 : 显然这种操作查找元素快,但是一次性的将文件加载进来,要是小还行,文件大的时候会增大内存负担的,因此这种方式最好是解析小的xml文件的时候用
优势 : 基于内存的,效率高,可随机访问
劣势 : 不可读取大文件
例子 :
1 ) . dom4j1. 概念 : dom4j是一个java的XML API,类似于jbom,用来读写XML文件,是一个非常优秀的java XML API ,也是一个开放源代码的软件2. 特点 : 性能优异,功能强大和极端易使用的特点
4 ) . jdom1. 概念 : 类似于 dom4j ,用于读写XML5 ) .dom1. 概念 : ;类似于 sax ,用于 解析XML2. 特点 : dom不如sax速度快,但dom操作比sax简单
2 : 面向事件的sax模式 采用的事件模型。
SAX方式原理: 边读边解析,按照从做往右从上往下的顺序解析。分析: 由于解析过的节点不能再次利用,要想使用还得再次解析,所以效率相对来说比较低,但只有事件触发了才会去读取文件,所以内存不会很大。优势 : 基于事件的,可读取大文件
劣势 : 效率低,只可读取,不可插入数据(不可随机访问)例子 :
2 ) . sax1. 概念 : sax(simple API for XML)是一种XML解析的替代方法2. 特点: 优势 : 相比于Dom,Sax速度更快更有效,因它逐行扫描文档,一边扫描一边解析,还可在解析文档的任意时刻停止解析劣势 : 相比于Dom,Sax的操作更复杂一些
3 : 关于生成xml3 ) . jaxb1. 概念 : Jaxb(Java Architecture for XML Binding)是一个业界的标准,是一项可以根据XML Schema产生java类的技术2. 特点 : jaxb提供了将XML实例文档反向生成JAVA对象的方法,并能将java对象树的内容重新写到XML实例文档JAXB提供了快速而简便的方法将XML模式绑定到Java表示,从而使java开发者在Java应用程序中能方便的结合XML数据和处理函数
小结 : dom4j与sax之间的对比[注:必须掌握]1. dom4j : 灵活性高,适合对xml等小文件进行灵活的增删改查和导航 ,不适合大文件的原因 : 它是一下子将文件加载到内存中,有可能出现内存溢出现象2. sax : 灵活性低,但适合对大型的xml文件进行解析,适合大文件的原因 : 边读边解析,按照事件触发后从左往右从上往下的顺序解析,很难出现内存溢出
阅读全文
0 0
- (一)java基础篇笔记库(6)
- (一)java基础篇笔记库(1)
- (一)java基础篇笔记库(2)
- (一)java基础篇笔记库(3)
- (一)java基础篇笔记库(4)
- (一)java基础篇笔记库(5)
- (一)java基础篇笔记库(7)
- (一)java基础篇笔记库(8)
- (一)java基础篇笔记库(9)
- (一)java基础篇笔记库(10)
- (一)java基础篇笔记库(11)
- (一)java基础篇笔记库(12)
- (一)java基础篇笔记库(13)
- (一)java基础篇笔记库(14)
- java基础笔记(一)
- Java基础笔记一
- java基础笔记一
- Java学习笔记基础篇(一)
- idea如何快速实现抽象方法
- ActiveMQ持久化方式
- Android中的fragment
- sql的几个函数-sbustr instr lengthb coalesce ISNULL
- Python 库、技巧
- (一)java基础篇笔记库(6)
- leetcode_726. Number of Atoms ? 待解决
- ogreopcode编译笔记
- 使用CoIDE调试STM32单片机
- 617. Merge Two Binary Trees
- 云星数据---Scala实战系列(精品版)】:Scala入门教程017-Scala实战源码-Scala 创建对象 以及类的介绍
- Spring MVC
- 关于java执行命令的一些(调本地的命令 调远程主机的命令 在后台执行命令)
- 最小路径覆盖问题