Java面试必备知识:基础篇

需积分: 10 0 下载量 168 浏览量 更新于2024-09-19 收藏 771KB DOC 举报
"Java面试宝典_2010 是一本针对Java程序员的面试复习资料,包含了基础到高级的各种Java编程问题,旨在帮助求职者准备面试。文档标签为Java、面试宝典和2010年版,内容涵盖Java语言的基础、语法特性、面向对象、异常处理、内存管理等多个方面,旨在提升应聘者的Java技能和面试表现。" 1. Java源文件中的类限制:一个`.java`源文件可以包含多个类,但只有一个公开的顶级类(public class),其他类可以是非公开的(非public)或内部类。 2. `goto`关键字:Java中没有`goto`关键字,它是作为一种控制流转移的保留字,但未被使用。 3. `&`与`&&`的区别:`&`是逻辑与运算符,无论两侧条件如何都会执行,而`&&`是短路与运算符,如果左侧表达式为假,右侧表达式将不会被执行。 4. 跳出多重嵌套循环:可以使用`break`语句跳出最外层循环,`break label;`可以跳出特定标记的循环。 5. `switch`语句:不能作用于`byte`、`long`,但自Java 7起,可以作用于`String`。 6. `short`变量赋值:`short s1 = 1; s1 = s1 + 1;`会丢失精度,因为加法结果会转换为`int`。而`s1 += 1;`会自动拆箱和装箱,保持类型不变。 7. `char`存储中文:可以,因为一个`char`占两个字节,足以存储一个中文字符。 8. 2乘以8的计算:使用`2 * 8`即可。 9. 一百亿计算器的设计:需要考虑大整数运算,可以使用BigInteger类来实现。 10. `final`关键字:修饰变量时,表示该变量一旦赋值后不可更改,如果是引用类型,则引用不可变,但引用的对象内容可能变。 11. `==`与`equals`:`==`比较的是对象的引用,而`equals`比较的是对象的内容。 12. 静态变量与实例变量:静态变量属于类,所有类的实例共享;实例变量属于每个对象,每创建一个对象都有自己的副本。 13. `static`方法内调用非`static`方法:不允许,因为静态方法不依赖于任何对象实例。 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),但可以被重载(overload)。 20. 接口可以继承接口,抽象类可以实现接口,但不能继承具体类。抽象类可以有静态的`main`方法,但静态方法不属于任何对象实例。 21. `clone()`方法通常添加`super.clone()`调用来克隆当前对象。 22. 面向对象特征:封装、继承、多态。 23. 多态机制:通过接口或继承,使得一个类型的引用可以指向其子类型的对象。 24. `abstract class`与`interface`区别:抽象类可以有非抽象方法和实例变量,可以有构造器,而接口只能声明方法,不能有实例变量或构造器。 25. `abstract`、`static`、`native`、`synchronized`组合:`abstract`不能与`static`、`native`同时使用,但可以与`synchronized`组合。 26. 内部类:在类内部定义的类,分为静态内部类(Static Nested Class)和非静态内部类(Inner Class)。静态内部类可以直接创建对象,非静态内部类需要外部类的实例。 27. 内部类与包含类的关系:内部类可以访问包含类的所有成员,包括私有成员,但外部类不能直接访问内部类的私有成员。 28. 匿名内部类:没有名称的内部类,通常用于快速创建一次性的、简单的类实现。它可以实现接口或继承父类。 以上内容是Java面试宝典2010版的部分重点知识点,涵盖了Java基础知识和高级特性,对于准备Java面试的开发者具有很高的参考价值。