1.创建线程有集装不同的方式?
- 继承Thread类
- 实现Runnable接口
- 使用Executor框架来创建线程池
2.抽象类和接口的区别?
1.一个类只能继承单个类,但是可以实现多个接口。
2.接口强调特定功能的实现,而抽象类强调所属关系。
3.抽象类中的所有方法并不一定要是抽象的,你可以选择在抽象类中实现一些基本的方法。而接口要求所有的方法都必须是抽象的。
3.解析XML的几种方式的原理与特点:DOM、SAX、PULL?
DOM:
消耗内存:先把xml文档读到内存中,然后再用DOM JavaSE来访问树形结构,并获取数据。这个写起来很简单,但是很消耗内存。要是数据过大,手机不够牛逼,可能手机直接死机。
SAX:
解析效率高,占用内存少,基于事件驱动的:更加简单的说就是对文档进行顺序扫描,当扫描到文档(document)开始与结束、元素(element)开始与结束、文档(document)结束等地方时通知事件处理函数,由事件处理函数做相应动作,然后继续同样的扫描,直至文档结束。
PULL:
与SAX类似,也是基于事件驱动,我们可以调用它的next()方法,来获取下一个解析事件(就是开始文档,结束文档,开始标签,结束标签),当处于某个元素时可以调用XmlPullParser的getAttributte()方法来获取属性的值,也可以调用他的nextText()获取文本节点的值。
网友评论