美文网首页
他所说的学习

他所说的学习

作者: 泊浮目 | 来源:发表于2018-05-23 23:53 被阅读52次

今天去跑步前,同事问了我一个关于Java的问题——大概因为我是Java程序员。

我一看,MyCat丢出了一个异常堆栈。最上面类似于InitException,然后是 SAX.xxxxxxxx。我想我大概知道了,是XML文件出了问题。

定位到XML文件,果然是这样。

我想起我刚加入ZStack的时候,张鑫和我说过学习的三个境界:

  • 第一层:知道怎么用
  • 第二层:知道为什么用它?那么,你也肯定知道了同类(库、框架)的优缺点
  • 第三层:知道它的原理

以及一句他的座右铭:勿在浮砂筑高台。每学一样东西,就要学精,不然就是浪费自己的时间。

那时我正在fix一个global config的bug,他提醒了我,去了解一下XML解析技术。

其实XML解析技术的两大基类就是DOMSAX

  • DOM:Document Object Mode
  • SAX:Simple API for XML

DOM上衍生出JDOM和DOM4J,不过我们今天不关注这个。

如果写过Java的同学,肯定知道集合框架(就是List、Set等),这些类的设计思想有点像DOM。因为DOM要把XML的元素全部load到内存里,在内存里形成一个DOM树便于操作。

对应的,Java8引入了流的概念,即Stream。简单来说,集合与流之间的差异就在于什么时候进行计算。SAX也是如此,它就是一遍解析下去的——边扫描边解析。所以在需要的时候扫到相应的部分就行了。

这样的好处是在处理大文档的时候,DOM可能在加载的时候就要吃很多内存,并且还要组成一棵DOM树。

坏处则是SAX对于来回操作XML并不是很擅长(比如先操作100行的内容,然后第10行的内容),因为它每次都需要遍历。

那么MyCat为何使用SAX来扫描XML呢?那是因为XML中配置的是一些Bean的属性,在应用Starting时会把它们配置到实体类中,所以也就不需要DOM技术进行来回的操作了。

勿在浮砂筑高台。回头一想,关于学习,我还有很长的路要走啊。

相关文章

  • 他所说的学习

    今天去跑步前,同事问了我一个关于Java的问题——大概因为我是Java程序员。 我一看,MyCat丢出了一个异常堆...

  • 如他所说

    那么一瞬间,我突然懂得了她在作品后面留给我的话。如她所说,轰轰烈烈只是幻想,平静才是真相。原本我以为这是平庸的...

  • 如他所说

    天空挥洒着什么颜色 世界行走着什么轮廓 我背着那双翅膀去探索 ...

  • 如果听信他所说的

    如果听信他所说的 明天之于昨天 死亡会消逝,玫瑰绽放如初 为何不良善地度过今天? 像昨天一样 如果听信他所说的 明...

  • 顺着朱永新老师的话题聊聊

    看着朱永新教授的《未来学校》,对他所说的“未来学习中心”充满好奇。对朱老师所说的未来学校大多认可,也有个别...

  • 如何学习牛人所说的道理?

    知识的源头分为四种: 1、一手知识 一般而言,属于未成正版的书,通常表现形式为某大刊中出现的某些研讨会内容或是方案...

  • 【每周一本书】20 好好学习

    李笑来的公众号是:学习学习再学习。他自己是这样解释的:我所说的“学习学习再学习”,不是由三个动词构成的句子;在这个...

  • 2020-02-29生命之书——学习不是什么或者学习是什么?

    克老师说的学习应该不同于平时我们学习知识或者技能的学习,他所说的学习恰好是这种学习的反面,是学会如何认识自己的内心...

  • 2018-03-23

    题记:以学习开始作为我漫长随笔之路的主题,也许是缘分! 今天听了逻辑思维老罗关于他是如何学习,诚如他所说的现在我们...

  • 有效学习的高手都有明确的目的

    之前思考罗胖所说的学习方法和笑来老师所说的第三个学习境界中所需要的重点中想到:罗胖所说的学习方法更适合学术类的知识...

网友评论

      本文标题:他所说的学习

      本文链接:https://www.haomeiwen.com/subject/bkwdjftx.html