Java面试必备知识:基础与进阶
5星 · 超过95%的资源 需积分: 10 152 浏览量
更新于2024-07-19
收藏 2.18MB PDF 举报
"Java面试宝典2017版"
Java面试是评估开发者技能的重要环节,这份2017年的Java面试宝典包含了诸多基础及进阶问题,旨在帮助面试者准备Java相关的技术面试。以下是对其中一些关键知识点的详细解释:
1. 一个`.java`源文件可以包含多个类,但只能有一个公共类(public class),并且公共类的名称必须与文件名相同。
2. Java中没有`goto`关键字,它在Java中是不被支持的,编程时需要使用其他控制流结构如`break`或`continue`来替代。
3. `&`是位运算符,`&&`是逻辑与运算符。`&`在任何时候都会执行两边的操作,而`&&`则会根据左边的操作结果决定是否执行右边的表达式,这是一种短路行为。
4. 要跳出多重嵌套循环,可以使用`break`语句配合标签(label)来实现。
5. `switch`语句不能作用于`byte`,因为`switch`只支持`byte`, `short`, `char`, `int`,以及枚举类型和`String`(Java 7以后)。
6. 对于`short s1 = 1;`,`s1 = s1 + 1;`会丢失精度,因为结果会自动提升为`int`类型。而`s1 += 1;`会自动进行类型转换,保持`short`类型。
7. `char`型变量可以存储一个中文汉字,因为UTF-16编码每个字符占用两个字节。
8. 计算2乘以8的最有效率方式是`2 << 3`,利用位移操作。
9. 设计一个能处理一百亿的计算器要考虑数据类型的选择,通常使用`BigInteger`类来处理大整数计算。
10. `final`关键字修饰变量时,引用不能变,但引用的对象如果可变,其内容可以改变。如果对象不可变(如`String`),则整个对象都不能改变。
11. `==`比较的是对象的引用,而`equals()`方法比较的是对象的内容。对于基本类型,两者意义相同;对于对象,`equals()`通常用于比较内容。
12. 静态变量属于类,实例变量属于对象。静态变量在类加载时初始化,实例变量在对象创建时初始化。
13. 不能从`static`方法内部直接调用非`static`方法,因为`static`方法不依赖于任何对象,而非`static`方法需要对象实例。
14. `Integer`是`int`的包装类,它们之间可以自动装箱和拆箱。`Integer`提供了更多的方法和功能,而`int`是原始类型,效率更高。
15. `Math.round(11.5)`等于12,`Math.round(-11.5)`等于-11,`round()`方法四舍五入到最接近的整数。
16. 代码中的不妥之处可能包括语法错误、逻辑错误或效率低下的情况,具体需查看代码内容。
17. `public`、`private`、`protected`分别代表不同的访问权限,`public`可被所有类访问,`private`只能在本类中访问,`protected`可在同一包或子类中访问,无修饰符的默认为包访问权限。
18. `Overload`是重载,指同一个类中有多个同名但参数列表不同的方法。`Override`是重写,子类继承父类时可以覆盖父类的同名方法。重载不改变返回类型,而重写可以改变方法体,但不能改变返回类型、访问权限和参数列表。
19. 构造器(Constructor)不能被`override`,但可以被重载。
20. 接口可以继承接口,抽象类可以实现接口,但不能继承具体类。抽象类中可以有静态的`main`方法,但不能作为程序的入口点。
21. 写`clone()`方法时,通常会包含`super.clone()`,以实现对象的浅复制。
22. 面向对象的特征包括封装、继承、多态。
23. Java中实现多态主要依靠方法的重写(Override)和向上转型(Upcasting)。
24. `abstract class`可以有方法实现,可以有实例变量,可以有构造方法。`interface`不能有方法实现,只能有常量和抽象方法。
25. `abstract`方法不能同时是`static`,不能是`native`,也不能是`synchronized`,因为这些特性与抽象方法的定义相冲突。
26. 内部类(Inner Class)是定义在另一个类内部的类,分为成员内部类(Static Nested Class)和局部内部类。成员内部类可以访问外部类的所有成员,而静态内部类不能直接访问外部类的非静态成员。
27. 内部类的特点在于它可以访问外部类的私有属性和方法,提供了一种紧密耦合的机制,但也会增加内存开销。
以上只是面试宝典中的一部分内容,完整的资料会涵盖更多关于异常处理、集合框架、IO流、多线程、网络编程、JVM内存管理等Java核心知识点。通过深入理解和掌握这些内容,可以帮助开发者在面试中表现出色。
2017-08-15 上传
2023-08-13 上传
2023-07-15 上传
2023-06-20 上传
2023-08-27 上传
2023-09-17 上传
2024-05-13 上传
bruce_lv
- 粉丝: 4
- 资源: 2
最新资源
- 天池大数据比赛:伪造人脸图像检测技术
- ADS1118数据手册中英文版合集
- Laravel 4/5包增强Eloquent模型本地化功能
- UCOSII 2.91版成功移植至STM8L平台
- 蓝色细线风格的PPT鱼骨图设计
- 基于Python的抖音舆情数据可视化分析系统
- C语言双人版游戏设计:别踩白块儿
- 创新色彩搭配的PPT鱼骨图设计展示
- SPICE公共代码库:综合资源管理
- 大气蓝灰配色PPT鱼骨图设计技巧
- 绿色风格四原因分析PPT鱼骨图设计
- 恺撒密码:古老而经典的替换加密技术解析
- C语言超市管理系统课程设计详细解析
- 深入分析:黑色因素的PPT鱼骨图应用
- 创新彩色圆点PPT鱼骨图制作与分析
- C语言课程设计:吃逗游戏源码分享