码迷,mamicode.com
首页 > 编程语言 > 详细

java知识小结

时间:2015-04-14 22:52:26      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

搞了2天java,有点收获,记录一下。

1.m=0;如果在try里写return ++m;finally里写++m;那么返回的结果是1还是2呢?

结论是1,调用try中的return ++m语句时实际上是先执行++m,然后走到finally中执行++m但是finally中的语句并不会使m真的++,原因是执行++的是临时变量有点像函数入参不是变量地址,在函数内部改变后并不会改变函数外的变量。finally执行完毕后再到try中执行return返回。

如果在try中写return,在finally中也写return则只执行finally中的return。

2.关于java中调用cmd控制台执行命令,并抓取cmd控制台中输出的内容:

Runtime abc = Runtime.getRuntime();

Process _pp = null;

try {

_pp  = rn.exec("cmd /k start ping 11112222223333 pause");

OutPutExportInfo _OutputInfo = new OutPutExportInfo(_pp.getInputStream());

_OutputInfo .start();

_OutputInfo.close();

List<String> _List = ((OutPutExportInfo)_OutputInfo ).GetOutPutString();

命令中如果有红色字体“start”则抓不到内容,原因可能是又起了一个线程。

再者如果不调用_OutputInfo.close();则会产生阻塞,同样得不到内容。

下面两个网址详细的讲了这个问题:

http://blog.csdn.net/shendeguang/article/details/17853297

http://www.360doc.cn/article/11818366_301075200.html

java知识小结

标签:

原文地址:http://www.cnblogs.com/JerryloveAda/p/4426143.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!