JAVA后端面试题

数据库
1,使用mysq索引都有哪些原则?索引什么数据结构??B+tree和 b tree什么区别??
答案:
索引的原则:
1.选择唯一性原则
2.为经常需要排序,分组和联合操作的字段建立索引
3.为常作为查询条件的字段进行索引
4.限制索引数目
5.尽量使用数据量少的索引
2, mysql有哪些存储引擎啊?都有啥区别?要详细
答案:
MyISAM
InnoDB
MEMORY
MERGE
3,设计高并发系统数据库层面该怎么设计???数据库锁有哪些类型?如何实现呀?
答案:
1.
库分表:使用分库分表的结构与二叉树分库进行操作
订单ID(uid维度):时间戳,机器号,自增序号
最终一致性(bid维度):
数据库高可用:
数据分级:
粗细管道:
数据库锁类型有几种:
共享(s)锁:多个事务可封锁一个共享页,任何事务都不能修改该也
排他(x)锁:仅允许一个事务封锁此页,其他任何事务必须等到x锁被释放才能对该也进行访问
更新(u)锁:用来预定要对此页试加x锁,他允许其他事务读,但不允许在试加U锁或x锁
4,数据库事务有哪些??
事务的四大特性:
原子性,隔离行,一致性,持久性
事务分类:
扁平事务
带有保存点的扁平事务
链事务
嵌套事务
分布式事务
事务隔离级别:
读未提交
读已提交
重复读
序列化
分库分表
1,如何设计可以动态扩容缩容的分库分表方案???
2,用过哪些分库分表中间件,有啥优点和缺点,
讲一下你了解的分库分表中间件的底层实现原理?
3,我现在有一个未分库分表的系统,以后系统需分库分表,如何设计,
让未分库分表的系统动态切换到分库分表的系统上
分布式事务知道吗?你们怎么解决的?TCC?那若出现网络原因,网络连不通怎么办啊???
5,为什么要分库分表啊???
6,分布式寻址方式都有哪些算法?知道一致性hash吗?
手写一下java实现代码??你若 userId取摸分片,那我要查一段连续时间里的数据怎么办???
7,如何解决分库分表主键问题?有什么实现方案??
分布式缓存
1, Redis和 Memcheched什么区别?为什么单线程的 redis比多线程的 memched效率要高啊?
答案:
区别:
1.Redis和Memcheched都是将数据存放在内存中,不过Memcheched还可用缓存其他东西,例如图片,视频
2.Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结果的存储
3.虚拟内存–Redis当物理内存用完时,可以将一些很久没用到的value交换到磁盘中
4.过期策略不同 Memcheched使用set Redis 使用 expire
5.分布式–设定Memcheched集群,利用magen做一主多从,Redis可以做一主多从,还可以做一主一从
6.存储数据安全:Memcheched挂掉后,数据没了,Redis可以定期保存到磁盘(持久化),支持持久化,服务器重启,缓存依然可以获取
7.灾难恢复 --Memcheched挂掉后,数据不可恢复,Redis数据丢失后可以通过aof恢复
8、Redis支持数据的备份,即master-slave模式的数据备份
2, redis有什么数据类型?都在哪些场景下使用啊?
Strig ,Set,List,hash,zset
3, reids的主从复制是怎么实现的 redis的集群模式是如何实现的呢? redis的key是如何寻址的啊?
4,使用 redis如何设计分布式锁?使用zk可以吗?如何实现啊?这两种哪个效率更高啊??
5,知道 redis的持久化吗?都有什么缺点优点啊??具体底层实现呢?

6, redis过期策略都有哪些?LRU?写一下java版本的代码吧??
答案:
定时删除
惰性删除
定期删除
分布式服务框架
1,说一下 dubbo的实现过程?注册中心挂了可以继续通信吗??
2,zk原理知道吗?zk都可以干什么? Paxos算法知道吗?说一下原理和实现??
3, dubbo支持哪些序列化协议? hessian?说一下 hessian的数据结构?PB知道吗?为啥PB效率是最高的唧
4,知道 netty吗? netty可以干嘛呀NI0,BI0,AI0都是什么啊?有什么区别啊?
5, dubbo复制均衡策略和高可用策略都有哪些啊?动态代理策略呢?
6,为什么要进行系统拆分啊?拆分不用dubo可以吗? dubbo和 thrift什么区别啊?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值