我在Netbeans 7.1.2中有以下代码:
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filename));
bos.write(newRawData);
bos.close();
Run Code Online (Sandbox Code Playgroud)
警告表明我"转换为尝试资源".当我选择这样做时,我的代码变为:
try (BufferedOutputStream bufferedFos = new BufferedOutputStream(new FileOutputStream(filename))) {
bufferedFos.write(newRawData);
}
Run Code Online (Sandbox Code Playgroud)
这类似于在C#中使用(...)的语法...它们的工作方式是否相同?使用第二种格式有什么缺点吗?我担心没有bos.close();,但是这种格式根本没有必要吗?
我有一个640x480的二进制图像(0s和255s).图像中有一个白色的斑点(接近圆形),我想找到斑点的质心(它总是凸起的).基本上,我们正在处理的是2D布尔矩阵.如果可能的话,我希望运行时线性或更好 - 这可能吗?
到目前为止有两条思路:
numpy.where()功能python boolean numpy image-processing python-imaging-library
我正在更新一个旧项目,我想知道是否应该在IDE中删除一些标记为"过时"的对象.有问题的对象是Vector和Hashtable.我做了一些研究,看起来这些对象的新对应物 - ArrayList和HashMap - 基本相同,只是没有同步.
我的问题是,为什么要进行切换?我不是只是从我的应用程序中取走一点安全性以换取少量速度吗?看起来这不是一个巨大的决定,但我想我会在做出决定之前看看是否值得花时间.
谢谢!
可能重复:
Java中的静态初始化程序
我有几年的Java经验,但我最近遇到了一些我以前从未见过的东西:
public class Project{
...
static{
initDataTypeMapping();
}
...
}
Run Code Online (Sandbox Code Playgroud)
这种方法签名如何工作?事实上这在技术上是一种方法吗?我想知道为什么不会简单地将方法调用initDataTypeMapping()放在构造函数中.只是想增加我的理解,所以我不会弄乱一些东西.谢谢!