1.如何改进下面的程序以提高其执行性能?对你的改进作出解释,并写出新的程序。int i;URL url = new URL("http://java.sun.com/");URLConnection javaSite = url.openConnection();InputStream input = javaSite.getInputStream();InputStreamReader reader = new InputStreamReader(input);while ((i = reader.read()) != -1) { System.out.print(i);}2.下面的程序合法吗?try { } finally { }3.下面的程序片断能捕获什么异常?catch (Exception e) { }这样的异常处理有什么不好吗?
4.下面的程序片断有什么错误吗?它能否通过编译?try {} catch (Exception e) { } catch (ArithmeticException a) { }
4.下面的程序片断有什么错误吗?它能否通过编译?try {} catch (Exception e) { } catch (ArithmeticException a) { }
1、用stringbuffer去处理然后一次性输出以减少系统的开销,因为调用io设备的开销比访问内存的开销要大很多
2、合法
3、能处理任何exception子类的异常,包括Exception,这样处理不容易发现出错的地方
4、编译出错,后面一个catch无法获取exception
1.使用缓冲流!在这里,可以增加两个缓冲流: 在InputStream 上增加一个BufferedInputStream ,在InputStreamReader 上增加一个BufferedReader。改变后的程序如下: int i;URL url = new URL("http://java.sun.com/");URLConnection javaSite = url.openConnection();InputStream input = javaSite.getInputStream();BufferedInputStream in = new BufferedInputStream(input);BufferedReader reader = new BufferedReader(new InputStreamReader(in));while ((i = reader.read()) != -1) { System.out.print(i);2.合法。
3.该程序片段将捕获Exception类异常,由于所有异常都是Exception类的子类,
因此,实际上该程序片段将对所有异常都进行同样地处理。而不能根据具体的异常作出不同的处理方式。
4.由于第一个catch子句将捕获所有异常,因此,第二个catch子句永远不会被执行。不能通过编译。
1、用stringbuffer去处理然后一次性输出以减少系统的开销,因为调用io设备的开销比访问内存的开销要大很多
2、合法
3、能处理任何exception子类的异常,包括Exception,这样处理不容易发现出错的地方
4、编译出错,后面一个catch无法获取exception,因为前面的cathch已经获取了所有的异常
2、合法
3、能处理任何exception子类的异常,包括Exception,这样处理不容易发现出错的地方
4、编译出错,后面一个catch无法获取exception,因为前面的cathch已经获取了所有的异常
呵呵,多谢搂主,因为我也没用buffer。赶紧去改代码。关于其他的我建议写程序前一定要捕获异常并进行处理。