java
文章平均质量分 61
ceys_2011
这个作者很懒,什么都没留下…
展开
-
关于sql和bigdecimal的除法
sql 除法 除数为零select decode(zzc,0,0,fz/zzc) from table BigDecimal的devide的函数定义如下BigDecimal.divide(BigDecimal divisor, int scale, RoundingMode roundingMode) ;scale为小数位数;roundingMo原创 2011-10-27 11:00:59 · 2203 阅读 · 0 评论 -
编程风格
函数:1、一个函数只做一件事,函数中的语句要在同一抽象层上。自顶而下编写函数。2、最理想的函数没有参数,不要写三个参数以上的函数。三个以上的参数应该封装为类。3、如果函数要对输入参数进行转换,转换结果就该体现为返回值。无返回值的函数改变系统状态。4、尽量不要想函数传入布尔值。5、把try/catch代码块抽离形成单独的函数。格式:1、关系密切的概念应该互相靠原创 2012-01-10 17:46:22 · 379 阅读 · 0 评论 -
java技巧
编译器会在包含有正确名称的方法的最内层范围内查找需要调用的方法public class Outer{public static void main(String[] args) throws Exception{new Outer().greetWorld();} private void greetWorld()throws Exception {System.o原创 2012-01-11 16:36:42 · 533 阅读 · 0 评论 -
java技巧(七)
1、一个覆写方法的访问修饰符所提供的访问权限与被覆写方法的访问修饰符所提供的访问权限相比,至少要一样多。2、public class PingPong{ public static synchronized void main(String[] a){ Thread t = new Thread(){ public void run(){原创 2011-12-16 17:06:38 · 360 阅读 · 0 评论 -
类
1、一个包内私有的方法不能被位于另一个包中的某个方法直接覆写。对于方法,final 意味着该方法不能被覆写(对实例方法而言)或者隐藏(对静态方法而言)。对于域,final 意味着该域不能被赋值超过一次。2、如果使一个类成为可序列化的,并且接受缺省的序列化形式,那么该类的私有实例域将成为其导出API 的一部分。class Base {public static void f()原创 2011-12-15 11:28:27 · 389 阅读 · 0 评论 -
java技巧(五)
1、无论何时,只要你覆写了equals 方法,你就必须同时覆写hashCode 方法。对于大多数在Object中声明的非final的方法,都需要注意这一点。2、当你想要进行覆写时,千万不要进行重载。@Override public Boolean equals(Object o) { ... }在使用这个注释时,除非被注释的方法确实覆写了一个超类方法,否则它将不能编译。3、原创 2011-12-13 14:03:24 · 325 阅读 · 0 评论 -
java技巧(三)
1、Java 虚拟机对栈的深度限制到了某个预设的水平。当超过这个水平时,VM 就抛出StackOverflowError。2、Java 的重载解析过程是以两阶段运行的。第一阶段选取所有可获得并且可应用的方法或构造器。第二阶段在第一阶段选取的方法或构造器中选取最精确的一个。如果一个方法或构造器可以接受传递给另一个方法或构造器的任何参数,那么我们就说第一个方法比第二个方法缺乏精确性。原创 2011-12-09 13:56:42 · 259 阅读 · 0 评论 -
java技巧(四)
1、public class Thing {public Thing(int i) { ... }...}Thing 实例没有提供任何可以获取其构造器参数的值的途径。因为Thing 是一个库类,所以你不具有访问其内部的权限,因此你不能修改它。假设编写一个称为MyThing 的子类,其构造器将通过调用SomeOtherClass.func()方法来计算超类构造器的参数。这个方法返回的值原创 2011-12-09 14:24:55 · 468 阅读 · 0 评论 -
java技巧(二)
1、任何浮点操作,只要它的一个或多个操作数为NaN,那么其结果为NaN。2、操作符重载是很容易令人误解的。在本谜题中的加号看起来是表示一个加法,但是通过为变量i 选择合适的类型,即String,我们让它执行了字符串连接操作3、不要在short、byte 或char 类型的变量之上使用复合赋值操作符。因为这样的表达式执行的是混合类型算术运算,它容易造成混乱。例如。i 的初原创 2011-12-05 18:08:31 · 369 阅读 · 0 评论 -
StringUtils
StringUtils 方法的操作对象是 java.lang.String 类型的对象,是对 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相应处理,例如,如果输入为 null 则返回也是 null 等,具体可以查看源代码)。除了构造器,StringU转载 2011-12-06 01:29:10 · 383 阅读 · 0 评论 -
java技巧
1、如果你正在在一个性能临界(performance-critical)环境中使用isOdd 方法,那么用位操作符AND(&)来替代取余操作符会显得更好:public static boolean isOdd(int i){ return (i & 1) != 0;}2、浮点运算在一个范围很广的值域上提供了很好的近似,但是它通常不能产生精确的结果。二进制浮点对于货币原创 2011-12-04 03:32:30 · 350 阅读 · 0 评论 -
hashmap
大家都知道其实一个 HashMap 的实际容量就 因子*容量,其默认值是 16×0.75=12; 这个很重要,对效率很一定影响!当存入HashMap的对象超过这个容量时,HashMap 就会重新构造存取表。这就是一个大问题,我后面慢慢介绍,反正,如果你已经知道你大概要存放多少个对象,最好设为该实际容量的能接受的数字。 两个关键的方法,put和get: 先有这样一个概念,Ha转载 2011-11-09 11:29:39 · 292 阅读 · 0 评论 -
java calendar
1. add() 与 roll() 的区别 add() 的功能非常强大,add 可以对 Calendar 的字段进行计算。如果需要减去值,那么使用负数值就可以了,如 add(field, -value)。 add() 有两条规则: 当被修改的字段超出它可以的范围时,那么比它大的字段会自动修正。如: Calendar cal1 = Calendar.get转载 2011-11-07 17:06:39 · 390 阅读 · 0 评论 -
编程风格(二)
类1、当类失去内聚性就拆分它。系统1、将构造与使用分开:方法1:将全部构造构成搬迁到main或称之为main的模块中。方法2:抽象工厂。方法3:依赖注入。问题1、重复。重复的代码可能成为子程序或干脆是另一个类。将重复代码叠放进类似的抽象,增加设计语言的词汇量。不同模块中不断重复出现、检测同一组条件的switch/case或if/else链,可以用原创 2012-01-13 14:31:52 · 697 阅读 · 0 评论