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:线程阻塞,是指当前线程执行过程中,所需要的资源长时间等待却一直未能获取到,被容器的线程管!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)