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。

  • 相关阅读:
    java设计模式简介
    java设计模式--单例模式
    判断整形回文数
    常用正则表达式 捕获组(分组)
    [转]十分钟搞定Vue搭建
    ActiveX界面已显示,调用方法报undefined的处理办法
    [转]纯js导出json到excel(支持chrome)
    webapi 开启gzip压缩
    webapi下载文件
    iis添加共享目录为虚拟目录
  • 原文地址:https://www.cnblogs.com/Leonar-do/p/5204659.html
Copyright © 2011-2022 走看看