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

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

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://img1.sycdn.imooc.com/climg//59d447ee000124c909810832.jpg

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

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
提问者 weibo_盗贼7788_04036532 2017-10-04 18:41:56

http://img1.sycdn.imooc.com/climg//59d4bac00001c94907440234.jpg

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

一叶知秋519 2017-10-04 17:24:19

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

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

祝学习愉快~

  • 以前也是这样写的代码,为什么这次会出现内存泄漏,还有怎么处理么,求解答
    2017-10-05 15:00:01
  • irista23 回复 提问者 weibo_盗贼7788_04036532 #2
    Scanner类实例化的时候需要一个InputStream流作为参数,Scanner 的close()方法就是用来关闭InputStream流的,不关闭有可能造成资源,建议操作完成后养成使用close()方法关闭输入流的习惯。
    2017-10-06 18:01:37
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师