"Java面试宝典2012"
这篇资料是针对Java面试准备的一份指南,涵盖了基础到进阶的Java知识,旨在帮助没有Java工作经验的求职者快速掌握面试所需的技能。以下是一些关键知识点的详细解释:
1. Java源文件与类:一个.java文件可以包含多个类,但只能有一个公开的类(public class),其他类可以是非公开的(如private或无访问修饰符)。
2. goto关键字:Java中没有goto关键字,它遵循结构化编程原则,鼓励使用控制流语句如if、while、for和switch来控制程序流程。
3. & 和 && 区别:& 是位运算符,用于按位与操作;&& 是逻辑运算符,用于短路逻辑与操作,如果第一个操作数为假,则不会计算第二个操作数。
4. 跳出多重嵌套循环:使用break语句可以跳出当前循环,但无法直接跳出多重嵌套循环,需配合标签(label)使用。
5. switch语句:switch不能直接作用于byte类型,但在Java 7及以上版本可以用byte、short、char类型与枚举类型进行switch。对long和String的支持在Java 7之后添加。
6. short变量加法:直接使用“+”运算符会导致自动提升为int类型,所以s1=s1+1会报编译错误。而s1+=1会自动处理类型转换,不会报错。
7. char存储中文:一个char变量可以存储一个Unicode字符,包括中文汉字。
8. 效率计算2乘以8:最简单的方式是直接赋值:int result = 2 * 8。
9. 一百亿计算器设计:要考虑高精度计算,可能需要用到BigInteger类。
10. final修饰变量:final修饰的变量其引用一旦赋值后不可改变,但如果是对象,对象的内容可以改变,除非对象本身也是final。
11. ==与equals区别:==比较两个变量的引用是否相同,而equals方法(默认行为比较引用)在对象之间比较内容是否相等。
12. 静态变量与实例变量:静态变量属于类,所有类的实例共享;实例变量属于每个对象的实例,每创建一个新对象,都会有一份新的实例变量。
13. static方法与非static方法:不能在static方法内直接调用非static方法,因为非static方法依赖于对象实例。
14. Integer与int:Integer是int的包装类,它们在内存中的处理方式不同,Integer是对象,int是基本类型。
15. Math.round方法:Math.round(11.5)返回12,Math.round(-11.5)返回-11。
16. 代码不妥之处:未给出具体代码,无法分析。
17. 作用域区别:public可被所有类访问,private仅限于本类,protected允许同包及子类访问,无修饰符的默认为包级私有。
18. Overload与Override:Overload是重载,发生在同一个类中,方法名相同但参数列表不同;Override是重写,发生在子类中,方法名、参数列表和返回类型都必须与父类一致。
19. 构造器不能被override,但可以重载。
20. 接口与继承关系:接口可以继承接口,抽象类可以实现接口,抽象类不能继承具体类,但可以继承其他抽象类。静态main方法不属于对象实例,不能放在抽象类中。
21. clone()方法:通常会包含`super.clone()`来实现对象克隆。
22. 面向对象特征:封装、继承、多态。
23. 多态机制:Java通过方法重写(Override)和向上转型(Upcasting)实现多态。
24. abstract class与interface区别:抽象类可以有方法实现,可以有构造器,可以有非抽象方法;接口只有抽象方法和常量,不能有构造器,实现接口的类必须实现接口的所有方法。
25. abstract与static、native、synchronized:抽象方法不能是static,因为静态方法与类相关联,而不是与实例相关联;也不能是native,因为native方法是用C/C++实现的;同样不能是synchronized,因为抽象方法没有具体实现。
26. 内部类:内部类是定义在另一个类内部的类,包括成员内部类、局部内部类、匿名内部类。StaticNestedClass是静态内部类,不持有对外部类的隐式引用,而InnerClass是成员内部类,可以访问外部类的静态和非静态成员。
27. 内部类与外部类的引用:内部类可以直接访问外部类的所有成员,包括私有成员,但外部类访问内部类需要通过实例。
28. 匿名内部类:没有名字的内部类,通常用于快速实现一个接口或父类的简短实例。
以上只是部分Java面试宝典2012中涉及的知识点,实际面试中可能还会涵盖异常处理、集合框架、多线程、IO流、网络编程、设计模式等多个领域。为了全面准备Java面试,应深入理解这些概念,并结合实践进行巩固。