[Java 编程思想]第二章

2017-06-06  本文已影响7人  goule1994
1. java是基于C++
2. 堆和栈的区别
  1. 栈和堆都是java用来在Ram中存放数据的地方,java自动管理栈和堆。
  1. 栈的存取速度大于堆的速度,仅次于寄存器,缺点是栈中的数据大小与生存期必须是确定的,缺乏灵活性,栈中的数据可以共享。
  2. 堆的优势是动态分配内存大小,生存期不需要事先高数编译器,缺点是动态分配内存,读取速度比较慢。
  3. 栈是先进后出,后进先出的原则,类似与弹簧,即先分配的内存后释放。
  4. 堆的内存释放没有先后顺序,堆是属于全局的。
  5. 栈存放存放函数的参数值,局部变量,基本类型等。
  6. 包装类数据,如Integer, String, Double等将相应的基本数据类型包装起来的类。这些类数据全部存在于堆中,new出来的存储在堆中,引用变量存储在栈中。
    例如:
    String a = "abc";
    String b = new String("abc");
    String c = "abc";
    a和b和c都存储在栈中,"abc"也存储在栈中,new String("abc")存储在堆中,c和a指向同一个内存地址。

总结:

  分析堆和栈考虑以下4个方面:
  1. 共同点
  2. 不同点(存取速度,灵活性)
  3. 内存的释放先后顺序 
  4. 存储的参数类型
3. static
4. 注释的代码在编译的时候不会编译
5. finfal
上一篇下一篇

猜你喜欢

热点阅读