大定知道java八大基本类型都有其对应的引用类型,关于二者的区别我就不多说了,百度也知道,现看如下代码:
方法一:
public void test(long p1){
  //...
}
方法二:
public void test(Long p2){
  //...
}当然,这两个方法中,方法二的参数是可以用null的,方法一不行。
但实际运用中,我們不可能传null进来的,(不知道程序前面肯定出问题了),如此一来,方法一和方法二,作用和使用上应该没区别了吧?
但如果非要钻牛角尖,各位大虾认为,这两个方法,用那个更好点呢?(可以从效率啊,习惯啊方面来表述)你們更习惯用那个呢?(当然其实用那个都没有错,呵)
欢迎来讨论。

解决方案 »

  1.   

    周未都没什么人来这边逛了。
    现说下自己的看法吧,我觉得应该还是用方法一更好点吧,理由是这样子的,基本类型,在java编译时,应该把参数放在了常量区了,这样调用时是不是会更快点呢(大概这个意思吧,说得不大好,总之觉得效率上应该高点吧)
    还有,基本类型,相对来说,也比引用类型少占内存空间吧?(空间上应该占用少点吧?)不知,元芳,你怎么看呢?
      

  2.   

    既然基本类型要比引用类型效率方面好这么多,那为何BS中,不用呢?而采用封装类?
    其实大部java开发的,都是BS应用啊
      

  3.   

    实体映射数据库, 你如何能保证你数据路的字段不会是空值?基本数据类型是不能引用null的。
      

  4.   

    大部分时候我见过的都是简单类型,封装类型的只有在做类型转换时采用的,比如将String转换为Integer。
    因为没有积分了,没法发帖子,我来搭便车发个问题:
     最近做项目发觉我的jre在执行new Date()时获得的时间是GMT的时间,但同一段代码我的同事获得的却是CST时区的。请问,各位有没有遇到过类似的问题,大家是如何修改jre设置,使new Date()获取的时间是CST时区的。 
      

  5.   

    这说得倒也有道理。
    不过,如果验证数据严格点,完全把NULL的数据转化为0之类的,我认为,应该问题也不大。
    当然,这也增加了工作量了,也难免百密一疏吧,为稳定起见,采用封装类,确实可靠性更高吧。
      

  6.   

    没遇到过,我觉得,可能跟你机子上的时区设置有关系吧?你把系统设置为北京时区试下。
    这应该跟jre没什么关系
      

  7.   

    你SimpleDateFormat 这个类格式化你的Date对象。跟你设置的时区木有任何关系!
      

  8.   

    没有关系么?你看看我的执行结果就知道了。import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Iterator;
    import java.util.Properties;
    import java.util.TimeZone;public class TestTime {
    public static void main(String[] args) {
    Date date=new Date();
    System.out.println("将对象date直接输出: "+date);


    TimeZone tz = TimeZone.getTimeZone("ETC/GMT-8"); 
    TimeZone.setDefault(tz); 
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");   
    System.out.println(df.format(new Date())); 
    System.out.println("-----------------------"); 
    Properties props = System.getProperties();
    System.out.println("user.timezone=" + props.get("user.timezone"));
    }
    }以下是执行结果:
    将对象date直接输出: Sat Dec 01 15:31:11 GMT 2012
    2012-12-01 23:31:11
    -----------------------
    user.timezone=GMT
      

  9.   

    将对象date直接输出: Sat Dec 01 23:59:37 CST 2012
    2012-12-01 23:59:37
    -----------------------
    user.timezone=Asia/Shanghai上面是我刚测试的结果,下面是我改电脑时区后,输出的结果,很显然,结果不一样
    将对象date直接输出: Sat Dec 01 04:02:29 GMT-12:00 2012
    2012-12-02 00:02:30
    -----------------------
    user.timezone=GMT-1200
      

  10.   


    基本类型是要快不少,基本类型long存放在栈,运行速度快,还可以共享;而Long是对象,存放在堆,明显要慢不少。
    通常在上游如果返回的是Long,不如说数据库查询等等,才会使用Long,扩展性要好一些,可以使用相应的方法。
    除了上面这种情况,其他都应该直接使用long,效率高!如果你想用Long的方法,再在方法里面套一层Long.valueOf(long)即可。
    同理,其他基本类型都是同样的情况!
      

  11.   

    我同意 10 楼的看法,我觉得这才是为什么使用 Long 的原意,
    也就是 为什么java 要将 基本数据类型都包装有相对应的 引用数据类型,而作为面向对象。
    这不是多次一举.