Java问题宝典2012版是一本专门针对Java初学者和求职者编写的指南,旨在帮助他们掌握Java编程的基础知识和面试技巧,以便在求职过程中顺利通过笔试和面试。本书涵盖了广泛的Java核心概念和实践应用,旨在提升读者的理解和实战能力。
1. Java基础部分:
- 源文件中的类组织:一个.java文件可以包含多个类,但前提是这些类都是公共类(非内部类),并且每个类都有自己的public或默认访问权限。
- 关键字"goto"的使用:Java摒弃了C/C++中的goto语句,以避免控制流的复杂性和可能导致的代码难以理解和维护的问题。
- "&"与"&&"的区别:"&"是位运算符,用于按位与,而"&&"是逻辑与,用于条件判断。
- 控制结构:Java提供了多种跳出循环的方法,如break用于跳出当前循环,但不能跳过嵌套循环;switch语句适用于基本数据类型如byte,但不适用于long和String,因为它们不适合按值匹配。
2. 类型和运算:
- shorts类型的错误:第一种写法有类型转换错误,因为shorts1是原始类型,不能直接进行自增操作;第二种写法正确。
- char型存储:Java中char类型只能存储单个字符,包括ASCII码,所以不能直接存储中文汉字。
- 效率计算:最有效的方法是直接计算,如2 * 8 = 16,无需特殊函数。
3. 高级特性:
- final关键字:修饰变量表示值不可变,如果是引用,则是指引用的对象不可变。
- "=="与equals的区别:前者比较的是对象的地址,后者比较的是对象的内容,对于String来说,除非两个对象指向同一内存区域,否则"=="会失败。
- 静态变量与实例变量:静态变量属于类,全局可见,实例变量与对象关联;静态方法不能访问实例变量,反之则可以。
- 方法重载和重写:重载是同名方法的不同参数列表,重写是子类覆盖父类方法,返回类型不能作为重载区分点。
4. 类和对象:
- Integer与int:Integer是包装类,自动装箱和拆箱,提供处理整数溢出的方法;int是基本类型。
- Math.round方法:返回指定浮点数的最接近整数,如11.5向下取整为11,-11.5向上取整为-11。
- 作用域和访问控制:public是最开放的,private最私有,protected允许同一包内和子类访问,不写默认为package-private。
5. 面向对象概念:
- 面向对象特性:封装、继承、多态和抽象(还有接口、抽象类)。
- 多态机制:通过继承和接口实现,使得子类可以动态地“成为”父类或接口,执行相应的方法。
- 抽象类和接口:抽象类可以包含实现方法,接口仅定义方法签名,不能有实例,abstract method不能同时声明为static、native或synchronized。
6. 内部类:
- 内部类分为静态嵌套类和非静态嵌套类(InnerClass和StaticNestedClass),前者与包含类无关,后者能访问其包含类的成员。
- 匿名内部类:没有名字,常用于简化回调和事件监听。
总结:Java问题宝典2012版是一本实用的工具书,它不仅涵盖Java语言基础,还包括了面试常见问题、高级特性和面向对象设计原则。通过学习这本书,读者能够系统地巩固Java知识,提高编程技能,并为求职过程做好充分准备。