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

4星 · 超过85%的资源 需积分: 5 14 下载量 70 浏览量 更新于2024-07-30 收藏 783KB DOC 举报
"Java面试宝典,包含了Java程序员在找工作时可能会遇到的各类问题,主要涉及Java基础、语法特性、面向对象、多态、接口、内部类等方面。" 本文将详细解析这些Java面试中常见的问题及其背后的原理,帮助Java程序员准备面试。 1. Java源文件可以包含多个类,但只能有一个公开类(public class),其他类可以是非公开的(非public)。 2. Java没有goto语句,它鼓励使用结构化的控制流。 3. &是位运算符,&&是逻辑运算符。&始终会计算两边的操作数,而&&仅在必要时计算第二个操作数(短路逻辑)。 4. 使用`break`语句可以从任何循环中跳出,包括多重嵌套循环。 5. switch语句不能直接作用于byte,long或String,但在Java 7及以上版本,switch支持了字符串(String)。 6. short变量与int变量相加时,需要强制类型转换,否则会出现编译错误。s1+=1会自动提升类型,不会出错。 7. char变量可以存储单个Unicode字符,包括中文汉字。 8. 计算2乘以8最有效率的方式是使用位移操作:`2 << 3`。 9. 设计一个亿级计算器要考虑数值的精度和存储方式,可能需要使用大数库如BigInteger。 10. final修饰变量时,如果是引用类型,意味着引用不可变;如果是对象,意味着对象的引用不可变,但对象的内部状态可以改变。 11. "=="比较的是两个变量的引用,equals()比较的是两个对象的内容。 12. 静态变量属于类,实例变量属于对象。静态变量在类加载时初始化,实例变量在对象创建时初始化。 13. 不能在static方法内直接调用非static方法,因为非static方法依赖于对象实例。 14. Integer是int的包装类,Integer对象和int基本类型之间有自动装箱拆箱操作。Integer与int在内存管理和性能上有差异。 15. Math.round(x)返回最接近x的整数,所以Math.round(11.5)等于12,Math.round(-11.5)等于-11。 16. 未给出具体代码,一般检查可能的问题包括:未初始化的变量、语法错误、类型不匹配等。 17. public、private、protected和默认访问修饰符分别代表全局、私有、包内可见和默认访问权限。 18. Overload(重载)是方法名相同但参数列表不同的方法,返回类型不能作为重载的依据。Override(重写)是子类继承父类方法并修改实现。 19. 构造器不能被override,但可以重载。 20. 接口可以继承接口,抽象类可以实现接口,但不能继承具体类。抽象类中的main方法可以是静态的,但不影响程序执行入口。 21. 实现clone()方法时,通常会包含`super.clone()`调用以创建对象副本。 22. 面向对象的特征包括封装、继承、多态。 23. Java通过方法的动态绑定和接口实现来实现多态。 24. abstract class是抽象类,可以有方法实现,而interface完全是抽象的,所有方法默认都是public abstract。接口主要用于定义规范,抽象类用于提供部分实现。 25. abstract method不能同时是static、native或synchronized,因为它们的性质冲突。 26. 内部类是定义在另一个类内部的类,StaticNestedClass是静态嵌套类,不持有外部类的引用,而InnerClass是普通内部类,可以访问外部类的私有成员。内部类可以引用外部类的成员,但静态内部类不能直接访问外部类的非静态成员。 27. 匿名内部类是没有名称的内部类,通常用于快速实现接口或抽象类的一个简单实例。 以上是对Java面试常见问题的解析,涵盖的知识点广泛,涵盖了语言基础、类与对象、接口、多态等多个方面,是Java程序员面试前的重要复习资料。