"Java 2012面试题集锦" 这份资料包含了2012年Java面试中常见的问题,涵盖了基础语法、逻辑控制、数据类型、类与对象、多态性、接口、抽象类等多个方面的知识。以下是对其中部分问题的详细解答: 1. 一个".java"源文件中可以包含多个类,但只能有一个公开类(public class),其他类可以是非公开的或内部类。 2. Java中没有`goto`语句,它已经被摒弃,因为其不利于程序的可读性和维护。 3. `&`是位运算符,用于逐位比较两个数值;`&&`是逻辑与运算符,只有当两边的条件都为真时,结果才为真。`&&`还具有短路特性,如果左边的条件为假,右边的表达式将不会被执行。 4. 要跳出多重嵌套循环,可以使用标签(label)配合`break`语句,例如:`outer: for(...){ inner: for(...){...; if(condition) break outer; ...}}`。 5. `switch`语句不能作用于`byte`,但自Java 7起可以作用于`char`、`short`、`int`以及枚举类型。在Java 14后,`switch`也可以作用于`String`。 6. 对于`short s1=1; s1=s1+1;`,这会引发编译错误,因为`s1+1`的结果是`int`类型,需要显式转换。而`s1+=1`则会自动提升`short`到`int`,然后进行加法操作,结果再赋回给`short`。 7. `char`型变量可以存储一个中文汉字,因为每个`char`占16位,可以表示Unicode编码,包括汉字。 8. 计算2乘以8的最有效率方式是直接写`2 * 8`,因为这是编译器优化后的基础数学运算。 9. 设计一个一百亿的计算器要考虑大数运算、精度问题以及可能的内存管理。 10. `final`关键字修饰的变量,其引用一旦赋值后不可改变,但对于引用的对象,如果是对象引用,对象的内容可以变,如果是基本类型,则值不可变。 11. `"=="`比较的是两个变量的值是否相等,而`equals()`方法比较的是对象的内容是否相等。对于基本类型,`==`等同于`equals()`,但对于对象,两者可能不同。 12. 静态变量属于类,随着类的加载而创建,所有类的实例共享同一个静态变量。实例变量属于对象,每个对象有自己的独立副本。 13. 不能从`static`方法内部直接调用非`static`方法,因为非`static`方法依赖于对象实例。 14. `Integer`是`int`的封装类,`Integer`对象包含一个`int`值,它们之间可以自动装箱拆箱。但`Integer`对象的比较默认使用`equals()`,而`int`使用`==`。 15. `Math.round(11.5)`等于12,`Math.round(-11.5)`等于-11,`round`方法四舍五入到最接近的整数。 16. 如果代码中存在`if(a=b) {...}`,可能存在潜在的赋值与比较混淆,应该使用`if(a==b) {...}`。 17. `public`、`private`、`protected`以及默认访问修饰符分别表示公共、私有、受保护和包内可见的访问级别。`public`可以在任何地方访问,`private`仅在本类内可见,`protected`在本类及子类和同一包内可见,不写则为包内可见。 18. `Overload`是重载,指一个类中可以有多个同名方法,但参数列表不同。重载方法可以改变返回类型,只要参数列表不同即可。`Override`是重写,用于子类覆盖父类的同名方法,必须保持方法签名一致。 19. 构造器不能被`override`,因为构造器不是方法,而是实例化过程的一部分。 20. 接口可以继承接口。抽象类可以实现接口,但不能继承具体类。抽象类中可以有静态的`main`方法,但静态方法不属于任何实例,因此无法直接访问非静态成员。 21. `clone()`方法通常会包含一行`super.clone()`,用于复制当前对象。 22. 面向对象的特征包括封装、继承、多态。 23. Java通过方法重写(Override)和接口实现(Implements)来实现多态。 24. `abstract class`可以包含抽象方法和非抽象方法,可以有构造器,而`interface`只能包含抽象方法和常量,不能有构造器或实现方法。 25. `abstract`方法不能同时是`static`,不能同时是`native`,也不能同时是`synchronized`,因为这些修饰符与抽象方法的性质冲突。 26. 内部类是定义在一个类内部的类,分为静态内部类(Static Nested Class)和非静态内部类(Inner Class)。静态内部类不依赖于外部类的实例,可以直接创建,而普通内部类需要先创建外部类的实例。 以上只是部分问题的解答,完整的学习和准备还需要深入理解每个概念,并结合实际编程经验。
剩余136页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Hadoop生态系统与MapReduce详解
- MDS系列三相整流桥模块技术规格与特性
- MFC编程:指针与句柄获取全面解析
- LM06:多模4G高速数据模块,支持GSM至TD-LTE
- 使用Gradle与Nexus构建私有仓库
- JAVA编程规范指南:命名规则与文件样式
- EMC VNX5500 存储系统日常维护指南
- 大数据驱动的互联网用户体验深度管理策略
- 改进型Booth算法:32位浮点阵列乘法器的高速设计与算法比较
- H3CNE网络认证重点知识整理
- Linux环境下MongoDB的详细安装教程
- 压缩文法的等价变换与多余规则删除
- BRMS入门指南:JBOSS安装与基础操作详解
- Win7环境下Android开发环境配置全攻略
- SHT10 C语言程序与LCD1602显示实例及精度校准
- 反垃圾邮件技术:现状与前景