java面试题整理

Java基础

  • 重载与重写的区别
    重载在同一个类中,方法名必须相同,参数类型、个数、顺序可不同,返回值和访问修饰符可以不同,重写在父子类中
  • String 和 StringBuffer、StringBuilder 的区别是什么?String 为什么是不可变的
    String类使用final关键字字符数组,所以是不可变的
    StringBuilder 与 StringBuffer 都继承自 AbstractStringBuilder 类,String和StringBuffer是线程安全,StringBuilder线程不安全,String类型每次改变都会产生一个新对象,StringBuffer是对对象本身操作,StringBuilder性能优于String和StringBuffer。
  • == 与 equals的区别
  • final 关键字
  • Java 异常处理
  • 接口和抽象类的区别

集合

  • Arraylist 与 LinkedList 异同
  • ArrayList 与 Vector 区别
  • HashMap的底层实现
  • HashMap 的长度为什么是2的幂次方
  • HashSet 和 HashMap 区别
  • ConcurrentHashMap 和 Hashtable 的区别
  • ConcurrentHashMap线程安全的具体实现方式/底层具体实现

多线程

  • synchronized 关键字
  • synchronized和ReenTrantLock 的区别
  • synchronized 关键字和 volatile 关键字的区别
  • 实现Runnable接口和Callable接口的区别
  • 线程池有关
  • AQS原理
  • CAS
  • ThreadLocal作用

  • 乐观锁 悲观锁
  • 偏向锁、轻量锁、重量锁

JVM

I/O

spring

mybatis

数据库

  • MyISAM与InnoDB的区别
  • 索引
  • sql优化
  • 事务的四个特性与隔离级别
  • 数据库锁

网络编程

数据结构与算法

redis

  • 常见数据结构与使用场景
  • 缓存雪崩和穿透解决方案
  • key的并发竞争
  • 缓存与数据库双写数据一致性

消息队列

分布式框架

设计模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值