当前位置: 首页 > news >正文

盖斯的第一部分

1 构造器Constructor是否可被override

不可以被重写,但是可以被重载。
可以看见一个类中有多个构造函数的情况。

2 重写与重载的区别

(1)重写

方法提供的行为改变,而方法的外貌并没有改变
1,重写在子类中重新编写。方法名、参数列表必须相同,
2,返回值范围小于等于父类,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类。
3,另外,如果父类方法访问修饰符为private 则子类就不能重写该方法。

(2)重载

发生在同一个类中
方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同

3 Java 面向对象编程三大特性

封装,继承,多态

4 String 为什么是不可变的?

String 类中使用 final 关键字修饰字符数组来保存字符串,

private final char value[]
所以 String 对象是不可变的。

5 String、StringBuffer 和 StringBuilder 的区别是什么?

1,可变性

String 类中使用 final 关键字修饰字符数组来保存字符串,
private final char value[]
所以 String 对象是不可变的。

!

而 StringBuilder 与 StringBuffer 都继承自 AbstractStringBuilder 类,在 AbstractStringBuilder 中也是使用字符数组保存字符串 char[]value 但是没有用 final 关键字修饰,所以这两种对象都是可变的。

2,线程安全性

StringBuffer 对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全的。
StringBuilder 并没有对方法进行加同步锁,所以是非线程安全的。

3,性能

每次对 String 类型进行改变的时候,都会生成一个新的 String 对象,然后将指针指向新的 String 对象。

StringBuffer 每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象并改变对象引用。

相同情况下使用 StringBuilder相比使用 StringBuffer 仅能获得 10%~15% 左右的性能提升,但却要冒多线程不安全的风险。

对于三者使用的总结:

操作少量的数据: 适用 String
单线程操作字符串缓冲区下操作大量数据: 适用 StringBuilder
多线程操作字符串缓冲区下操作大量数据: 适用 StringBuffer

6 自动装箱与拆箱

装箱:

将基本类型用它们对应的引用类型包装起来;

拆箱:

将包装类型转换为基本数据类型;

7 接口和抽象类的区别是什么

接口的方法默认是 public,所有方法在接口中不能有实现(Java 8 开始接口方法可以有默认实现),而抽象类可以有非抽象的方法。

接口中除了 static、final 变量,不能有其他变量,而抽象类中则不一定。

一个类可以实现多个接口,但只能实现一个抽象类。接口自己本身可以通过extends 关键字扩展多个接口。

接口方法默认修饰符是 public,抽象方法可以有 public、protected 和 default
这些修饰符(抽象方法就是为了被重写所以不能使用 private 关键字修饰!)。

http://www.jsqmd.com/news/314315/

相关文章:

  • 孤能子视角:“联结主义(神经网络)认知心理学“
  • 深度剖析SkyWalking:从内核原理到生产级全链路监控实战
  • 【OpenCV】Python图像处理矩特征之矩的计算/计算轮廓的面积
  • 寒假学习(8)(c语言8+模数电8)
  • 什么是无需编程的全栈开发平台?一文讲清原理与价值
  • 详细介绍:JavaEE进阶——SpringMVC响应处理详解
  • 相当完美的新一代移动处理器!英特尔酷睿Ultra X9 388H实测
  • mybatis中collection标签与association标签的区别与应用场景
  • 搭配单通道高延迟内存照样是最强游戏处理器!锐龙7 9850X3D首发评测
  • 2025年CRM系统选型手册:主流厂商能力横向对比及深度解析
  • SpringMVC
  • Naabu 使用手册
  • 声振温监测技术:设备故障的“隐形哨兵”,预警的核心底气
  • 设计行业资讯精准推送工具,输入关注行业关键词,自动筛选优质资讯,过滤冗余信息,按每日/每周推送,帮职场人及时掌握行业动态。
  • 2026必备!9个AI论文写作软件,MBA论文写作神器推荐!
  • AI 赋能大模型的下一个“风口”在哪?
  • 多模态大模型中Attention机制暗藏「骗局」,需用一个公式修正丨上大×南开
  • Python RPA从零到实战:一份为期100天的系统培训大纲
  • 2026年CTO最想招的不是程序员,而是“懂业务的测试者”
  • 2026年最值钱的软技能TOP3:软件测试从业者的转型指南
  • 安卓手机/平板/TV版 Rotation强制横屏显示设备!免ROOT可用!再推荐突破手机限制的3款神器
  • 1-28午夜盘思
  • 使用 JYPPX.DeploySharp 高效部署 PaddleOCR,解锁多种高性能 OCR 文字识别方案
  • memset和memcpy的区别
  • 如何把post train做好,后训练方法论
  • LLM已死?Agentic Reasoning:重塑LLM智能体思维
  • 云拒科技推出Yunjue Agent:能够从零开始自我进化的助手系统
  • 基于Java+SSM的智能停车场管理系统:集成车牌识别(SVM)与数据可视化(可用作毕设参考)
  • Flutter艺术探索-Flutter依赖注入:get_it与provider组合使用
  • 设计客户需求整理工具,录入客户沟通内容,自动提取核心需求,异议点及诉点,生成需求清单,标注优先级,帮销售/运营精准对接客户需求。