Java面试必备知识点:基础到高级挑战
需积分: 3 159 浏览量
更新于2024-07-30
收藏 708KB DOC 举报
"这是一份Java面试宝典,涵盖了各种Java面试常见的问题,旨在帮助准备面试的人员全面了解和复习Java基础知识。"
Java面试是检验开发者技术能力的重要环节,以下是一些Java面试中常出现的知识点详解:
1. 一个`.java`源文件可以包含多个类,但只能有一个公开类(public class),其他类可以是非公开类,作为主类的辅助类存在。
2. Java中没有`goto`语句,这是为了保证代码的可读性和可控性,鼓励使用结构化的控制流程。
3. `&`和`&&`的区别在于:`&`始终进行逻辑与运算,而`&&`是短路逻辑与,只有当左侧表达式为真时才会计算右侧表达式。
4. 要跳出多重嵌套循环,可以使用`break`语句配合标签来实现,如`break label;`。
5. `switch`语句可以作用于`byte`, `char`, `short`, `int`以及枚举类型,但不能直接作用于`long`和`String`,JDK 7以后支持`String`类型的`switch`。
6. `short s1 = 1; s1 = s1 + 1;`错误在于操作后超过了short的最大值,需要显式转换。而`s1 += 1;`会自动提升类型,然后进行加法运算,最后再赋值给short变量。
7. `char`型变量可以存储一个中文汉字,因为一个中文汉字在Unicode编码中占用两个字节,与char类型相匹配。
8. 最有效率地计算2乘以8等于16,可以直接写出`int result = 2 * 8;`。
9. 设计一个能处理一百亿的计算器要考虑数值溢出和精度问题,可以使用`BigInteger`类处理大整数,以及`BigDecimal`处理高精度浮点数。
10. `final`关键字修饰的变量,其引用一旦初始化后不能改变,但对于引用的对象,如果对象内的状态是可以改变的。
11. `==`比较的是两个变量的引用,而`equals()`方法比较的是对象的内容。对于基本类型,`==`就代表值的比较;对于对象,`equals()`通常是重写后的逻辑比较。
12. 静态变量属于类,实例变量属于对象。静态变量在类加载时被创建,生命周期与类相同;实例变量在对象创建时初始化。
13. 不可以在静态方法内部直接调用非静态方法,因为非静态方法依赖于实例对象,而静态方法是在类级别上执行的。
14. `Integer`是`int`的包装类,`Integer`对象包含一个`int`值。它们之间的区别在于,`int`是原始类型,`Integer`是对象,涉及内存分配和对象引用。
15. `Math.round(11.5)`等于12,`Math.round(-11.5)`等于-11。`Math.round()`四舍五入到最近的整数。
16. 代码中的不妥之处可能包括但不限于未声明变量、语法错误或逻辑错误,具体要看代码内容。
17. `public`表示全局可访问,`private`限制在同一类内访问,`protected`限制在同包及子类中访问,不写时表示默认访问权限,限制在同一包内访问。
18. Overload(重载)是方法名相同但参数列表不同的多态形式,不改变返回值类型;Override(重写)是子类覆盖父类的同名方法,保持返回值类型和参数列表一致。
19. 构造器不能被`override`,但可以被`overload`。
20. 接口可以继承接口;抽象类可以实现接口;抽象类可以继承具体类,但具体类不能继承抽象类。静态的`main`方法不涉及对象实例化,所以可以存在于抽象类中。
21. 实现`clone()`方法时,通常会包含`super.clone()`调用来创建对象副本。
22. 面向对象的特征包括封装、继承、多态。
23. Java通过方法重写(Override)和接口实现来实现多态。
24. `abstract class`可以包含抽象方法和非抽象方法,而`interface`只能包含抽象方法(JDK 8开始可以有默认方法和静态方法)。抽象类可以有实例变量,接口则不能。
25. `abstract`方法不能同时是`static`,不能同时是`native`,但可以是`synchronized`。
26. 内部类是定义在另一个类内部的类,分为静态嵌套类(StaticNestedClass)和非静态嵌套类(InnerClass)。静态嵌套类不持有对外部类的隐式引用,可以直接实例化,而内部类需要外部类的实例才能创建。
27. 内部类可以引用其包含类的成员,包括私有成员,但不能访问静态成员,除非使用`this.`或`OuterClass.this.`来明确指定。
28. 匿名内部类是没有名字的类,通常用于快速实现一个接口或继承一个类,它可以直接定义在需要使用的地方。
这些知识点只是Java面试中的一部分,深入理解和掌握这些概念对于面试和实际开发工作都是非常重要的。
2017-12-15 上传
2023-11-16 上传
2018-01-22 上传
2017-07-13 上传
2024-10-10 上传
2024-10-10 上传
chenyunyang123456
- 粉丝: 0
- 资源: 2
最新资源
- 计算机二级Python真题解析与练习资料
- 无需安装即可运行的Windows版XMind 8
- 利用gif4j工具包实现GIF图片的高效裁剪与压缩
- VFH描述子在点云聚类识别中的应用案例
- SQL解释器项目资源,助力计算机专业毕业设计与课程作业
- Java实现Windows本机IP定时上报到服务器
- Windows Research Kernel源码构建指南及工具下载
- 自定义Python插件增强Sublime文本编辑器功能
- 自定义Android屏幕尺寸显示及Ydpi计算工具
- Scratch游戏编程源码合集:雷电战机与猫鼠大战
- ***网上教材管理系统设计与实现详解
- Windows环境下VSCode及Python安装与配置教程
- MinGW-64bit编译opencv库适配Qt5.14
- JavaScript API 中文离线版手册(CHM格式)
- *** 8 MVC应用多语言资源管理技巧
- 互联网+培训资料深度解析与案例分析