【问题标题】:Resource leak error in java in eclipseeclipse中java中的资源泄漏错误
【发布时间】:2015-09-05 02:41:53
【问题描述】:

资源泄漏:“sc”未关闭。

“sc”没有关闭是什么意思

public static void main(String atr[]){
    Scanner sc = new Scanner(System.in);
    int a=sc.nextInt();
    int sum=0;
    while(a<0){
        int r=a%10;
        a=a/10;
        sum = sum + r*r*r;
    }
}

【问题讨论】:

  • 任何可能打开的用于输入/输出操作的资源,在使用完之后必须关闭,否则可能会发生内存泄漏

标签: java android eclipse memory-leaks core


【解决方案1】:

它希望您关闭扫描仪。当我把它放在我的代码中时,它并没有阻止它运行,只是给出了一条警告消息。如果您想摆脱错误,只需输入

sc.close();

在代码的末尾,警告应该会消失。

【讨论】:

    【解决方案2】:

    请试试下面的代码

    static Scanner sc ;
    public static void main(String atr[]){
      try{
        sc = new Scanner(System.in);
        int a=sc.nextInt();
        int sum=0;
            while(a<0){
                int r=a%10;
                a=a/10;
                sum = sum + r*r*r;
        }
        }catch(Exception e){
            e.printstacktrace();
        }finally{
            if(sc != null){
            sc.close()
            }
        }
    }
    

    您必须在完成后关闭扫描仪对象:)

    【讨论】:

    • 但它显示与sc相关的静态变量错误的错误
    • 出现错误。 SC 被视为局部变量,在检查 if 条件时未初始化。
    猜你喜欢
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多