当前位置: 首页 > 知识库问答 >
问题:

Java程序占用内存太多

高云瀚
2023-03-14

嗨,我对java编程还比较陌生。我编写的下面的程序似乎占用了很多内存(大约240 MB,正常吗?-我不这么认为!)请建议一些方法来优化这个程序,以便减少内存存储。

程序--

 You have 2 sorted array suppose arr1[4] and arr2[3]
          now we have to combinely sort them using very little extra space(i.e. in-place sort)
          ex..arr1[4]={5,8,11,14,16}
          arr[2]={1,7,10}
          then result should be--in arr1[4]={1,5,7,8,10}
          in arr2[3]={11,14,16}

代码-

import java.util.*;

class sort_in_place
{
    public static void main(String args[])
    {
        // input 2 sorted arrays
        int []a = {5,8,11,14,16};
        int []b = {1,7,10};

        System.out.println("initial array: a = "+Arrays.toString(a)+"   b = "+Arrays.toString(b)+"\n");

        // use extra space to store the array 'a' elements.
        int key = 0, i=0; 

        for( i=0; i<a.length ; i++)
        {
             key = a[i];         // store value in temporary variable key.

            // if key is greater than 1st element of array 'b' then exchange their values and sort array 'b'
            if(key > b[0])
            {
                int j = 1;
                a[i] = b[0];
                while(j<b.length && key > b[j])
                {
                    b[j-1] = b[j];
                    j++;
                }
                b[j-1] = key;
            }
        }
        System.out.println("final array: a = "+Arrays.toString(a)+"   b = "+Arrays.toString(b)+"\n");
    }
}

共有1个答案

方奕
2023-03-14

即使要运行一个简单的Helloworld程序,java也需要加载300多个类。这里我的意思是Java内嵌需要内存。Java有用于定义内存使用的Xmx和Xms选项。有关更多细节,请参阅Java文档

 类似资料:
  • 例如,我将-Xmx设置为40G。我希望我的java处理器不会使用超过40G。 我的程序与cms gc配合得很好。 但当我使用相同的内存(甚至多15%的内存)切换到G1 gc时。 它总是被杀人凶手杀死。 我发现了这样一篇文章:为什么我的Java进程比Xmx消耗更多的内存? 它表示: 所以我想知道,如何限制g1 gc使用的内存,以及为什么g1使用这么多额外的内存

  • 我正在使用框架用iPhone摄像头捕捉视频,我的代码: 在之前,一切都很顺利,内存被限制在3M,但在之后,内存使用量每秒增加0.06M,几分钟后,应用程序会因为内存警告而崩溃。似乎占用了太多内存,并且可能存在内存泄漏问题。 那么如何减少内存使用量呢? iOS版本:7.1.1

  • 为什么我的java PID占用更多内存。目前我有24GB ram和max-xmx=15G。所以java PID的解决方案是占用更少的内存。 23794 root 0 22.2g 16.5g 13416 s 100.070.42980:54上面的java是我的最高命令结果。任何人都知道如何重新关注这个问题。

  • 如何用QT3D画线?如何删除画好的线条?我发现下面的代码会占用太多的内存,如果你画很多线,尽管它可以工作。此方法只为绘制一条线分配了太多的存储空间,并且不会释放这些存储空间。如果你使用删除指针,那么它崩溃了。如何解决这个问题?

  • 问题内容: Tomcat 5.5.x和6.0.x Grails 1.6.x Java 1.6.x OS CentOS 5.x(64位) VPS服务器,内存为384M JAVA_OPTS:尝试了许多组合-包括以下内容 出口JAVA_OPTS =’-Xms128M -Xmx512M -XX:MaxPermSize = 1024m’ 导出JAVA_OPTS =’-server -Xms128M -Xmx