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

需积分: 33 6 下载量 71 浏览量 更新于2024-07-22 收藏 2.14MB PDF 举报
"java面试宝典" Java面试涵盖了广泛的知识点,以下是对这些面试题目的详细解释: 1. Java源文件可以包含多个类,但只能有一个公开的(public)类,且该类名需与文件名一致。其他类可以是私有的(private)或其他访问修饰符。 2. Java中没有goto语句,它被设计为避免无尽的跳转和复杂的控制流。 3. "&" 是位运算符,而"&&"是逻辑运算符。位运算符会计算两边的操作数,而逻辑运算符在左操作数为假时不会计算右操作数。 4. 跳出多重嵌套循环,可以使用`break`语句,配合标签来指定跳出特定循环:`label: for {...} while {...} break label;` 5. switch语句不能作用在byte上,但在Java 7及以后版本可以作用于char和枚举类型。不能作用在long和String上,但Java 7开始支持字符串(String)的switch。 6. 对于short变量,`s1=s1+1`会导致自动提升到int类型,赋值回short时需要强制转换。而`s1+=1`则会自动处理类型转换。 7. char类型变量可以存储一个中文汉字,因为UTF-16编码中一个字符可能由一个或两个char组成。 8. 计算2乘以8最有效率的方法是直接使用`2 * 8`,因为这是编译器优化过的。 9. 设计一个一百亿的计算器要考虑大数运算,可以使用BigInteger类来处理。 10. 使用final修饰变量,意味着引用一旦赋值就不能改变,但引用的对象内容可以改变。如果对象本身也是final的,则对象及其内容都不能改变。 11. "=="比较的是对象的引用,而equals方法比较的是对象的内容。基本类型比较时,"=="即等于equals。 12. 静态变量属于类,而实例变量属于对象。静态变量在类加载时初始化,实例变量在对象创建时初始化。 13. 不能从static方法内部直接调用非static方法,因为static方法没有对象上下文。 14. Integer是int的封装类,涉及到对象创建和装箱拆箱。int是原始类型,效率更高。 15. Math.round(11.5)等于12,Math.round(-11.5)等于-11,round方法四舍五入。 16. 代码不妥之处可能是指未定义的变量或语法错误,具体要看代码内容。 17. public表示全局可访问,private表示仅在类内部访问,protected表示在包内及子类中访问,无修饰符默认为包访问。 18. Overload(重载)是方法名相同但参数列表不同,返回值类型不影响重载。Override(重写)是子类覆盖父类方法,要求方法名、参数列表完全一致,返回值和访问修饰符不能更严格。 19. 构造器不能被override,但可以重载。 20. 接口可以继承接口,抽象类可以实现接口,但不能继承具体类。抽象类中的静态main方法无法作为程序入口。 21. 写clone()方法时,通常会包含`super.clone()`以创建对象副本。 22. 面向对象的特征包括封装、继承、多态。 23. Java通过方法重写(Override)和抽象类/接口实现多态。 24. abstract class可以包含抽象方法和非抽象方法,实现部分功能。interface只能声明抽象方法,强制实现所有接口方法。 25. abstract方法不能是static、native或synchronized,因为它们的特性与抽象方法相冲突。 26. 内部类是定义在另一个类内部的类,StaticNestedClass是静态嵌套类,可以直接通过外部类访问,不需要外部类实例。InnerClass是非静态内部类,需要外部类实例才能创建。 27. 内部类可以引用其包含类的所有成员,包括私有成员,但静态内部类不能直接访问非静态成员,需要通过外部类实例。 28. A类的匿名内部类可以访问A类的所有成员,包括私有成员,但不能访问B类的非静态成员,除非B类是A类的友元类或A类是B类的友元类。 以上内容详细解答了Java面试宝典中的一部分问题,涵盖了Java的基础语法、面向对象、异常处理、集合框架、多线程、I/O流、反射等多个方面的知识。这些面试问题旨在考察候选人的Java编程基础和理解深度。