提示资源泄露,什么情况,麻烦帮我看看。

来源:2-6 编程练习

weibo_盗贼7788_04036532

2017-10-04 10:32:45

package test1;


import java.util.Scanner;


public class MethodDemo {  

public double  money(double mo) {

double price;

if(mo>200) {

price=mo*0.85;

}else if(100<mo|mo<199) {

price=mo*0.95;

}else {

price=mo;

}

System.out.println(price);

return mo;

}

   public static void main(String[] args) {

    System.out.println("输入一个数");

   

   

    MethodDemo price=new MethodDemo();

    Scanner sc=new Scanner(System.in);

    double s=sc.nextDouble();

   

   

    price.money(s);

   

http://climg.mukewang.com/59d447ee000124c909810832.jpg

还有总是感觉代码还是有些问题

写回答

2回答

weibo_盗贼7788_04036532

提问者

2017-10-04

http://climg.mukewang.com/59d4bac00001c94907440234.jpg

以前也是这样写的代码,为什么这次会出现内存泄漏,还有怎么处理么,求解答

0

一叶知秋519

2017-10-04

你指的提示内存泄露是说,图片中的sc没有关闭么?还是?如果是sc没有关闭,可以使用sc.close()对Scanner对象进行关闭;

关于你的代码:在money方法中,可以返回price,在主方法中对其进行打印就可以了,即System.out.println(price.money(s));

祝学习愉快~

0
hrista23
回复
heibo_盗贼7788_04036532
h Scanner类实例化的时候需要一个InputStream流作为参数,Scanner 的close()方法就是用来关闭InputStream流的,不关闭有可能造成资源,建议操作完成后养成使用close()方法关闭输入流的习惯。
h017-10-06
共2条回复

0 学习 · 7235 问题

查看课程