Java面试必备知识:基础与进阶

需积分: 6 6 下载量 17 浏览量 更新于2024-07-25 收藏 590KB DOC 举报
"Java面试宝典2013版,涵盖了Java基础、语法特性、面向对象、多态、接口、内部类等核心知识点,是准备Java面试的重要参考资料。" 以下是部分重要知识点的详细说明: 1. **Java源文件与类的关系**:一个.java源文件可以包含多个类,但只能有一个公共类(public class),且该公共类的名称必须与文件名相同。 2. **goto关键字**:Java中没有goto关键字,它通常被其他控制流结构如if、while、for和switch替代。 3. **&与&&的区别**:&是逻辑与运算符,无论两侧表达式是否为真都会进行计算;而&&是短路与运算符,如果左侧表达式为假,右侧表达式将不会执行。 4. **跳出多重嵌套循环**:在Java中,可以使用`break`语句配合标签(label)跳出多重嵌套循环,如`label: for(...){...}`,然后在循环内部使用`break label;`。 5. **switch语句的使用**:switch可以作用于byte、char、short、int,以及枚举类型和String(JDK 7及以上版本)。 6. **short类型的自增问题**:直接使用`s1=s1+1`会导致数据溢出,因为会先将short提升为int类型计算,再赋值回short,可能会丢失信息。而`s1+=1`则会自动处理数据类型转换。 7. **char存储中文字符**:char类型可以存储一个UTF-16编码的字符,所以可以存储中文汉字。 8. **计算2乘以8**:最有效率的方法是直接使用`2 * 8`。 9. **设计大数计算器**:设计一个能处理大数的计算器,需考虑使用字符串或自定义数据结构存储大数,并实现加减乘除等运算。 10. **final关键字**:final修饰的变量,其引用一旦初始化后不能改变,而引用的对象内容是否可变取决于对象本身的特性。 11. **"=="与equals的区别**:"=="比较的是对象的引用,而equals()通常用于比较对象的内容是否相等。 12. **静态变量与实例变量**:静态变量属于类,所有类的实例共享;实例变量属于每个对象,每个对象有自己的副本。 13. **静态方法与非静态方法**:静态方法内不能直接访问非静态成员,因为非静态成员依赖于具体的对象实例。 14. **Integer与int**:Integer是int的包装类,支持对象操作,而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. **构造器不可被override**:构造器不能被重写,但可以重载。 20. **接口与抽象类**:接口可以继承接口,抽象类可以实现接口,抽象类可以继承具体类,抽象类中可以有静态的main方法。 21. **clone方法**:通常在实现clone方法时,会调用`super.clone()`以确保正确复制对象。 22. **面向对象特征**:封装、继承、多态。 23. **Java中的多态**:通过接口或继承实现,同一方法可以根据对象的实际类型表现出不同的行为。 24. **abstractclass与interface**:抽象类可以有方法实现,可以有非抽象方法,可以有构造器;接口只包含抽象方法,不能有实现,不能有构造器。 25. **abstract、static、native、synchronized的组合**:抽象方法不能是static或native,也不能是synchronized。 26. **内部类**:内部类是定义在另一个类中的类,分为成员内部类、局部内部类、匿名内部类和静态嵌套类(Static Nested Class)。StaticNestedClass是静态内部类,与外部类之间没有隐含的实例关系;InnerClass是非静态内部类,可以访问外部类的私有成员。 27. **内部类与外部类的交互**:内部类可以直接访问外部类的所有成员,包括私有成员,但外部类需要通过内部类的实例才能访问内部类的成员。 28. **匿名内部类**:可以继承其他类或实现接口,通常用于一次性使用的简单类,没有类名。 以上只是部分知识点,完整的面试宝典2013版涵盖了更多的Java编程细节,对于准备Java面试的开发者来说是一份宝贵的参考资料。