摩根

时长:25分钟

  1. the difference between stack &heap
  2. the difference between TCP&IP
  3. QuickSort
  4. Virtual table
  5. Hashtable
  6. Inner join &outer join
  7. Factory patten in design patten
  8. JVM and How does it work
  9. Compiler and How does it work
  10. In Linux, the command of looking up the space of the directory
  11. Introduction one project  ,members and How to resolve a complication when you have different ideas.
  12. How to test a program ,How does shell script work

1. the difference between stack &heap

解析:1.管理方式不同:栈是由编译器自动管理的,无需手工控制;对于堆来说,释放工作是由我们手动释放的,容易产生memory leak;

        2.生长方式不同:栈是向下生长的,即向低地址生长;堆是向上生长的,即向高地址生长;

        3.大小不同:栈的大小由编译器决定,windows为2M,栈的空间是有限的,如果栈的空间被分配完,又有新的请求时则出现栈溢出;

                         堆的 大 小为4G,比较大。

       4.是否产生碎片:栈的结构与数据结构的栈一样,遵从LIFO的原则,不会产生碎片;

                              堆则是操作系统通过管理一个空闲链表来实现的,当请求空间时,从头遍历找到第一个大于申请空间的节点,

                              从链表中删 除该节点。剩余的空间仍然放在链表中,容易产生碎片。

2. the difference between TCP&IP

  解析: TCP (Transmission  Control Protocol)工作在传输层,是面向连接的,可靠的,提供确认机制;

            IP(Internet Protocol)工作在网络层

        详解:http://baike.baidu.com/view/7649.htm 

3.Virtual table

          详解:http://www.cppblog.com/dawnbreak/archive/2009/03/10/76084.html

 

4.hashtable&hashmap

    解析:1.hashtable 是同步的因此是线性安全的,hashmap则不是;

           2.hashtable 中不允许有nullkey ,nullvalue ,而hashmap中允许;

           3.hashtable是继承自dictionary的,而hashmap是继承自map的;

            4.hashmap 中去掉了contains方法,而是使用containskey,containsvalue.

5.InnerJoin & OuterJoin

1.innerjoin是求两个表的交集,full outer join 是求两个表的并集。

2.innerjoin 不允许null,full outer join 允许null.

详解:http://blog.csdn.net/mangmang2012/article/details/8017034

 

 6.JVM and How does it work

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。编译虚拟机的指令集与编译微处理器的指令集非常类似。

 

Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。

 

 

7.Compiler and How does it work

解析:编译器是一种电脑程序,用于将高级语言编写的源代码翻译成机器能够识别的低阶语言。

现代编译器的流程:源代码(source code)->预处理器(preprocessor)->编译器(compiler)->汇编程序(assambler)->目标代码(object code)->链接器(Linker)->可执行文件(excutable)

8.In Linux, the command of looking up the space of the directory

解析:ls -h   : –human-readable 以容易理解的格式列出文件大小 (例如 1K 234M 2G)

         ls–si :类似 -h,但文件大小取 1000 的次方而不是 1024

9.Factory patten in design patten

抽象工厂模式:提供一个创建一系列相关或相互依赖的对象的接口,而无需指出它们具体的类。

 

Introduction one project  ,members and How to resove a complication when you have different ideas.

How to test a program ,How does shell script work

posted @ 2013-04-17 17:05  成长的点点滴滴  阅读(186)  评论(0)    收藏  举报