Java面试必备知识:基础到高级
需积分: 0 152 浏览量
更新于2024-07-22
收藏 1.12MB PDF 举报
"这是一本关于Java面试的资料,包含了丰富的Java基础知识和面试常见问题,旨在帮助求职者准备面试或面试官评估候选人。"
以下是根据给定文件信息整理的Java知识点详解:
1. **Java源文件与类的关系**:一个`.java`源文件可以包含多个类,但只能有一个公共类(public class),其他类可以是非公共类(非顶级类,如内部类)。
2. **goto关键字**:Java中没有`goto`关键字,它遵循结构化编程原则,鼓励使用流程控制结构如`if`、`for`、`while`等。
3. **&和&&的区别**:`&`是位运算符,而`&&`是逻辑运算符。在布尔表达式中,`&&`具有短路特性,只有当左侧表达式为真时才会计算右侧表达式。
4. **跳出多重嵌套循环**:在Java中,可以使用`break`语句跳出最内层循环;如果需要跳出所有嵌套循环,可以使用标签(label)配合`break`。
5. **switch语句的使用**:`switch`语句可以作用于`byte`, `short`, `char`, `int`, `枚举类型`以及`Java 7及以后版本的String`,但不能作用于`long`。
6. **short变量的赋值**:在原始类型中,`short s1 = 1; s1 = s1 + 1;`会涉及到类型提升,可能导致编译错误,因为`1 + 1`的结果是`int`类型。而`s1 += 1;`会自动转换回`short`类型。
7. **char存储中文字符**:`char`类型可以存储单个Unicode字符,包括中文汉字。
8. **效率计算2乘以8**:最有效率的方式是直接赋值`2 << 3`,利用位移运算。
9. **设计大整数计算器**:设计一个能处理大整数的计算器,需要考虑如何存储大整数(如字符串表示)、如何进行加减乘除等操作以及异常处理。
10. **final关键字**:final修饰的变量其引用不可变,对于对象来说,意味着对象的引用不能改变,但对象内部的状态可以变。
11. **"=="与equals的区别**:"=="比较的是对象的引用,而`equals`方法比较的是对象的内容。对于基本类型,"=="就是比较值;对于对象,"=="比较的是两个引用是否指向同一个对象,`equals`默认行为也如此,但可以通过重写来比较内容。
12. **静态变量与实例变量**:静态变量属于类,所有实例共享;实例变量属于对象,每个实例有自己的副本。
13. **static方法与非static方法**:不能从static方法内部直接调用非static方法,因为static方法在类加载时就存在,而实例方法依赖于对象。
14. **Integer与int的区别**:Integer是int的包装类,用于对象操作,支持方法调用;int是原始类型,效率更高,但不支持对象特性。
15. **Math.round方法**:`Math.round(11.5)`等于12,`Math.round(-11.5)`等于-11。
16. **代码不妥之处**:未提供具体代码,无法分析。
17. **作用域的区别**:public作用域是全局的,任何地方都能访问;private仅限于类内部;protected允许子类访问;无修饰符的作用域在同一包内的类可以访问。
18. **Overload与Override**:Overload是方法名相同但参数列表不同;Override是子类重写父类的方法。Overloaded方法不能改变返回类型。
19. **构造器不能被override**:构造器不是继承的一部分,不能被重写,但可以被覆盖(隐藏)。
20. **接口与继承**:接口可以继承接口;抽象类可以实现接口;抽象类可以继承具体类,但抽象类不能有静态的main方法。
21. **clone方法**:在实现`Cloneable`接口的类中,通常在`clone()`方法中会调用`super.clone()`。
22. **面向对象的特征**:封装、继承、多态。
23. **Java中的多态**:通过方法重写和接口实现实现多态,使得子类对象可以替代父类对象。
24. **abstractclass和interface的区别**:抽象类可以有方法实现,接口只能声明方法;一个类可以继承一个抽象类,但可以实现多个接口。
25. **abstract与static、native、synchronized**:abstract不能与static、native同时使用,但可以与synchronized一起使用。
26. **内部类**:内部类是定义在另一个类内部的类,分为静态嵌套类(StaticNestedClass)和非静态嵌套类(InnerClass)。静态嵌套类不持有对外部类的引用,而内部类可以访问外部类的私有成员。
27. **内部类与外部类成员的访问**:内部类可以直接访问外部类的所有成员,包括私有成员,但外部类不能直接访问内部类的私有成员。
28. **匿名内部类**:匿名内部类没有名字,常用于简洁地实现接口或继承类,它可以有局部变量,但必须是final的。
以上是基于给定文件的部分内容提炼的Java知识点,涵盖了基础语法、面向对象特性、类与接口、方法重写与多态等多个方面。这些知识是Java程序员面试和工作中常见的重点。
2021-04-30 上传
2021-09-23 上传
2021-07-09 上传
2021-04-23 上传
2021-04-22 上传
2010-07-17 上传
2017-11-19 上传
2024-03-25 上传
2018-09-03 上传
橋声
- 粉丝: 4
- 资源: 1
最新资源
- 掌握Jive for Android SDK:示例应用的使用指南
- Python中的贝叶斯建模与概率编程指南
- 自动化NBA球员统计分析与电子邮件报告工具
- 下载安卓购物经理带源代码完整项目
- 图片压缩包中的内容解密
- C++基础教程视频-数据类型与运算符详解
- 探索Java中的曼德布罗图形绘制
- VTK9.3.0 64位SDK包发布,图像处理开发利器
- 自导向运载平台的行业设计方案解读
- 自定义 Datadog 代理检查:Python 实现与应用
- 基于Python实现的商品推荐系统源码与项目说明
- PMing繁体版字体下载,设计师必备素材
- 软件工程餐厅项目存储库:Java语言实践
- 康佳LED55R6000U电视机固件升级指南
- Sublime Text状态栏插件:ShowOpenFiles功能详解
- 一站式部署thinksns社交系统,小白轻松上手