3年java程序员面试归总

1.java中有哪些集合?哪些是有序的,哪些是无序的。

在这里插入图片描述

2.怎么实现多线程?一个线程的生命周期是多久。

继承Thread类
实现Runnable接口
实例化Thread.start()
线程的生命周期:新建,就绪,运行,阻塞以及死亡。

3.Sql如何优化?

(1)建立索引
(2)避免全表扫描
(3)避免使用select *
(4)优化in语句,若后面是子查询用left join,如果是确定值,用or连接

4.Sql的索引在什么情况下会失效?

(1)复合索引
(2)Like的%xxx会失效 xxx%不会失效
(3)要求使用的所有字段,都必须单独使用时能使用索引
(4)mysql认为全表扫面要比使用索引快(表里就几条数据)

5.Redis在什么情况下会用?Redis是单线程的还是多线程的?Redis的数据类型?

使用redis:读取频繁,或读>写的时候。
Redis是单线程,使用多路I/O复用模型,非阻塞I/O;
最常用的数据类型:
String
Hash
List
Set

Sorted set
pub/sub
Transactions

6.Redis雪崩如何处理?

什么是雪崩:缓存在同一时间内大量键过期(失效),接着来的一大波请求瞬间都落在了数据库中导致连接异常。
最常用解决方法:在批量往Redis存数据的时候,把每个Key的失效时间都加个随机值

setRedis(Key,value,time + Math.random() * 10000);

7.mq相关问题

MQ是消息队列。
最大优点:解耦、异步处理、削峰/限流
缺点:不宜维护

8.乐观锁和悲观锁

乐观锁适用于多读
悲观锁适用于多写

9.事务

什么是事务

一件事情有n个组成单元 要不这n个组成单元同时成功 要不n个单元就同时失败
就是将n个组成单元放到一个事务中

mysql事务

默认的事务:一条sql语句就是一个事务 默认就开启事务并提交事务

事务的特性和隔离级别

事务的特性ACID

  • 原子性(Atomicity)原子性是指事务是一个不可分割的工作单位,事务中的操作 要么都发生,要么都不发生。
  • 一致性(Consistency)一个事务中,事务前后数据的完整性必须保持一致。
  • 隔离性(Isolation)多个事务,事务的隔离性是指多个用户并发访问数据库时, 一个用户的 事务不能被其它用户的事务所干扰,多个并发事务之间数据要相互隔离。
  • 持久性(Durability)持久性是指一个事务一旦被提交,它对数据库中数据的改变 就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。

事务的隔离级别

  • read uncommitted : 读取尚未提交的数据 :哪个问题都不能解决
  • read committed:读取已经提交的数据 :可以解决脏读 ---- oracle默认的
  • repeatable read:重读读取:可以解决脏读 和 不可重复读 —mysql默认的
  • serializable:串行化:可以解决 脏读 不可重复读 和 虚读—相当于锁表

事务的传播行为

  • 保证同一个事务中
    PROPAGATION_REQUIRED 支持当前事务,如果不存在 就新建一个(默认)
    PROPAGATION_SUPPORTS 支持当前事务,如果不存在,就不使用事务
    PROPAGATION_MANDATORY 支持当前事务,如果不存在,抛出异常
  • 保证没有在同一个事务中
    PROPAGATION_REQUIRES_NEW 如果有事务存在,挂起当前事务,创建一个新的事务
    PROPAGATION_NOT_SUPPORTED 以非事务方式运行,如果有事务存在,挂起当前事务
    PROPAGATION_NEVER 以非事务方式运行,如果有事务存在,抛出异常
    PROPAGATION_NESTED 如果当前事务存在,则嵌套事务执行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值