zoukankan      html  css  js  c++  java
  • 面试积累(java的内存分析)

    关于java中的内存分析:

    1 首先,java中的内存总体分为了四个部分,分别为stack segment,heap segment,code segment,data segment。即 栈区,堆区,代码区,数据区。

    我们程序中用关键字new出来的东西都是存放在heap segment;

    程序中的局部变量存放在stack segment,这些局部变量是在具体方法执行结束之后,系统自动释放内存资源(而heap segment中的资源需要java垃圾回收机制来处理);

    程序中的方法,是内存中的code segment中的,而且是多个对象 共享一个代码空间区域;

    static静态变量,需要放在内存中的data segment中;

    2 这里介绍一下String的一些理解,String创建对象有两种方式:

    分别为String s1=new String("java")和String s2="java";

    前一种方式创建对象时会先在堆中创建一个java的,再让引用变量s1指向堆中的那个java,然后还要判断字符串常量池中是否存在java,如果存在就不会再在字符串常量池中创建了,如果不存在就会再在字符串常量池中创建一个java的对象;

    后一种方式是先判断字符串常量池中是否存在java,如果存在的话就会直接让引用变量s2指向字符串常量池中已经创建好的那个java,如果不存在就会再在字符串常量池中创建一个

    java,然后再让s2指向创建好的这个java。

  • 相关阅读:
    NSOperation, NSOperationQueue 原理探析
    BAT面试的准备—iOS篇
    iOS 导航栏
    iOS应用性能调优的25个建议和技巧
    iOS 性能调优
    构造方法
    属性和成员变量
    iOS消息推送机制
    大道至简,回归到梦开始的地方。人生如此,编程亦如此。
    尊重生存在这个世界上的每一个人(转)
  • 原文地址:https://www.cnblogs.com/Leonar-do/p/5204659.html
Copyright © 2011-2022 走看看