Java面试必备知识:基础篇

需积分: 45 17 下载量 173 浏览量 更新于2024-07-19 收藏 1.2MB PDF 举报
"Java面试宝典2018版,包含Java面试常见问题及解答,涵盖基础、语法、面向对象、类与接口等多个方面。" Java面试中的关键知识点包括: 1. **Java源文件与类的关系**:一个.java源文件可以包含多个类,但只能有一个公开的(public)类,其他非公开类没有限制。 2. **goto关键字**:Java中没有goto关键字,它是一种流程控制语句,在Java中被摒弃。 3. **逻辑运算符&和&&**:&是逻辑与运算符,无论两侧表达式是否为真都会进行计算;&&是短路与运算符,如果左侧表达式为假,右侧将不再执行。 4. **跳出多重嵌套循环**:可以使用`break`语句配合标签来跳出特定层的循环,如`break label;`。 5. **switch语句的使用**:switch不能直接作用于byte、long和String,但在Java 7及以上版本,可以通过枚举或自动装箱来间接使用,对于String,从Java 7开始支持。 6. **short变量赋值**:直接赋值`s1=s1+1`会导致编译错误,因为操作结果会自动提升为int类型,需强制转换回short。而`s1+=1`会自动处理类型转换。 7. **char存储中文**:char类型可以存储单个Unicode字符,包括中文,因为它占用两个字节。 8. **效率计算2乘8**:最有效率的方式是直接使用`2 << 3`,这是位左移操作,相当于乘以2的3次方。 9. **设计大数计算器**:设计一个大数计算器要考虑字符串表示的大数相加、相减、相乘等操作,以及溢出处理。 10. **final关键字**:final修饰的变量其引用一旦初始化后不可变,对于基本类型,值不可变;对于引用类型,对象不可变,但对象内部的状态可能可变。 11. **"=="与equals方法**:"=="比较的是对象的引用,而equals方法比较的是对象的内容,对于非null对象,覆盖了equals的类会比较对象的属性。 12. **静态变量与实例变量**:静态变量属于类,所有类的实例共享同一份静态变量;实例变量属于每个对象,每个对象有自己的副本。 13. **静态方法与非静态方法**:不能从静态方法内部直接调用非静态方法,因为非静态方法依赖于特定的对象实例。 14. **Integer与int**:Integer是int的包装类,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**:构造器不能被重写,但可以被重载。 20. **接口与抽象类**:接口可以继承接口,抽象类可以实现接口,但不能继承具体类。静态main方法在抽象类中是可以有的,但不作为构造器。 21. **clone方法**:在实现clone方法时,通常会调用`super.clone()`以确保正确复制对象。 22. **面向对象特征**:封装、继承、多态。 23. **Java多态机制**:通过方法的重写和向上转型实现,使得父类型的引用可以指向子类型对象,调用子类的方法。 24. **abstractclass和interface的区别**:抽象类可以有构造方法,可以包含非抽象方法,可以有实例变量,最多只能继承一个;接口不能有构造方法,只能包含抽象方法和常量,可以多继承。 25. **abstract、static、native、synchronized的组合**:这些关键字不能同时用于一个方法,因为它们代表不同的特性。 26. **内部类**:内部类分为静态嵌套类(StaticNestedClass)和非静态内部类(InnerClass),静态嵌套类与外部类之间无隐含引用,而内部类则持有对外部类的引用。 这些知识点构成了Java面试的基础,深入理解和掌握它们对准备Java面试至关重要。