zoukankan      html  css  js  c++  java
  • 堆栈

      那会儿去面试,被问及“如何解析xml,不用系统针对xml的类库”。

      不假思索,无非就是string匹配操作嘛。面试官顿了一下xml,哦,恍然大悟...

      ——那会儿就近才搞了clr profile。clr profile输出栈信息,需要解析,不是一回事么。他是想得到栈的结果,一路顺利,他也很满意,最终电话了我几次,价格问题...

      每每面试他人,我会先问及经历,然后挺面试者狂吹自己做了什么什么东西,怎么怎么样。但却真不少人不能回答很基本的问题,然后再问项目,最后说只做了什么什么,或者更甚者...

      关于堆栈这是我被问及两次的问题,一次还未毕业,人家问我struct和class的区别,还有就是这次。第一次的时候在学校算是N人了,走出来就被这么小问题给困住了,我只能按照书上释义回答了对方,当然结果不会满意。反正后来我是特不担心这问题,我会直接搬出clr profile...

      对于代码数千数万行不知struct和class  —— 用struct的时候难道就没有没new的时候?

      new我先来释义一下,和c++概念差不多,动态分配内存,然后返回该地址(引用)。struct不new即可使用,该变量分配在栈上,栈是什么东西 —— 到处都有释义:先进后出?什么时候有栈 —— 只要你要调试就会看到栈。

    VS这个显示跟CLR Profile输出可以认为是一致的,反应的就是代码的结构。

    如果从main来看,main就是xml的根,然后是各个函数的包含关系,代码本身就是栈的关系。代码需要本身先被解析,然后再是运行。

    因此变量的域——栈节点就是他的域。栈在系统中大量存在,这些要运行的都要用到,加减乘除也都要用到...

    至于堆,就是一个散列函数;如果我们要提供快速查找怎么办?——我们会用hashtable,或者dictionary,就是这样一个东西;操作系统有大量的这些东西,在new一个class的时候,class在散列表上,连文件系统都有 —— 那个东西,那里叫索引,只不过平时都呆在硬盘上在。

    说到这不得不提到还在流行的大数据,耗内存不是,就是有这么个在内存上的索引,内存只要能满足索引那速度肯定快,至于散列函数内部具体的算法,这不是我们所需要详细关心的,知道二叉树原理也就行了。

    想快没有捷径—— 由此nosql扔掉包袱,还是得使劲索引,只要是查找就离不开这玩意儿。

    回到面试问题,string是个特殊的玩意儿,他有个散列表,出现不同的就多一行,因此字符串大量运算时,会消耗许多的行。此时需要stringbuilder来应对。测试消耗内存string是个不错的选择,连加不多次就会爆胎。

    至于javascript之类大致若此,细节不同,毕竟还没有什么能一次锁定目标的算法。

      

      

  • 相关阅读:
    124. 二叉树中的最大路径和
    快速排序,归并排序
    剑指offer ——重建二叉树
    共享指针的简单实现
    string_自定义
    幸运的袋子
    动态规划——出差问题
    计算数组平均值
    时间格式化并算差值
    适配器模式
  • 原文地址:https://www.cnblogs.com/huapiaoshuiliuxi/p/4563798.html
Copyright © 2011-2022 走看看