2006年12月6日
#
一直在为自己找借口,找理由,却始终不能专心一意下来,一直在为自己辩护: 找个机会重新开始! 一直在为自己的QQ找个新名字,想从头再来; 一直想为自己的游戏帐号换个新名字,想从头再来; 一直在为自己找一份满意的工作,想从头再来; 一直想为自己的懒惰找个理由- - 过段时间,一切从头开始. 现在,我发现,那些全部是借口; 现在,我发现: 时间不能再浪费,我也没有更多的时间去等待,去寻找一个所谓的新的机会,. all i have is now and all i can hold is now, tomorrow is not held by myself. 从现在开始, 两个字: 专心一意!
自打辞掉第一份程序员的工作, 我始终不能专心下来,认真的工作,我承认,当时是冲动,辞职那么久以来, 一直为这件事情反省,我也尽力了,只是我没找到明确的方向,再加上自己的性格,容易受外界影响,不够有耐心,做事不够坚决,导致现在的困难状况,今天再次和以前同事的聊天,我开始认识到,有些事情,过去了,用不着再挂念,人总是在失败和挫折中长大的,有经历,才有沉淀,才有收获,前世不忘,后事之师. 今天暂且主要回顾下自己的弱点: 1,缺乏计划性: 不管是为人处世,还是工作学习, 都缺乏一定的计划性和针对性,由此增长的是懒惰和懈怠,这是当前最大的忧患. 2,缺乏系统性: 主要表现在工作和学习中,缺乏一条循序渐进的路线,特别在学习的时候,一时学这个,一时学那个, 基础没打牢,就开始学人家研究高级技术,到头来脚跟不稳,难免跌倒. 3,缺乏警惕性: 条件一稳定,就表现出懈怠的情绪, 完全忘记了"生于安乐,死于忧患"的历史名句, 没有贯彻不断学习和提高的思想,路线,
以上三点是总结的比较深刻的三点, 这段时间一定多花时间, 看怎么设计一条路子,才可以逐渐的扭转这种状况, 同时慢慢转入正轨, 重新找回当初的自己. 一直在想, 我不能流于世俗, 流于肤浅, 我应该担当的是不同凡人的责任感和紧迫感, 今天我跌到最低谷,不要紧,没关系, 我还年轻, 我还有很多机会, 我要紧握这种紧迫感和责任感以及这份压力, 更精彩的活下去. 打点好行装, 该上路了.
2006.12.27凌晨 diego.liu
前些天,也就是6号辞职了,这些天只在中博和网信联动面试了下,投了很多简历,而且简历也被阅览了很多次,但很少接到电话,呆在家里不上班的日子,真是特快,心里没什么底,有点后悔辞职的冲动,不会也没什么,机会还是有的,况且自己还是相信自己的实力,毕竟有一年的工作经验,不过这些天还是在努力地学习,把基础打牢再说. 华为一般是周五面试,其实我几乎没去华为面试,有几次华为打电话过来,我恰好有其他的面试,所以去不了,这次反正闲着也是闲着,所以,在上午接到电话后,下午坐公车去了. 我住的地方去华为基地比较远,坐公车都要5元RMB,下了车,打了电话,经过电话指点,终于找到了面试地点,外面好冷,进去就不怎么冷了,没说别的,拿起试卷就开始做题. 题目的难度在我预料之中,依我的水平也就拿个70分左右的样子(一般的公司我可以拿80以上,^_^), 令我意外的是,笔试完后,面试技术的考官并没怎么看我的答案,而是直接和我聊起技术方面的东西,问的很详细,特别是问到具体做过的项目时,问的比较仔细,要不是我真的做过,非穿帮不可,呵呵,问了项目,就开始问技术,只要我简历上写的技术,他都会问的很仔细,有几个地方,我记得不是很清楚,也就打哈哈过去,他也没说什么,就这样问了大概一个多钟头,他才说,好了,你在这等下,就走了,我好不容易许了一口气,心里也没什么底,等了10分钟的样子,来了一个领导模样的人物,拿了本笔记本,就坐在我旁边,和我聊起了一些看似琐碎的东西,其实在暗里考察的问题,总体感觉还过的去,完了,他说,我考虑下,就走了,出去的时候我和面试我技术的考官一起出去,他问我感觉怎么样,我说还行,他说过几天会电话通知我,呵呵,当时应该问下他机会大不,可惜了,现在也只好在家等结果了,不过中博那边如果要我马上上班的话,我还真不好抉择,因为中博那边是做外包,而且要出差,虽然薪资有点诱人,但毕竟感觉没进华为好. 失业的日子的确比较枯燥,闲着没事就随便写写 了,呵呵,很晚了,要睡了....
摘要: 通过分析SQL语句的执行计划优化SQL(总结)
做DBA快7年了,中间感悟很多。在DBA的日常工作中,调整个别性能较差的SQL语句时一项富有挑战性的工作。其中的关键在于如何得到SQL语句的执行计划和如何从SQL语句的执行计划中发现问题。总是想将日常经验的点点滴滴总结一下,但是直到最近才下定决心,总共花了3个周末时间,才将其整理成册,便于自己日常工作。不好意思独享,所以将其贴出... 阅读全文
dom4j(Version 1.6.1)快速入门
Parsing XML
或许你想要做的第一件事情就是解析一个某种类型的XML文档,用dom4j很容易做到。请看下面的示范代码:
import java.net.URL;
import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io.SAXReader;
public class Foo {
public Document parse(URL url) throws DocumentException { SAXReader reader = new SAXReader(); Document document = reader.read(url); return document; } }
使用迭代器(Iterators)
我们可以通过多种方法来操作XML文档,这些方法返回java里标准的迭代器(Iterators)。例如:
public void bar(Document document) throws DocumentException { Element root = document.getRootElement(); //迭代根元素下面的所有子元素 for ( Iterator i = root.elementIterator(); i.hasNext(); ) { Element element = (Element) i.next(); //处理代码 }
//迭代根元素下面名称为"foo"的子元素 for ( Iterator i = root.elementIterator( "foo" ); i.hasNext(); ) { Element foo = (Element) i.next(); //处理代码 }
// 迭代根元素的属性attributes)元素 for ( Iterator i = root.attributeIterator(); i.hasNext(); ) { Attribute attribute = (Attribute) i.next(); // do something } }
强大的XPath导航
在dom4j中XPath可以表示出在XML树状结构中的Document或者任意的节点(Node)(例如:Attribute,Element 或者 ProcessingInstruction等)。它可以使在文档中复杂的操作仅通过一行代码就可以完成。例如:
public void bar(Document document) { List list = document.selectNodes( "//foo/bar" );
Node node = document.selectSingleNode( "//foo/bar/author" );
String name = node.valueOf( "@name" ); }
如果你想得到一个XHTML文档中的所有超文本链接(hypertext links)你可以使用下面的代码:
public void findLinks(Document document) throws DocumentException {
List list = document.selectNodes( "//a/@href" );
for (Iterator iter = list.iterator(); iter.hasNext(); ) { Attribute attribute = (Attribute) iter.next(); String url = attribute.getValue(); } }
如果你需要关于XPath语言的任何帮助,我们强烈推荐这个站点Zvon tutorial他会通过一个一个的例子引导你学习。
快速遍历(Fast Looping)
如果你不得不遍历一个非常大的XML文档,然后才去执行,我们建议你使用快速遍历方法(fast looping method),它可以避免为每一个循环的节点创建一个迭代器对象,如下所示:
public void treeWalk(Document document) { treeWalk( document.getRootElement() ); }
public void treeWalk(Element element) { for ( int i = 0, size = element.nodeCount(); i < size; i++ ) { Node node = element.node(i); if ( node instanceof Element ) { treeWalk( (Element) node ); } else { // do something.... } } }
生成一个新的XML文档对象
在dom4j中你可能常常希望用程序生成一个XML文档对象,下面的程序为你进行了示范:
import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element;
public class Foo {
public Document createDocument() { Document document = DocumentHelper.createDocument(); Element root = document.addElement( "root" );
Element author1 = root.addElement( "author" ) .addAttribute( "name", "James" ) .addAttribute( "location", "UK" ) .addText( "James Strachan" );
Element author2 = root.addElement( "author" ) .addAttribute( "name", "Bob" ) .addAttribute( "location", "US" ) .addText( "Bob McWhirter" );
return document; } }
将一个文档对象写入文件中
将一个文档对象写入Writer对象的一个简单快速的途径是通过write()方法。
FileWriter out = new FileWriter( "foo.xml" ); document.write( out );
如果你想改变输出文件的排版格式,比如你想要一个漂亮的格式或者是一个紧凑的格式,或者你想用Writer 对象或者OutputStream 对象来操作,那么你可以使用XMLWriter 类。
import org.dom4j.Document; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter;
public class Foo {
public void write(Document document) throws IOException {
// 写入文件 XMLWriter writer = new XMLWriter( new FileWriter( "output.xml" ) ); writer.write( document ); writer.close();
// 以一种优雅的格式写入System.out对象 OutputFormat format = OutputFormat.createPrettyPrint(); writer = new XMLWriter( System.out, format ); writer.write( document );
// 以一种紧凑的格式写入System.out对象 format = OutputFormat.createCompactFormat(); writer = new XMLWriter( System.out, format ); writer.write( document ); } }
转化为字符串,或者从字符串转化
如果你有一个文档(Document)对象或者任何一个节点(Node)对象的引用(reference),象属性(Attribute)或者元素(Element),你可以通过asXML()方法把它转化为一个默认的XML字符串:
Document document = ...; String text = document.asXML();
如果你有一些XML内容的字符串表示,你可以通过DocumentHelper.parseText()方法将它重新转化为文档(Document)对象:
String text = "James"; Document document = DocumentHelper.parseText(text);
通过XSLT样式化文档(Document)
使用Sun公司提供的JAXP API将XSLT 应用到文档(Document)上是很简单的。它允许你使用任何的XSLT引擎(例如:Xalan或SAXON等)来开发。下面是一个使用JAXP创建一个转化器(transformer),然后将它应用到文档(Document)上的例子:
import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory;
import org.dom4j.Document; import org.dom4j.io.DocumentResult; import org.dom4j.io.DocumentSource;
public class Foo {
public Document styleDocument( Document document, String stylesheet ) throws Exception {
// 使用 JAXP 加载转化器 TransformerFactory factory = TransformerFactory.newInstance(); Transformer transformer = factory.newTransformer( new StreamSource( stylesheet ) );
// 现在来样式化一个文档(Document) DocumentSource source = new DocumentSource( document ); DocumentResult result = new DocumentResult(); transformer.transform( source, result );
// 返回经过样式化的文档(Document) Document transformedDoc = result.getDocument(); return transformedDoc; } }
原文地址
dom4j下载地址
|