Java面试必备知识:基础篇
需积分: 9 66 浏览量
更新于2024-07-19
收藏 821KB PDF 举报
"Java面试宝典2017版,涵盖了Java基础、语法特性、面向对象、数据类型等方面的问题,旨在帮助求职者准备Java程序员的面试。"
Java面试中的一些核心知识点如下:
1. **Java源文件与类的关系**:一个.java源文件可以包含多个类,但只能有一个公共类(public class),且公共类的名称必须与文件名相同。
2. **goto关键字**:Java中没有goto关键字,它是一种流程控制语句,在其他一些语言中存在,但在Java中被舍弃。
3. **&和&&的区别**:&是逻辑与运算符,无论两边条件如何都会执行,而&&是短路与,如果左边表达式为假,则不会执行右边表达式。
4. **跳出多重嵌套循环**:使用`break`语句可以跳出当前循环,但无法跳出多重嵌套;要跳出所有循环,可以使用标签(label)配合break。
5. **switch语句的使用**:switch不能直接作用于byte、long或String,但在Java 7及以上版本,可以使用`switch`处理Enum和String。
6. **short变量加法**:`s1 = s1 + 1`会引发编译错误,因为这会导致int类型的临时变量,需要强制类型转换回short;`s1 += 1`则会自动处理类型转换。
7. **char存储中文**:char变量可以存储一个中文字符,因为中文字符通常由两个Unicode码位组成,而char在Java中占16位。
8. **效率计算2乘以8**:最有效率的方法是使用`2 << 3`,利用位移操作符进行快速计算。
9. **设计大整数计算器**:考虑使用BigInteger类,它可以处理任意大小的整数运算。
10. **final关键字**:final修饰的变量,其引用一旦赋值后不可变,对于基本类型,值不能改变;对于对象,是指对象的引用不能改变,但对象的内容可以变。
11. **"=="与equals方法**:"=="比较的是两个变量的内存地址,而equals方法比较的是内容,对于对象来说默认比较的是引用是否指向同一对象,但可以重写equals方法来比较对象内容。
12. **静态变量与实例变量**:静态变量属于类,不依赖类的实例即可访问;实例变量属于类的实例,必须通过实例访问。
13. **静态方法与非静态方法**:静态方法内部不能直接调用非静态方法,因为非静态方法依赖于类的实例。
14. **Integer与int**:Integer是int的包装类,两者一个是原始类型,一个是对象。Integer对象在一定范围内可以自动装箱拆箱,但涉及到性能和内存消耗。
15. **Math.round方法**:Math.round(11.5)等于12,Math.round(-11.5)等于-11,四舍五入到最接近的整数。
16. **代码不妥之处**:可能涉及变量作用域、异常处理、资源关闭等问题,具体要看代码内容。
17. **作用域**:public、private、protected以及默认作用域(包内可见)分别代表全局、私有、包内及子类可见以及包内可见。
18. **Overload与Override**:Overload是重载,指同名方法参数列表不同;Override是重写,子类方法覆盖父类方法,需保持方法签名一致。
19. **构造器是否可被override**:构造器不能被重写(override),但可以被重载(overload)。
20. **接口与接口继承,抽象类与接口实现**:接口可以继承接口,抽象类可以实现接口,但抽象类不能继承具体类,抽象类中可以有静态的main方法。
21. **clone方法**:在重写clone方法时,通常会有一行代码`super.clone()`用于调用父类的克隆方法。
22. **面向对象特征**:封装、继承、多态是面向对象的三大特征。
23. **Java中的多态**:通过方法重写(Override)和接口实现(Implements)实现,使得子类对象可以替代父类对象。
24. **abstractclass与interface的区别**:抽象类可以有方法实现,可以有非抽象方法,可以有构造器;接口则全为抽象方法,没有构造器,不支持方法实现。
25. **abstract与static、native、synchronized**:abstract不能与static、native同时使用,但可以与synchronized一起使用。
26. **内部类**:内部类分为静态嵌套类(Static Nested Class)和非静态嵌套类(Inner Class),前者如同普通类,后者需要外部类的实例才能创建。
以上是Java面试宝典中涉及的一些关键知识点,涵盖了Java的基础语法、面向对象编程以及一些高级特性的理解和应用。理解并掌握这些知识点,将有助于在面试中表现出色。
2017-08-15 上传
2020-04-07 上传
2018-02-07 上传
1385 浏览量
2017-12-23 上传
2018-03-02 上传
小愤青
- 粉丝: 0
- 资源: 2
最新资源
- SSM Java项目:StudentInfo 数据管理与可视化分析
- pyedgar:Python库简化EDGAR数据交互与文档下载
- Node.js环境下wfdb文件解码与实时数据处理
- phpcms v2.2企业级网站管理系统发布
- 美团饿了么优惠券推广工具-uniapp源码
- 基于红外传感器的会议室实时占用率测量系统
- DenseNet-201预训练模型:图像分类的深度学习工具箱
- Java实现和弦移调工具:Transposer-java
- phpMyFAQ 2.5.1 Beta多国语言版:技术项目源码共享平台
- Python自动化源码实现便捷自动下单功能
- Android天气预报应用:查看多城市详细天气信息
- PHPTML类:简化HTML页面创建的PHP开源工具
- Biovec在蛋白质分析中的应用:预测、结构和可视化
- EfficientNet-b0深度学习工具箱模型在MATLAB中的应用
- 2024年河北省技能大赛数字化设计开发样题解析
- 笔记本USB加湿器:便携式设计解决方案