Java面试必备知识点:基础到高级

4星 · 超过85%的资源 需积分: 10 8 下载量 168 浏览量 更新于2024-07-27 收藏 669KB PDF 举报
"Java面试宝典是一份集合了多个知名公司如腾讯、百度、中软、阿里巴巴、浪潮等经典笔试题目的资料,旨在帮助求职者准备Java编程的面试。这份宝典涵盖了Java的基础知识到高级特性,是Java程序员面试的重要参考资料。" 1. Java源文件与类的关系:一个`.java`源文件可以包含多个类,但只能有一个公共类(public class),其他类可以是非公共类,作为内部类或辅助类。 2. `goto`关键字:Java中没有`goto`关键字,它不支持这种跳转语句。 3. `&`与`&&`的区别:`&`是逻辑与运算符,无论两边表达式是否为真都会进行计算;而`&&`是短路与运算符,如果左边表达式为假,右边的表达式将不会被执行。 4. 跳出多重循环:在Java中,使用`break`语句可以跳出当前的最内层循环;若要跳出多重循环,可以使用标签(label)配合`break`。 5. `switch`语句:`switch`不能直接作用于`byte`、`long`和`String`,但在Java 7及以上版本,`switch`可以作用于`String`。 6. `short`变量赋值:对于`short s1 = 1; s1 = s1 + 1;`,会有类型提升问题,需要强制转换;而`s1 += 1`会自动处理类型提升。 7. `char`存储中文:`char`类型可以存储单个Unicode字符,因此可以存储中文汉字。 8. 最有效率的乘法:`2 * 8`直接计算即可。 9. 一百亿计算器的设计:应考虑大数运算、效率和内存占用,可能需要用到BigInteger类。 10. `final`关键字:修饰变量时,意味着引用不可变,即不能指向其他对象,但引用的对象状态可以改变。 11. `==`与`equals`区别:`==`比较的是两个对象的引用,而`equals`方法默认比较的是内容,但可以被重写。 12. 静态变量与实例变量:静态变量属于类,实例变量属于类的每个实例。 13. `static`方法与非`static`方法:不能从`static`方法内部直接调用非`static`方法,因为非`static`方法依赖于实例对象。 14. `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. 构造器不能被`override`,但可以被重载。 20. 接口继承接口、抽象类实现接口、抽象类继承具体类以及抽象类中的`static main`方法:接口可以继承接口,抽象类可以实现接口,抽象类可以继承具体类,但抽象类的`main`方法不能是`static`的。 21. `clone()`方法通常会包含`super.clone()`以确保正确复制对象。 22. 面向对象特征:封装、继承、多态。 23. Java实现多态的机制:通过方法的重写(`Override`)和向上转型(Upcasting)。 24. `abstract class`与`interface`的区别:抽象类可以有方法实现,可以有非抽象方法和字段,而接口只有抽象方法和常量,不能有字段和实现。 25. `abstract`、`static`、`native`、`synchronized`组合:`abstract`不能与`static`、`native`同时使用,但可以与`synchronized`结合。 26. 内部类:定义在另一个类内部的类,分为静态嵌套类(Static Nested Class)和非静态嵌套类(Inner Class)。静态嵌套类不持有外部类的引用,而内部类则可以。 27. 内部类与外部类的引用:内部类可以直接访问外部类的所有成员,包括私有成员,但外部类不能直接访问内部类的私有成员。 28. 匿名类:没有名字的类,通常用于一次性创建对象,或者实现接口或继承类,但不能定义静态方法或静态变量。 以上只是部分内容,完整版的Java面试宝典涵盖了更多知识点,是准备Java面试的重要学习资料。