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。

  • 相关阅读:
    REHの个人主页
    多项式基础学习笔记(2)
    多项式基础学习笔记(1)
    FFT & NTT 学习笔记
    LCT学习笔记
    莫队学习笔记
    SAM 学习笔记
    网络流学习笔记
    关于魔术球贪心做法的证明
    【题解】异或粽子&加强版
  • 原文地址:https://www.cnblogs.com/Leonar-do/p/5204659.html
Copyright © 2011-2022 走看看