10条困惑java程序员的地方

如果你是JAVA程序员,是不是经常这样被困扰?

一,重复的类型申明
User user=new User();
说明:Java是静态语言,为了这一点,声明变量的时候必须明确告诉编译器该变量的类型。Java编译器就不能智能点吗?

二,临时变量
       int total=0;
       for(int i=0;i<10;i++)
       {
           total+=i;
       }
说明:total和i变量,造成局部代码臃肿,代码有更多的状态,多线程控制非常困难。

三,static对面向对象的冲击
      public class Person {
          public static int total=0;
      }
说明:static把不属于对象模板的东西硬生生的塞进去,使得模板不伦不类。

四,不支持高阶函数和闭包
     public void loan(operate)
    {
       BufferedReader in = null;
        try{
           in=new BufferedReader(new FileReader(filename));
           operate
        }catch(Exception e)
        {
            e.printStackTrace();
        }finally{
            in.close();
        }
    }
说明:不能以函数作为参数,使得Java处理上面类似的需求时,最优雅的实现就是:先申明一个接口,写多个类实现这个接口中的方法,然后把这个接口作为这个函数的参数。结果便是,类的数量迅速增加,类也变成了只是一个方法的包装器!
五,switch只支持int和enum类型
   switch(name){//java不支持这样写
      case "zhangshan":...
      case "lisi":...
      case "wangwu":...
      default:...
    }
说明:相信有很多Java程序员质疑,Java的switch为什么只支持int和enum类型?

六,synchronized泛滥
    public synchronized void  getResouce()
    {
        ...
}
说明:Java编程中最难的要数多线程编程,synchronized是很多程序员迈不过的槛!

七,转义之痛
    String path="c://test//test.java";
String content="hello ,/"Mr Right/"";
说明:转义,让优秀的程序员也不得不从流畅的编程中停下来,为编译器的无能做低级劳动。

八,运算符重载
  public class Complex {
    private int real;
    private int imaginary;
    +(Complex complex){
  return new Complex(real+complex.real,
                         imaginary+complex.imaginary);
}
}
说明:运算符重载,多么优美的风景线,Java却无情的拉上了封条。

九,繁琐的多重循环
   for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            ...
        }
}
说明:大家也许已经习惯了多重循环,但我们为什么要习惯这种笨拙的实现?

十,多余的字符
   public String getName()
{
  return this.name;
}
说明:()必须吗?String必须吗?return必须吗?.必须吗?;必须吗?


本文摘自: 编程十万个为什么(http://www.bcwhy.com) 详细出处请参考:http://www.bcwhy.com/thread-1816-1-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值