Java面试深度解析:基础到高级

需积分: 0 0 下载量 162 浏览量 更新于2024-07-23 收藏 1.12MB PDF 举报
"Java面试宝典2013包含了Java面试的经典问题,涵盖了Java基础、语法特性、面向对象、类与接口、内部类等多个方面,旨在帮助求职者全面准备Java技术面试。" 以下是这些知识点的详细说明: 1. **Java源文件与类的关系**:一个.java源文件可以包含多个类,但只有一个类可以是公共类(public),且文件名必须与该公共类的名称完全匹配。 2. **goto关键字**:Java中没有goto关键字,它遵循结构化编程原则,提倡使用控制流语句如if、for、while和switch来控制程序流程。 3. **&和&&的区别**:&是逻辑与运算符,无论两边表达式是否为真都会执行;&&也是逻辑与,但只有当左边表达式为真时才会评估右边。 4. **跳出多重循环**:在Java中,使用`break`语句可以跳出最近的一个循环,`return`则能结束整个方法并返回值。 5. **switch语句的适用类型**:switch可以作用在byte, char, short, int,枚举类型以及Java 7及以后版本的String类型上。 6. **short变量的加法**:直接相加可能导致溢出,因此`s1 = s1 + 1`是错误的。而`s1 += 1`会自动提升类型,避免溢出。 7. **char型变量与中文字符**:char类型可以存储一个Unicode字符,因此可以存储中文汉字。 8. **计算2乘以8**:最有效率的方式是直接赋值`int result = 2 * 8`。 9. **设计大数计算器**:在Java中,可以使用BigInteger类来处理大数运算。 10. **final关键字**:final修饰的变量,其引用一旦初始化后不可改变,但如果是对象,则对象的内容可以改变,只要不改变引用。 11. **"=="与equals的区别**:"=="比较的是两个对象的引用,而equals方法比较的是内容是否相等。 12. **静态变量与实例变量**:静态变量属于类,而实例变量属于类的每个实例。静态变量被所有实例共享,实例变量在每个实例中有独立副本。 13. **静态方法与非静态方法**:不能从静态方法内部直接调用非静态方法,因为非静态方法依赖于类的实例。 14. **Integer与int**:Integer是int的包装类,用于处理对象和基本类型的转换。Integer对象占用更多内存,而int是原始类型,效率更高。 15. **Math.round方法**:Math.round(11.5)等于12,Math.round(-11.5)等于-11。 16. **代码不妥之处**:未提供具体代码,无法分析。 17. **作用域**:public可被所有类访问,private仅限本类,protected允许同包及子类访问,无修饰词则默认为包级私有。 18. **Overload与Override**:Overload是重载,方法名相同但参数列表不同;Override是重写,子类方法覆盖父类同名同参数的方法,返回值类型不能改变。 19. **构造器重写**:构造器不能被重写,但可以重载。 20. **接口与抽象类**:接口可以继承接口,抽象类可以实现接口,抽象类也可以继承具体类,但抽象类中可以有静态的main方法。 21. **clone方法**:通常在重写clone方法时,会包含`super.clone()`,以创建对象的浅复制。 22. **面向对象特征**:封装、继承、多态。 23. **Java多态机制**:通过接口或继承,以及方法的重写和重载,实现多态性。 24. **abstractclass与interface**:抽象类可以有非抽象方法和字段,而接口只能有抽象方法和常量;抽象类可以有构造器,接口不能。 25. **abstract与static, native, synchronized**:抽象方法不能是static或synchronized,但可以是native。 26. **内部类**:内部类是定义在另一个类内部的类,分为静态嵌套类(StaticNestedClass)和非静态嵌套类(InnerClass)。静态嵌套类无需外部类的实例即可创建,而非静态嵌套类需要外部类实例。 27. **内部类与外部类成员**:内部类可以直接访问外部类的所有成员,包括私有成员。 28. **匿名内部类**:匿名内部类可以继承其他类或实现接口,但不能有类名,通常用于快速创建临时的、简洁的实现。 以上是对Java面试宝典2013中部分内容的详细解释,这些知识点是Java开发者必备的基础和进阶知识。