Java面试必备知识:基础篇

需积分: 0 0 下载量 23 浏览量 更新于2024-07-31 收藏 672KB DOC 举报
"Java面试宝典2010版,涵盖了Java编程的基础到高级知识,包括语法特性、类和对象、内存管理、多线程、异常处理、接口与抽象类等多个方面,旨在帮助求职者准备Java相关的面试。文档中列举了一系列常见的面试问题,如Java中的关键字、数据类型、运算符、方法重载与覆盖、类和对象的设计原则等,并对每个问题进行了深入的探讨。" 1. Java源文件可以包含多个类,但只能有一个公开的类(public class),其他类可以是非公开的(默认、private或protected)。 2. Java中没有goto关键字,它遵循结构化编程的原则,鼓励使用控制流语句如if、while、for和switch。 3. &是按位与运算符,&&是逻辑与运算符。&在任何时候都会计算两边的操作数,而&&会短路,如果左边操作数为假,右边的操作数就不会计算。 4. 在Java中,可以使用break语句跳出多重嵌套循环。 5. switch语句可以作用在byte、short、char和枚举类型上,但在Java 7及以后版本中,也可以作用于字符串(String)。 6. shorts1=1;s1=s1+1; 这会导致编译错误,因为s1+1的结果是int类型,需要显式转换回short。s1+=1; 则会被编译器自动处理,不会产生错误。 7. char类型可以存储一个中文汉字,因为Java的char类型是16位的Unicode编码,足以表示大部分汉字。 8. 计算2乘以8最有效率的方式是直接赋值:int result = 2 * 8。 9. 设计一个一百亿的计算器要考虑大数运算,可以使用BigInteger类来处理。 10. 使用final关键字修饰变量,意味着引用一旦赋值后不可改变,对于对象来说,这意味着引用的对象不能变,但对象的属性可以变。 11. "=="比较的是对象的引用,而equals()比较的是对象的内容。 12. 静态变量属于类,而实例变量属于类的实例。静态变量可以被类的所有实例共享,实例变量在每个实例中都有独立的副本。 13. 不能从static方法内部直接调用非static方法,因为非static方法依赖于类的实例。 14. Integer是int的封装类,int是原始类型。Integer对象在某些情况下需要自动装箱和拆箱,而int则不需要。 15. 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通过方法重写(Override)和方法重载(Overload)实现多态。 24. abstract class和interface都是抽象的,但abstract class可以有方法实现,可以有非抽象方法,可以有构造器;interface完全抽象,只声明方法,不能有方法实现。 25. abstract method不能同时是static,不能同时是native,不能同时是synchronized。 26. 内部类是定义在另一个类内部的类,分为静态内部类(StaticNestedClass)和非静态内部类(InnerClass)。静态内部类不依赖于外部类的实例,而非静态内部类需要外部类的实例才能创建。 27. 内部类可以引用包含类的成员,包括私有成员,但静态内部类不能直接访问外部类的非静态成员。 28. 匿名内部类是在没有声明类名的情况下创建的类,通常用于快速实现接口或抽象类的方法。 这份Java面试宝典提供了丰富的面试问题,涵盖了Java语言的核心概念和技术,对于准备面试的开发者来说具有很高的参考价值。