Java面试必备知识点:基础篇

需积分: 30 9 下载量 68 浏览量 更新于2024-07-19 收藏 497KB DOC 举报
"Java面试宝典2017最新.doc" 这份Java面试宝典涵盖了Java编程语言的基础到高级知识,适合准备Java相关职位面试的人员参考。以下是一些关键知识点的详细解释: 1. **Java源文件与类的关系**:一个.java源文件可以包含多个类,但只能有一个公开类(public class),其他类可以是非公开类。 2. **goto关键字**:Java中没有goto关键字,它鼓励使用结构化的控制流。 3. **&和&&的区别**:&是逻辑与运算符,无论两侧表达式是否为真都会进行计算;&&也是逻辑与运算符,但只有当左侧表达式为真时才会计算右侧表达式。 4. **跳出多重嵌套循环**:使用`break;`可以跳出最内层循环,`break label;`可以跳出指定的循环。`return`语句不仅可以跳出循环,还能结束整个方法。 5. **switch语句**:switch不支持byte、long和String类型,但在Java 7之后,switch可以用于字符串(String)。 6. **short类型的变量增加**:`short s1 = 1; s1 = s1 + 1;` 错误,因为加法操作会将short提升为int,需要强制类型转换。而`s1 += 1;`会自动处理类型转换。 7. **char存储中文**:char可以存储单个Unicode字符,因此理论上可以存储中文汉字。 8. **计算2乘以8**:最有效率的方式是直接使用`2 * 8`。 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,但可以有同名的构造器进行方法重载。 20. **接口与抽象类**:接口可以继承接口,抽象类可以实现接口,但不能继承具体类;静态main方法在抽象类中是允许的。 21. **clone方法**:在实现Cloneable接口的类中,通常需要重写Object类的clone方法,并调用`super.clone()`。 22. **面向对象的特征**:封装、继承、多态。 23. **Java多态机制**:通过方法重写和向上转型实现,允许使用父类引用指向子类对象。 24. **abstractclass与interface的区别**:抽象类可以有方法实现,可以有非抽象方法,可以有字段;接口只有抽象方法和常量,不能有非静态字段和实现。 25. **abstract、static、native、synchronized的组合**:abstract不能与static、native和synchronized一起使用。 26. **内部类**:内部类是定义在另一个类内部的类,分为成员内部类、局部内部类、匿名内部类和静态嵌套类。StaticNestedClass是静态嵌套类,与包含类之间没有隐式引用,而InnerClass是普通内部类,可以直接访问包含类的成员。 27. **内部类与包含类的交互**:内部类可以直接访问包含类的所有成员,包括私有成员,但包含类访问内部类需通过实例。 28. **匿名内部类**:没有名字的内部类,通常用于快速创建一次性使用的类,可以用来实现接口或继承已有类。 这些面试问题覆盖了Java语法、内存管理、面向对象特性、异常处理、集合框架、多线程、IO流等多个方面,是准备Java面试的重要参考资料。