Java面试必备知识:基础篇

需积分: 0 0 下载量 63 浏览量 更新于2024-07-23 收藏 1.12MB PDF 举报
"Java面试宝典2013_PDF版" 这是一份汇集了大量Java面试题的资料,旨在帮助求职者准备Java相关的面试,涵盖了许多基础到高级的Java编程概念。 1. Java源文件可以包含多个类,但只能有一个公开的(public)类,其他非公开类没有数量限制。 2. Java中没有goto语句,它在Java中不被支持。 3. &是位运算符,表示按位与,&&是逻辑运算符,表示逻辑与。在布尔表达式中,&&具有短路特性,如果左侧表达式为假,右侧不会执行。 4. 跳出多重嵌套循环,可以使用`break`语句配合标签(label)来实现。 5. switch语句可以作用在byte、char、short和int类型上,Java 7以后还可以作用于枚举类型。但不能作用于long或String,尽管Java 7后String可以用于switch,但long不可以。 6. shorts1=1;s1=s1+1; 这里的错误在于short和int之间的类型转换,需要强制类型转换。s1+=1; 这里会自动进行类型提升,所以是正确的。 7. char类型可以存储单个Unicode字符,包括中文汉字。 8. 计算2乘以8最有效率的方式是直接写`2 * 8`。 9. 设计一个能处理一百亿计算的计算器,需要考虑数值类型的选择,如使用BigInteger,以及效率优化。 10. 使用final修饰变量时,如果是引用类型,意味着引用不可变,即不能指向其他对象;如果是基本类型,意味着值不可变。 11. "=="比较的是值,equals方法比较的是对象的内容。对于非原始类型,equals通常重写自Object类,用于比较对象内容是否相等。 12. 静态变量属于类,而实例变量属于对象。静态变量可以被所有实例共享,实例变量只属于特定对象。 13. 不可以,静态方法内部不能直接调用非静态方法,因为静态方法在类加载时就可以被调用,而非静态方法需要先创建对象。 14. Integer是int的包装类,它们一个是对象,一个是基本类型。Integer对象在一定范围内可以自动装箱拆箱,但性能上不如直接使用int。 15. Math.round(11.5)等于12,Math.round(-11.5)等于-11。 16. 缺少代码,无法分析不妥之处。 17. public表示全局可访问,private表示仅限本类访问,protected表示本类和子类可访问,无修饰词则默认为包内访问。作用域不同,决定了其他类对这些成员的访问权限。 18. Overload是重载,允许方法名相同但参数列表不同;Override是重写,子类可以覆盖父类的同名方法,但返回类型和参数列表必须一致。重载不改变返回值类型。 19. 构造器不能被覆盖,因为构造器不是继承的一部分,而是每个类特有的。 20. 接口可以继承接口,抽象类可以实现接口,但不能继承具体类。抽象类可以有静态的main方法,但不能作为程序入口。 21. 在实现克隆(clone)方法时,通常会有`super.clone()`调用,以实现对象的浅复制。 22. 面向对象的特征包括封装、继承、多态和抽象。 23. Java中的多态通过方法重写(Override)和向上转型实现。 24. abstract class和interface都是抽象类型,但abstract class可以有方法实现,可以有非抽象方法,可以有构造器;interface完全抽象,只能声明方法,不能有方法实现。 25. abstract method不能同时是static,因为static意味着与类相关联,而抽象方法与具体实现有关;不能同时是native,因为native方法需要由C/C++实现;也不能同时是synchronized,因为抽象方法没有实现体。 26. 内部类是定义在另一个类内部的类,StaticNestedClass是静态内部类,不需要外部类实例即可创建,而InnerClass是非静态内部类,需要对外部类有引用。 27. 内部类可以引用其包含类的成员,包括私有成员,但静态内部类不能直接访问非静态成员,需要通过外部类实例访问。 28. AnonymousInnerClass(匿名内部类)可以继承其他类或实现接口,但不能声明为公开(public),也没有类名,常用于简洁地实现回调函数或适配器。 这些面试题覆盖了Java语法、面向对象、异常处理、集合框架、内存管理等多个方面,是准备Java面试的重要参考资料。