java知识小结

搞了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

转载于:https://www.cnblogs.com/JerryloveAda/p/4426143.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值