"Java程序员面试宝典2013版"
Java作为一门广泛使用的编程语言,其面试题目涵盖了许多核心概念和技术。以下是对标题和描述中所提及知识点的详细解释:
1. **Java源文件与类的关系**:一个.java源文件可以包含多个类,但只能有一个公开的(public)类,其他非公开类没有限制。
2. **goto关键字**:Java中没有goto关键字,它鼓励使用结构化编程,避免无条件跳转。
3. **逻辑运算符&和&&**:&是位运算符,用于按位与操作;&&是逻辑运算符,用于短路逻辑与,仅在必要时才计算右侧表达式。
4. **跳出多重嵌套循环**:使用`break`语句可以跳出最近的循环,但不能直接跳出多层循环。为了跳出多重循环,可以使用标签(label)配合break。
5. **switch语句的使用**:switch可以作用在byte、char、short、int、枚举(enum)和字符串(Java 7以后)上,不能直接作用于long或浮点类型。
6. **short变量的加法**:`short s1 = 1; s1 = s1 + 1;`会报编译错误,因为结果会被提升为int类型,需要强制转换。而`s1 += 1;`会自动处理类型转换。
7. **char存储中文**:char类型可以存储单个Unicode字符,因此可以存储中文汉字。
8. **2乘以8的计算**:最有效率的方式是直接写出`2 * 8`,因为这是编译器最优化的表达方式。
9. **设计大数计算器**:设计一个大数计算器要考虑大数的表示(如字符串或自定义数据结构)、加减乘除的算法以及错误处理。
10. **final关键字**:final修饰变量时,变量的引用一旦赋值后不能改变,如果修饰引用类型,则引用的对象也不能变。
11. **"=="与equals的区别**:"=="比较的是对象的引用,而equals()通常比较对象的内容是否相等。
12. **静态变量与实例变量**:静态变量属于类,实例变量属于对象,静态变量在内存中只有一份,实例变量每个对象都有独立的一份。
13. **静态方法与非静态方法**:静态方法内不能直接调用非静态方法或访问非静态变量,因为非静态成员依赖于具体的对象实例。
14. **Integer与int**:Integer是int的包装类,提供了许多额外功能,但会有装箱拆箱开销。当比较Integer时,较小的数值会更高效。
15. **Math.round**:Math.round(11.5)等于12,Math.round(-11.5)等于-11。
16. **代码不妥之处**:具体代码未给出,无法分析。
17. **访问修饰符的区别**:public表示公共的,可被所有类访问;private表示私有的,只能在本类中访问;protected表示受保护的,可在同一包或子类中访问;默认(不写)表示在同一包内可见。
18. **重载与覆盖**:重载是方法名相同但参数列表不同,返回类型不影响重载。覆盖(Override)发生在子类中,方法名、参数列表和返回类型必须完全一致。
19. **构造器不能被覆盖**:构造器不能被重写(Override),但可以被重载。
20. **接口与抽象类的继承**:接口可以继承接口,抽象类可以实现接口,抽象类可以继承具体类,静态方法不能作为主方法(main method)。
21. **克隆方法**:在实现Cloneable接口后,通常需要在类中重写`clone()`方法,并在其中调用`super.clone()`。
22. **面向对象的特征**:封装、继承、多态。
23. **Java中的多态**:通过方法重写(Override)和接口实现(Implements)实现,使得父类型的引用可以指向子类型的实例,调用子类特有的行为。
24. **抽象类与接口**:抽象类可以有方法实现,可以有构造器,可以有非抽象方法;接口则只能声明方法,不能有实现,不能有构造器。
25. **抽象方法的特性**:抽象方法不能是static、native或synchronized。
26. **内部类**:内部类分为成员内部类(StaticNestedClass)和局部内部类(InnerClass)。成员内部类可以访问外部类的所有成员,包括私有成员;静态内部类不需要外部类的实例就可以创建,而局部内部类只能在定义它的代码块内使用。
27. **内部类与外部类的交互**:内部类可以直接访问外部类的成员,但外部类要访问内部类成员需要通过实例引用。
28. **匿名内部类**:匿名内部类没有名称,常用于快速创建实现特定接口或继承特定类的临时类,它可以继承一个类或实现一个接口。
以上知识点涵盖了Java的基础语法、面向对象特性、类与接口、异常处理、数据类型、内存管理等多个方面,是Java程序员面试中常见的问题。理解和掌握这些知识点对于面试和实际开发工作至关重要。