Java面试必备知识:基础篇

需积分: 9 2 下载量 66 浏览量 更新于2024-07-19 收藏 821KB PDF 举报
"Java面试宝典2017版,涵盖了Java基础、语法特性、面向对象、数据类型等方面的问题,旨在帮助求职者准备Java程序员的面试。" Java面试中的一些核心知识点如下: 1. **Java源文件与类的关系**:一个.java源文件可以包含多个类,但只能有一个公共类(public class),且公共类的名称必须与文件名相同。 2. **goto关键字**:Java中没有goto关键字,它是一种流程控制语句,在其他一些语言中存在,但在Java中被舍弃。 3. **&和&&的区别**:&是逻辑与运算符,无论两边条件如何都会执行,而&&是短路与,如果左边表达式为假,则不会执行右边表达式。 4. **跳出多重嵌套循环**:使用`break`语句可以跳出当前循环,但无法跳出多重嵌套;要跳出所有循环,可以使用标签(label)配合break。 5. **switch语句的使用**:switch不能直接作用于byte、long或String,但在Java 7及以上版本,可以使用`switch`处理Enum和String。 6. **short变量加法**:`s1 = s1 + 1`会引发编译错误,因为这会导致int类型的临时变量,需要强制类型转换回short;`s1 += 1`则会自动处理类型转换。 7. **char存储中文**:char变量可以存储一个中文字符,因为中文字符通常由两个Unicode码位组成,而char在Java中占16位。 8. **效率计算2乘以8**:最有效率的方法是使用`2 << 3`,利用位移操作符进行快速计算。 9. **设计大整数计算器**:考虑使用BigInteger类,它可以处理任意大小的整数运算。 10. **final关键字**:final修饰的变量,其引用一旦赋值后不可变,对于基本类型,值不能改变;对于对象,是指对象的引用不能改变,但对象的内容可以变。 11. **"=="与equals方法**:"=="比较的是两个变量的内存地址,而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. **Overload与Override**:Overload是重载,指同名方法参数列表不同;Override是重写,子类方法覆盖父类方法,需保持方法签名一致。 19. **构造器是否可被override**:构造器不能被重写(override),但可以被重载(overload)。 20. **接口与接口继承,抽象类与接口实现**:接口可以继承接口,抽象类可以实现接口,但抽象类不能继承具体类,抽象类中可以有静态的main方法。 21. **clone方法**:在重写clone方法时,通常会有一行代码`super.clone()`用于调用父类的克隆方法。 22. **面向对象特征**:封装、继承、多态是面向对象的三大特征。 23. **Java中的多态**:通过方法重写(Override)和接口实现(Implements)实现,使得子类对象可以替代父类对象。 24. **abstractclass与interface的区别**:抽象类可以有方法实现,可以有非抽象方法,可以有构造器;接口则全为抽象方法,没有构造器,不支持方法实现。 25. **abstract与static、native、synchronized**:abstract不能与static、native同时使用,但可以与synchronized一起使用。 26. **内部类**:内部类分为静态嵌套类(Static Nested Class)和非静态嵌套类(Inner Class),前者如同普通类,后者需要外部类的实例才能创建。 以上是Java面试宝典中涉及的一些关键知识点,涵盖了Java的基础语法、面向对象编程以及一些高级特性的理解和应用。理解并掌握这些知识点,将有助于在面试中表现出色。