一,重复的类型申明
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必须吗?.必须吗?;必须吗?
分享到:
相关推荐
编程中遇到的常见问题,看了肯定有茅塞顿开之感。Java总有你没掌握的内容
《Java解惑(中文版)》是一本专为Java初学者设计的学习资料,旨在帮助读者解答在学习Java过程中遇到的各种困惑。"solve65p"可能代表这本书包含65个问题或主题,每个都深入浅出地进行了讲解,旨在解决初学者在编程...
以上知识点是Java编程中不可或缺的部分,"JAVA解惑.pdf"很可能详细讲解了这些内容,为读者提供了一条清晰的学习路径,以解答他们在学习过程中遇到的困惑。通过深入学习这些内容,开发者可以提升自己的Java技能,更好...
然而,在Java中有一些关键字的使用可能会让人感到困惑,例如`public`、`protected`、`private`和`static`等。理解这些关键字何时使用、为什么使用以及如何使用是非常重要的。 #### 三、深入面向对象编程特性 面向...
错误信息往往令人困惑,导致一些初学者失去学习信心。实际上,很多问题源于对classpath的设置以及对package的理解不足。本文通过实例,帮助初学者解决这些问题。 首先,你需要确保已经下载并安装了JDK 1.5.0,通常...
这份名为"JAVA解惑"的PDF文档,可能是由一位经验丰富的Java开发者或者教育者编写的,旨在帮助读者理解并解决Java学习过程中遇到的困惑。它可能包含了各种常见问题的解答,如语法错误、程序逻辑错误、性能优化、内存...
《JAVA解惑》则可能是一部针对初学者或中级开发者的学习资料,旨在解答在学习和使用Java过程中遇到的困惑。虽然没有提供具体的作者信息,但可以预期它会涵盖诸如语法难点、面向对象设计、异常处理、集合框架等方面的...
这份“Java解惑.pdf”文档很可能包含了解决Java开发者在编程过程中遇到的常见问题和困惑的详细解答。以下是可能涵盖的一些Java相关知识点: 1. **基础语法**:Java的基础语法包括变量、数据类型、运算符、流程控制...
Java开发接口帮助文档是开发者在进行Java编程时的重要参考资料,它包含了JDK中的类库、接口、类与类之间的继承关系...掌握并善用这份文档,能够提高开发效率,减少编程过程中的困惑,从而提升整个项目的质量和可靠性。
这个教程附带的学习顺序指南将为你提供清晰的路径,帮助你避免自学过程中的困惑和迷茫。 总之,“Java基础教程(Java SE)”是一个全面的初级入门资料,无论你是0基础还是有一定编程经验,都能从中受益。通过系统...
本文将深入探讨Java编程思想的关键点,帮助新手们解除困惑,顺利迈入编程的大门。 首先,Java是一种面向对象的编程语言,这与C++或C等早期的编程语言有着显著的区别。面向对象编程(OOP)的核心理念在于通过模拟...
Java语言中的`final`、`finally`和`finalize`这三个关键字虽然在拼写上相似,但它们的作用却截然不同。在Java面试中,理解这三个概念的区别是非常基础且重要的。 首先,`final`是一个修饰符,它有以下几个用途: 1...
- **Java API的使用**:Java API的学习是Java开发的一个重要环节,虽然API提供了极大的便利,但其数量庞大,初学者可能会感到困惑。因此,学会如何使用Java API手册是非常重要的,可以通过官方文档或其他在线资源...
通过阅读《Java解惑中文版》,读者不仅可以解答编程中遇到的困惑,还能系统提升自己的Java技术水平,编写出更加健壮、易于维护的程序。无论你是Java新手还是有经验的开发者,这本书都将是你不可或缺的参考资料。
《Java解惑》是一本针对常见Java问题和困惑的解答书籍,可能包含了异常处理、内存管理(如垃圾回收机制)、集合框架、IO流、多线程等方面的解释,帮助开发者解决实际编程中遇到的问题。 《Java线程(Java线程经典...
《Java解惑》则是一本解决实际编程问题的书籍,它针对初学者在学习过程中可能遇到的困惑进行解答,提供了许多实战案例和常见错误的解决方案。通过阅读这本书,读者可以更好地理解Java中的复杂概念,并提高问题解决...
不少Java程序员,在在应聘一些中大型互联网公司的Java工程师岗位时,经常会遇到如下困惑。 这些同学说自己也做了精心准备,网上搜集了不少Java面试题。 然而实际去互联网公司面试才发现,人家问的,和你准备的根本对...