Java面试深度解析:基础篇
需积分: 3 120 浏览量
更新于2024-07-25
收藏 728KB DOC 举报
"Java面试宝典2012版包含了丰富的Java基础知识题目,涵盖了类与文件结构、关键字使用、运算符、循环控制、方法重载与覆盖、访问控制、多态性、抽象类与接口、内部类等多个核心概念。"
本文将详细解答这些面试题目中的关键知识点:
1. 一个".java"源文件可以包含多个类,但只能有一个公共类(public class),且文件名必须与这个公共类的名称相同。其他非公共类可以在同一文件中定义,但不会作为主类来执行。
2. Java中没有`goto`关键字。这与C/C++不同,Java推崇更安全、结构化的编程方式。
3. `&`和`&&`的主要区别在于短路逻辑。`&&`只有在左侧表达式为真时才会计算右侧,而`&`则总是计算两边的表达式。
4. 跳出多重嵌套循环,可以使用`break`配合标签(label)来实现:`label: for(...) { ... break label; }`。
5. `switch`语句可以作用于`byte`, `char`, `short`, `int`以及枚举类型,但在Java 7之后,也可以用于`String`类型。
6. `short s1 = 1; s1 = s1 + 1;`会因类型提升导致编译错误,因为`1`是`int`类型,加法结果也是`int`。而`s1 += 1;`会自动转换回`short`类型。
7. `char`型变量可以存储单个Unicode字符,包括中文汉字,因为它占据两个字节。
8. 计算2乘以8最有效率的方法是直接使用`*`运算符:`2 * 8`。
9. 设计一个能处理一百亿的计算器,需考虑大整数运算,可能涉及BigInteger类。
10. `final`修饰的变量,其引用一旦初始化后不可改变,但如果是对象,对象的内容仍可改变,除非对象本身也是`final`的。
11. `==`比较的是对象的引用,而`equals()`方法通常用于比较对象的内容。对于基本类型,`==`直接比较数值;对于对象,`==`比较内存地址,`equals()`比较内容(如果未重写,默认也是比较地址)。
12. 静态变量属于类,与类的实例无关,所有实例共享;实例变量属于特定的实例,每个实例有自己的副本。
13. 不能从`static`方法内部直接调用非`static`方法,因为`static`方法不依赖于实例对象,而非`static`方法依赖实例对象。
14. `Integer`是`int`的包装类,两者之间可以通过自动装箱和拆箱进行转换。`Integer`提供了额外的功能,如缓存小范围的整数对象。
15. `Math.round(11.5)`等于12,`Math.round(-11.5)`等于-11。`round`方法四舍五入到最接近的整数。
16. 对于代码的问题,未提供具体代码,无法分析。
17. `public`表示全局可访问,`private`表示仅在本类内访问,`protected`表示在本类及子类和同一包内访问,无修饰词则默认为包访问。
18. 方法重载(Overload)允许同一类中有多个同名但参数列表不同的方法,返回类型不影响重载。方法覆盖(Override)发生在子类中,要求子类方法与父类方法同名同参数,并且访问权限不得更低。
19. 构造器(Constructor)不能被覆盖(Override),但可以被重载(Overload)。
20. 接口可以继承接口,抽象类可以实现接口,抽象类也可以继承具体类。抽象类中可以有静态的`main`方法,但不能作为程序的入口点。
21. 写`clone()`方法时,通常会包含一行`super.clone()`,以调用父类的`clone()`方法获取浅拷贝。
22. 面向对象的特征主要包括封装、继承、多态和抽象。
23. Java通过接口和方法的重写实现多态,即一个接口或父类引用指向不同实现类的对象,调用相同的接口方法时,表现出不同的行为。
24. 抽象类可以包含抽象方法和非抽象方法,而接口只有抽象方法,没有实现。抽象类可以有属性,接口不能有。类可以继承一个抽象类并实现多个接口。
25. 抽象方法不能同时是`static`, `native`或`synchronized`,因为它们与抽象方法的定义不兼容。
26. 内部类是定义在另一个类内部的类,分为静态嵌套类(Static Nested Class)和非静态嵌套类(Inner Class)。静态嵌套类不持有外部类的引用,可以独立存在;非静态嵌套类拥有对外部类的隐含引用,需要外部类实例才能创建。
27. 内部类可以引用其包含类的所有成员,包括私有成员,但访问非静态成员需要通过外部类的实例。
28. 匿名内部类可以直接实现接口或继承类,但没有类名,通常用在需要一次性使用的场景。
29. `super.getClass()`返回对象的实际类型,对于匿名内部类,它会返回内部类的Class对象。
30. `String`是对象,不是一个基本数据类型。基本数据类型包括`byte`, `short`, `int`, `long`, `float`, `double`, `char`, `boolean`。
以上内容详细解释了Java面试中常见的基础问题,有助于深入理解Java语言的核心概念。
点击了解资源详情
120 浏览量
点击了解资源详情
2012-08-20 上传
2011-01-23 上传
109 浏览量
639 浏览量
2014-04-05 上传
2015-05-10 上传
iTry
- 粉丝: 23
- 资源: 3
最新资源
- 适合做手机展示的点击图片放大效果
- opencv-3.4.3.rar
- P-SCAN接口EMC设计标准电路与技术资料-综合文档
- Programacion-III-Proyecto-Final
- sahmieyab:Sahmieyab
- flutter_boost:FlutterBoost是一个Flutter插件,可以以最少的工作量将Flutter混合集成到您现有的本机应用程序中
- WAH壁挂式控制箱产品电子样本.zip
- 图片墙桌面效果
- 通讯录源码java-protobuf-AddressBook:GoogleProtobuf和Java。来源:https://github.co
- laravel-shop:Laravel商店套餐
- 基卡德
- OpenIoTHub::sparkling_heart:一个免费的物联网(IoT)平台和私有云。 [一个免费的物联网和私有云平台,支持内网穿透]
- Ajax-ljq_weixin.zip
- jquery实现图片放大效果
- 精通direct3d图形及动画程序设计源代码下载
- JRoll:平滑滚动移动网络