Java程序员面试宝典-Java代码查错.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
Java编程语言中的错误和最佳实践在面试中是常见的考察点,因为它们直接影响到代码的正确性和可维护性。以下是对给定文档中提到的一些常见Java代码错误和知识点的详细解释: 1. **抽象方法(Abstract Methods)**:抽象方法必须以分号结尾,而不是大括号。在给出的例子中,`isStupidName`方法应该写为`public abstract boolean isStupidName(String name);`。 2. **访问修饰符与局部变量**:局部变量(在方法内部声明的变量)不能有访问修饰符,如`private`、`public`或`protected`。在示例中,`doSomething`方法内的`String s`前不应有`private`关键字。正确做法是直接声明`String s = "";`。 3. **private与abstract**:`abstract`方法不能被`private`修饰,因为抽象方法是为了让子类重写,而`private`方法是不可继承的。因此,`private abstract String doSomething();`是错误的。 4. **final与基本类型**:`final`关键字修饰基本类型的变量表示其值不能改变。在`addOne`方法中,`final int x`一旦赋值就不能再更改,所以`return ++x;`会导致编译错误。 5. **final与对象引用**:`final`修饰的对象引用意味着引用不能改变,但其成员变量可以。在例子中,`o.i++`是允许的,因为它不改变`o`的引用,而是改变了`o`引用的对象的成员变量。 6. **实例变量的默认值**:实例变量(如`int i`)有默认值,对于`int`类型,默认值是0。因此,即使未初始化,`System.out.println("i = " + i);`也会输出`i = 0`。 7. **final与实例变量**:如果实例变量`i`被声明为`final`,则必须在构造函数中初始化。例如,可以写为`final int i = 0;`,否则会引发编译错误,因为`final`变量必须有一个确定的初始值。 8. **静态方法与非静态方法**:在`main`方法中直接调用非静态方法`doSomething()`是错误的,因为`main`是静态的,它不能直接访问非静态成员。要调用非静态方法,需要先创建对象,如`s.doSomething()`。正确的代码应该是`System.out.println("s.doSomething() returns " + s.doSomething());`。 这些例子涵盖了Java编程中的基础概念,包括访问修饰符、抽象方法、final关键字的使用、变量的初始化以及静态与非静态方法的调用规则。在面试或编写代码时,理解并遵循这些原则可以避免许多常见的错误。
剩余16页未读,继续阅读
- 粉丝: 3811
- 资源: 59万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助