zoukankan      html  css  js  c++  java
  • java内存管理机制

    转载:http://blog.csdn.net/tutngfei1129287460/article/details/7383480

    a.java把内存分两种:一种是栈内存,另一种是堆内存

    1。在函数中定义的基本类型变量和对象的引用变量都在函数的栈内存中分配;2。堆内存用来存放由new创建的对象和数组以及对象的实例变量 在函数(代码块)中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量所分配的内存空间;在堆中分配的内存由java虚拟机的自动垃圾回收器来管理

    b.分配 :内存的分配是由程序完成的,程序员需要通过关键字new 为每个对象申请内存空间 (基本类型除外),所有的对象都在堆 (Heap)中分配空间。

    c.    final问题:

     final使得被修饰的变量"不变",但是由于对象型变量的本质是"引用",使得"不变"也有了两种含义:引用本身的不变?,和引用指向的对象不变。?

    d.    如何把程序写得更健壮  

    1.尽早释放无用对象的引用,自动设置为null;  

    2.定义字符串应该尽量使用 String str="hello"; 

    3.字符串处理,避免使用String,应大量使用StringBuffe;

    4、尽量少用静态变量 ,因为静态变量是全局的,GC不会回收的;

    5、尽量避免在类的构造函数里创建、初始化大量的对象;

    6、尽量在合适的场景下使用对象池技术 以提高系统性能,缩减缩减开销

    10、尽量少用finalize函数 ;

    运算操作   

    示例    

    标准化时间 

    本地赋值    

    i = n 

    1.0 

    实例赋值    

    this.i = n 

    1.2 

    方法调用    

    Funct() 

    5.9 

    新建对象    

    New Object() 

    980 

    新建数组    

    New int[10] 

    3100 

  • 相关阅读:
    vb.net structure 定义静态数组
    调色板原理 & 编程
    CView::OnPreparePrinting
    MFC单文档程序架构解析
    基于Eclipse远程调试解决的预上线首页打开特别慢的问题
    Shiro Filter引发的思考
    Shiro Filter中利用Callable和Runnable的委派模式
    Shiro DefaultFilter
    防止Form表单重复提交的客户端及服务器端的方式
    Shiro Filter的设计概念
  • 原文地址:https://www.cnblogs.com/zengbobo-812796958/p/5667755.html
Copyright © 2011-2022 走看看