zoukankan      html  css  js  c++  java
  • 关于java中string的内存位置

    java运行时内存分五部分:

      线程共享:堆内存、方法区(包括常量池)

      线程私有:栈内存、本地方法栈、程序计数器

    string不是基本数据类型,那么一个string的内存位置是什么呢?一共有两种情况:

      1、string直接赋值:

        String s = "haha";

        s的引用存在栈内存中,引用指向的haha存在方法区的常量池中(先判断常量池中是否有一个haha,存在则直接指向)

      2、string对象new创建

        String s = new String("haha");

        s的引用存在于栈内存中,引用指向的haha对象,存在堆内存中(每new一次,在堆中创建一个新的haha对象)

    总结:

      1、string类型的引用,都是存在栈内存中的;

      2、string引用指向,直接赋值存在栈内存,new出来的存在栈内存。

  • 相关阅读:
    three.js-sun-lensflare
    three.js-Raycaster
    three.js-shadow
    three.js-core
    three.js-Basic-Expand
    Three.js Basic
    md5加密
    密码验证正则表达式
    启动线程开启信的线程
    获取WINDOW.OPEN url js中的get取值
  • 原文地址:https://www.cnblogs.com/guoliangxie/p/7238907.html
Copyright © 2011-2022 走看看