面试大白话,消化八股文-基础篇03

面向对象的四大特征

  • 封装(Encapsulation):将对象的状态(成员变量)和行为(方法)封装在一个类中,并通过访问控制(如public、private等修饰符)来控制对对象的访问和操作。
  • 继承(Inheritance):子类可以继承父类的属性和方法,从而实现代码的复用。Java支持单继承,即一个类只能继承一个父类。
  • 多态(Polymorphism):多态是指同一个方法或操作在不同对象上具有不同的行为。Java中的多态主要体现在方法的重写(override)和接口(interface)上。
  • 抽象(Abstraction):抽象是将具有相似特征的对象抽象成一个类或接口,以提高代码的可维护性和可扩展性。抽象类和接口是Java中实现抽象的两种方式。

方法覆盖和重载的区别

  • 覆盖是子类重写父类的方法,实现多态;
  • 重载是同一个类中有相同方法名但不同参数列表的方法,提供多种处理方式。

final和finally和finalize的区别

  • final是一个关键字,用于修饰类、方法和变量;
  • finally是一个语句块,用于释放资源;
  • finalize是一个方法,用于垃圾回收时回收资源。

BIO、NIO 和 AIO 的区别?

  • BIO是同步阻塞I/O模型,每个连接需要一个线程处理;(老实短信传输)
  • NIO是同步非阻塞I/O模型,使用多路复用技术,可以让一个线程处理多个连接;(聊天软件)
  • AIO是异步非阻塞I/O模型,基于事件驱动,可以让线程在读/写时不阻塞。(云盘备份)

Exception 和 Error 有什么区别?

  • java.lang.Exception: Exception 是可预见并可处理的异常情况; 捕获并处理
  • java.lang.Error: Error 是无法预料和处理的严重问题。

字节流和字符流的区别(分别用什么类实现),读图片用什么流,读文本用什么流

  • 字节流是以字节为单位处理二进制数据的流;
  • 字符流是以字符为单位处理文本数据的流。
  • 读图片用字节流,读文本用字符流。

List和Set的区别

  • List 是有序、可重复的集合;
  • Set 是无序、不重复的集合。

ArrayList和LinkedList区别

  • ArrayList 是基于数组实现的,支持随机访问,插入和删除效率较低;
  • LinkedList 是基于双向链表实现的,不支持随机访问,插入和删除效率较高。

HashMap和HashTable和ConcurrentHashMap的区别

  • HashMap 是非线程安全的,允许null键和值;
  • HashTable 是线程安全的,不允许null键和值;
  • ConcurrentHashMap 是线程安全的,不允许null键和值,采用分段锁技术实现线程安全。

HashMap是不是线程安全的,如果不是那么在多线程中应该怎么处理

HashMap 不是线程安全的,在多线程中可以选择使用 ConcurrentHashMap、Collections.synchronizedMap(hashMap) 或者使用锁来实现线程安全。

猫猫骑士守护

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值