Java 在SPOJ获得13.41亿美元?

Java 在SPOJ获得13.41亿美元?,java,memory,Java,Memory,我在SPOJ上的这个简单程序中使用了1341内存。我想把它减少到2到3米。如何改进代码。我正在使用更多的内存。我给出了程序bwlow: import java.util.*; import java.lang.*; import java.io.*; class Test { public static void main (String[] args) throws java.lang.Exception { Scanner sc=new Scanner(Sys

我在SPOJ上的这个简单程序中使用了1341内存。我想把它减少到2到3米。如何改进代码。我正在使用更多的内存。我给出了程序bwlow:

 import java.util.*;
 import java.lang.*;
 import java.io.*;

 class Test
 {
  public static void main (String[] args) throws java.lang.Exception
    {
    Scanner sc=new Scanner(System.in);
    String str=new String();
    String str1[]=new String[10];
    int len;
    int t=sc.nextInt();
    for(int i=0;i<t;i++)
    {
        str=sc.next();
        str1=str.split("");
        len=str.length()/2;
        for(int j=0;j<len;j++)
        {
            if(j%2==0)
            {
                System.out.print(str1[j]);
            }
        }
    System.out.println();

    }
}
}
import java.util.*;
导入java.lang.*;
导入java.io.*;
课堂测试
{
公共静态void main(字符串[]args)引发java.lang.Exception
{
扫描仪sc=新的扫描仪(System.in);
String str=新字符串();
字符串str1[]=新字符串[10];
内伦;
int t=sc.nextInt();

对于(int i=0;i不要将字符串
str
转换为字符串数组
str1
,以访问
str
的单个字符

if (j%2 == 0)
   System.out.print(str.charAt(j));

不要将字符串
str
转换为字符串数组
str1
,以访问
str
的单个字符

if (j%2 == 0)
   System.out.print(str.charAt(j));

毕竟这是Java—只需加载系统libs,您的内存就超过了2到3 mb的目标。您可以尝试在开始时指定-Xmx内存选项,并查看代码运行的绝对最小值。毕竟这是Java—只需加载系统libs,您的内存就超过了2到3 mb的目标。您可以尝试指定-开始时的Xmx内存选项,看看代码运行的绝对最小值是多少。谢谢。但更改后也需要1341M。我知道我实例化了对象str,这不是必需的。现在更改后得到315M。@5extremers你测量内存了吗?@5extremers现在也去掉变量
str1
,你不需要eed it谢谢你。但是在更改它之后,它也需要1341M。我知道我已经实例化了对象str,这不是必需的。现在更改它之后,它的值是315M。@5极值你测量内存了吗?@5极值现在也去掉变量
str1
,你不需要它