zoukankan      html  css  js  c++  java
  • 【Java】内存

    1.当使用直接赋值的方式实例化一个字符串对象的时候,他的引用是保存在哪里的?

    首先要明确一点,只要是引用对象就保存在堆内存里面,而我们所有能够进行的内存控制,也只有堆内存。

    JVM内存优化:

    1.JVM内存优化的第一个问题,取消掉伸缩区,让total = max

      -CMS问题,频繁的CMD会导致性能下降

      -伊甸园区、存活区、老年代的关系要清楚,JDK1.8以后取消了永久代, 而使用元空间代替。

    2.如果内存过大要使用G1收集器来进行收集

    3.在Tomcat里面由于其使用基于JVM,所以要设置一个“JAVA_OPTS”指令,可以将全部的内存供tomcat使用(默认可用的最大可用内存为全部内存的四分之一,默认的total内存为全部内存的64分之1)。

    JVM内存组成:

      -最关键的几个内存:

        -堆内存:只是保存堆内存的引用地质,而且从一个简单的角度来讲,栈内存可以保存基本类型(int,double)

        -栈内存:JAVA没有采用句柄的模式进行引用,所以它的引用性能是最高的,但是从另外一个角度来讲,堆内存里面实际上又分为了若干个子内存空间:伊甸园区,存活区,老年代(FullGC,MajorGC)。

          -原则:少产生无用的大量内存空间,因为频繁的GC会导致CMS问题,导致程序中断执行。

          -原则:让初始化空间的大小等于整个堆内存的分配大小,避免伸缩区,这样可以进行性能的提升。

        -方法区:(之前被称为永久代,JDK1.8之后被取消,称为元空间)

        -全局数据区:可以认为其规划在堆内存里面,因为会发现全局数据区中保存的内容有可能是对象,有可能是基本类型,只不过采用了一种特殊的处理形式而已。

  • 相关阅读:
    python isinstance函数 判断元素是否是字符串、int型、float型
    Day04 list(列表)
    Day 05 Dict字典
    Python的简介
    DAY7 字符编码和文件操作
    DAY6 元组、字典与集合
    DAY5 基本数据类型及内置方法
    DAY4 if、while和for
    DAY3 数据类型与运算符
    DAY2 初识python
  • 原文地址:https://www.cnblogs.com/guangluwutu/p/12309359.html
Copyright © 2011-2022 走看看