Java面试题库大全:基础知识篇

需积分: 33 0 下载量 43 浏览量 更新于2024-07-21 收藏 2.14MB PDF 举报
Java 面试宝典 Java 是一门广泛应用于软件开发的编程语言,面试中的问题涵盖了 Java 的各种知识点,本文将对 Java 面试中的常见问题进行总结和解释。 **Java 基础知识** 1. 一个 Java 源文件中可以包括多个类(不是内部类),但只有一个 public 类,且文件名必须与 public 类同名。 2. Java 不支持 goto 语句, goto 语句是 C 语言中的跳转语句,但 Java 中可以使用 break、continue 和 return 语句来控制程序流程。 3. & 和 && 的区别:& 是按位与操作符,&& 是逻辑与操作符,&& 具有短路功能,即如果第一个条件为 false,则不再执行第二个条件。 4. 在 Java 中,可以使用 break 语句或 return 语句来跳出当前的多重嵌套循环。 5. switch 语句可以作用于 byte、short、char 和 int 类型,但不能作用于 long 和 String 类型。 6. shorts1=1;s1=s1+1; 的错误是:short 类型的变量不能隐式转换为 int 类型,需要强制类型转换;s1+=1; 是正确的,因为 += 运算符会自动进行类型转换。 7. char 型变量可以存储一个中文汉字,因为 char 型变量可以存储 Unicode 编码的字符。 8. 用最有效率的方法算出 2 乘以 8 等于 16,可以使用位移操作符 <<,即 2 << 3。 9. 设计一个一百亿的计算器需要使用 BigInteger 类或自定义数据结构来存储大整数。 **Java 变量和数据类型** 10. 使用 final 关键字修饰一个变量时,引用不能变,但引用的对象可以变。 11. "==" 和 equals 方法的区别:"==" 是比较引用是否相同,而 equals 方法是比较对象的值是否相同。 12. 静态变量和实例变量的区别:静态变量属于类,实例变量属于对象。 **Java 方法** 13. 是否可以从一个 static 方法内部发出对非 static 方法的调用?答案是不能,因为静态方法属于类,实例方法属于对象。 14. Integer 和 int 的区别:Integer 是对象,int 是基本类型。 15. Math.round(11.5) 等於 11,Math.round(-11.5) 等於 -11。 16. 下面的代码有什么不妥之处?答案是:需要检查空指针异常。 17. 作用域 public、private、protected 以及不写时的区别:public 是公共的、私有的 protected 是保护的、不写时是默认的包权限。 **Java 面向对象** 18. Overload 和 Override 的区别:Overload 是重载,Override 是重写。Overloaded 的方法可以改变返回值的类型。 19. 构造器 Constructor 是否可被 override?答案是:不能,因为构造器属于类。 20. 接口是否可继承接口?答案是:可以。抽象类是否可实现(implements)接口?答案是:可以。抽象类是否可继承具体类(concrete class)?答案是:可以。抽象类中是否可以有静态的 main 方法?答案是:不能。 21. 写 clone() 方法时,通常都有一行代码,即 super.clone()。 22. 面向对象的特征有哪些方面?答案是:封装、继承、多态。 23. Java 中实现多态的机制是什么?答案是:通过方法重写和方法重载。 24. abstract class 和 interface 有什么区别?答案是:抽象类可以包含抽象方法和非抽象方法,接口只能包含抽象方法。 **Java 高级知识** 25. abstract 的 method 是否可同时是 static?答案是:不能。是否可同时是 native?答案是:不能。是否可同时是 synchronized?答案是:不能。 26. 什么是内部类?答案是:内部类是定义在另一个类中的类。StaticNestedClass 和 InnerClass 的不同:StaticNestedClass 是静态内部类,InnerClass 是实例内部类。 27. 内部类可以引用它的包含类的成员吗?答案是:可以,但需要注意访问权限。 28. 等等。