java源文件解析

java源文件解析,第1张

建一个Student实体类封装数雹键早据

public static List<Student>readXml() {

List<Student>list = new ArrayList<Student>()

//定义一个<a href="https://www.baidu.com/s?wd=dom%E8%A7%A3%E6%9E%90&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y3uhnvryDYrjIBPyDYn1Rv0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1RznjcYn1TLnH04rjcYnjTvPf" target="_blank" class="baidu-highlight">dom解析</a>器亮纳工厂实例

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance()

try {

//由工厂实例得到一个<a href="https://www.baidu.com/s?wd=dom%E8%A7%A3%E6%9E%90&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y3uhnvryDYrjIBPyDYn1Rv0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1RznjcYn1TLnH04rjcYnjTvPf" target="_blank" class="baidu-highlight">dom解析</a>器

DocumentBuilder dom = factory.newDocumentBuilder()

//找到<a href="https://www.baidu.com/s?wd=xml%E6%96%87%E6%A1%A3&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y3uhnvryDYrjIBPyDYn1Rv0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1RznjcYn1TLnH04rjcYnjTvPf" target="_blank" class="baidu-highlight">xml文档</a>

File file=new File("src/com/jereh/ch05/Students.xml")

Document doc=dom.parse(file)

//

Element root = doc.getDocumentElement()

NodeList stuNodeList = root.getChildNodes()

for (int i = 0i <stuNodeList.getLength()i++) {

Node stu = stuNodeList.item(i)

Student student = new Student()

if (stu != null &&stu.getNodeType() == Node.ELEMENT_NODE) {

/源雀/ System.out.println(stu)

Element stuElement = (Element) stu

student.setNo(stuElement.getAttribute("id"))

// stu.getAttributes().getNamedItem(null)

// Element stu=(Element)stuNodeList

NodeList info = stuElement.getChildNodes()

for (int j = 0j <info.getLength()j++) {

info.item(j).getNodeName()

Node n = info.item(j)

if ("name".equals(n.getNodeName())) {

// n.getFirstChild().getNodeValue()

student.setName(n.getLastChild().getNodeValue())

} else if ("age".equals(n.getNodeName())) {

student.setAge(Integer.parseInt(n.getFirstChild()

.getNodeValue()))

}

list.add(student)

}

}

}

} catch (ParserConfigurationException e) {

// TODO Auto-generated catch block

e.printStackTrace()

} catch (SAXException e) {

// TODO Auto-generated catch block

e.printStackTrace()

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

// System.out.println(root.getNodeValue())

return list

}

通过Javacore提供的信息对JVM进行一个全面的分析,除了了解垃圾回收情况、JVM相关配置信息外,分析重点可放在线程执行情况上,分析哪些线程在等待,哪些在执行,以便快速缩小问题范围。IBM Thread and Monitor Dump Analyzer for Java分析工具可以让我们清晰的分析Javacore文件,在IBM Thread and Monitor Dump Analyzer for Java工具中,请求线程可分为以下几种状态:

1.死锁,Deadlock(重点关注)

2.执行中,Runnable(重点关注)

3.等待资源,Waiting on condition(重点关注)

4.等待监控器检查资源,Waiting on monitor

5.暂停,Suspended

6.对象等待中,Object.wait()

7.阻塞,Blocked(重点关注)

8.停止,Parked

Deadlock:死锁线程:一般指多个线程调用间,进入相互资源占用,导致一直等待无法释放的情况。

Runnable:一般指该线程正在执行状态中,该线程占用了资源,正在处理某个请求,有可能正在传递SQL到数据

库执行,有可能在对某个文件 *** 作,有可能进行数据类型等转换。

Waiting on condition:等待资源,如果堆栈信息明确是应用代码,闷悔则证明该线程正在等待资源,渗陵一般是大

量读取某资源,且该资源采用了资源锁的情况下,线程进入蚂喊正等待状态,等待资源的读取。又或者,

正在等待其他线程的执行等。

Blocked:线程阻塞,是指当前线程执行过程中,所需要的资源长时间等待却一直未能获取到,被容器的线程管!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12192075.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存