- 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。 - 继承:继承是从已有类得到继承信息创建新类的过程。提供继承的类叫父类(超类、基类)、得到继承的类叫子类(派生类)。 - 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。 【Java 面试知识点详解】 1. 面向对象的特征 - 抽象:抽象是面向对象编程的基础,它将一类对象的共性提取出来形成类。类包含数据抽象(属性)和行为抽象(方法)。抽象关注的是对象的属性和行为,而不是它们的具体实现细节。 - 继承:继承是类之间的一种关系,子类可以从父类继承属性和行为,从而减少代码重复,提高代码复用。父类提供了共享的特性,子类则可以根据需要添加新的特性和行为。 - 封装:封装是面向对象的核心特性之一,它将数据和操作数据的方法绑定在一起,通过接口限制对数据的访问。这样可以隐藏内部实现,降低外部代码的复杂性,提高安全性。 - 多态性:多态允许不同的对象对同一消息做出不同的响应。通过方法重写和对象造型(向上转型),多态性实现了动态绑定,增强了代码的灵活性。 2. 访问修饰符的区别 - `public`:在任何地方都可以访问。 - `private`:仅限于本类内部访问。 - `protected`:在本类、同一包内的类和子类中可以访问。 - 默认(无修饰符):在本类和同一包内的类可以访问。 3. Java 数据类型 - Java 的基本数据类型包括:byte、short、int、long、float、double、char、boolean,String 并非基本类型,而是对象,属于引用类型。 4. 类型转换与精度问题 - 当将 double 值赋给 float 变量时,需要进行强制类型转换,因为数据精度会丢失。 - short 类型加法操作中,如果涉及到 int 类型,需要进行显式类型转换,否则会编译错误。但使用 += 运算符时,Java 会自动处理类型转换。 5. int 与 Integer 的区别 - int 是基本数据类型,直接存储数值,而 Integer 是 int 的包装类,用于对象操作。Java 5 以后,引入了自动装箱和拆箱机制,使得 int 与 Integer 之间的转换更加便捷。 - 在比较 Integer 对象时,使用 `==` 比较的是对象的引用,而非值。当对象是通过自动装箱创建且值在一定范围内(-128 到 127),Integer 对象会被缓存,此时两个相同的值可能指向同一个对象。超出这个范围,每次创建都会是新的对象。 6. Integer 缓存与比较 - 当 Integer 值在-128到127之间时,使用自动装箱创建的Integer对象会被缓存,因此对于相同值的Integer对象,使用 `==` 比较可能会返回 `true`。否则,即使是相等的值,也可能创建了不同的对象,导致 `==` 返回 `false`。 以上是Java面试中常见的面向对象、数据类型、类型转换和封装等概念的解析。掌握这些基础知识对于理解Java编程和解决实际问题至关重要,也是面试中经常考察的重点。
剩余16页未读,继续阅读
- 粉丝: 14
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 坟墓、棺材检测11-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- 文本(2024-12-21 140007).txt
- IMG_20241218_141554.jpg
- IMG_20241218_141605.jpg
- IMG_20241218_141607.jpg
- IMG_20241218_141613.jpg
- 开启水果电商新篇:SSM 结合 JAVA 与 JSP 设计研究方案
- 地形类型检测9-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- efficientnet-b7-3rdparty-8xb32-aa-in1k-20220119-bf03951c.pth
- 牛奶盒MilkShape-3D-1.8.5