java规约
1. 关于基础数据类型。
还记得上一片文章中结尾部分的那个例子么?
因为计算机的2进制的特性,Java语言(其他语言好像也一样)无法准确地进行float,double类型数据的计算,所以,作这些计算的时候需要考虑使用BigDecimal着各类。
2. String类与StringBuffer类
Java的String类提供如下的简单的字符串连接方法。
String s1 = “a”;
String s2 = “b”;
String s3 = “c”;
String s = s1 + s2 + s3;
但是这里有一个问题,String类的每一次加操作都会产生一个新的对象。当你针对String类的加的操作开始变得多起来的时候,不但程序占用内存会增加得非常明显,程序运行时间也会大大增加。这个时候需要考虑StringBuffer类的append方法。笑着不是一个极端主义者,所以,笑着还是倾向,不要只要对字符串采用加的操作就用append方法。而是应该根据具体情况,自己衡量一下。具体的测试,自己写个for循环1w次,很容易测试出来的。
3. 关于import*
尽量不要采用import*的写法,而是应该把要import的类具体写出来。这里的原因,一个是因为import*的写法会影响程序的阅读,导致维护者不是很清楚你具体用到了哪些类。但是更主要的是,如果你import*,那么在你打包生成jar,war等等文件的时候,你的*代表的所有类都会被打包进去。一方面导致了你发布内容的大小大幅度增加,另外,很可能会泄漏了一些你并不想要泄露出去的内容。这才是问题的关键,安全第一。
4. 合理使用异常处理,不要过度使用。
Java得异常处理是个不错的东西。可以节省我们很多工作量。但是,有异常处理的的代码段比没有异常处理的代码段运行的时间要增加不少。所以不要把什么都交给异常处理。我们应该做出适当的判断,最后的最后,处理不了的东西才应该交给异常处理,这也符合业务处理的逻辑。
比如,存在FileNotFoundException,但是,
try {
} catch ( FileNotFoundException ) {
}
就不如
if ( f.exists() ) {
} else {
}
5. 尽量不要简单的捕捉Exception异常。
因为在Java里面旧的异常会被新的异常所淹没,而使得我们仅仅根据新的异常信息很难判断出问题究竟出在什么地方。而简单的捕捉Exception异常,会使得这种可能性大大增加。另外,简单的捕捉Exception异常会使得我们很难针对不同的异常采取对应的措施。所以请尽量捕捉具体的异常而不是Exception这个超级异常。可以考虑如下代码结构。
try
相关文档:
使用 java 进行文件拷贝 相信很多人都会用,,不过效率上是否最好呢?
最近看了看NIO决定试一试 java NIO 到底有什么性能的提升.
第一种方法:古老的方式
public static long forJava(File f1,File f2) throws Exception{
long time=new Date().getTime();
int length=2097152;
FileInp ......
最近用installanywhere做了一个安装包,卸载的时候总是出现“载入java vm时windows出现错误:3”,很不爽,上网查看原因,原来是因为中间我重新更换过jdk的版本,现在有些软件自带VM或JDK,windows系统通过注册表来管理当前系统所使用的VM和JDK路径,因此,当安装的软件JDK版本和 ......
花了两天时间,终于把access数据库里的数据换到Oracle了。当然这其中要感谢同学和博友的热心帮助拉。现将今天的收获整理下。
我用的是Oracle 10 express edition版本,这个版本建数据库挺麻烦的,所以我就直接在它自带的数据库XE下建表了。
注意:建表可一定要 ......
【IT168 技术文章】
WWJ SDK 是一种构建在 Java OpenGL (JOGL) 扩展之上的 3D
图形地球仪。WWJ 类层次结构的核心是 GLCanvas 的子类 WorldWindowGLCanvas。而 GLCanvas 是一个
Abstract Window Toolkit (AWT) 组件。
WWJ 对 AWT 的依赖性对于想在 Eclipse
应用程序中使用 WWJ 的 GIS 开发人员来讲是一个障碍。您可 ......
l组件从功能上分可分为:
1) 顶层容器:JFrame,JApplet,JDialog,JWindow
2) 中间容器:JPanel,JScrollPane,JSplitPane,JToolBar
3) 特殊容器:在GUI上起特殊作用的中间层,如JInternalFrame,JLayeredPane,JRootPane.
1.JFrame的用法
1) 用getContentPane( )方法获得JFrame的 ......