个人遇到的java面试题汇总

3 篇文章 0 订阅
3 篇文章 0 订阅

前言:工作已有一年多,从今年九月十五日到十月三十号这段期间,断断续续面了十家左右公司,目标岗位是java中级;当然目前自己的水平还没能达到中级,虽不能至,心向往之。废话至此结束,下面开始总结与分析遇到的面试题,希望能帮到一部分人准备面试,同时也是希望自己能好好总结这段面试经历;日后会逐渐整理并完善出答案的,当然我总结的答案肯定有很多漏洞与不足,希望大家不吝赐教,不甚感激。

一、redis分布式锁、票号同步相关
a.分布式锁是利用redis的哪些特性实现的?还是类似key、value的机制吗?
b.如果操作失败,例如票号加一时出现异常,分布式锁如何进行回滚操作的?
c.你为何不用数据库的行锁来实现票号同步,而是在service层添加分布式锁?
d.控制票号同步为何不用ConcurrentHashMap来实现?
e.redis的数据结构有哪几种?存入一个对象后如何获取对象的一个属性?

二、Spring IOC
a.spring IOC的是实现原理?
b.如果让你实现一个IOC容器,有什么思路?
c.BeanFactory与应用上下文之间有何联系?有何不同?
d.spring bean的生命周期?
e.spring bean 依赖注入默认是单例的,那如何保证线程安全?

三、spring AOP
a.spring aop的实现原理?
b.cglib与jdk代理之间的区别?
c.动态代理用到了哪些jdk相关的内容?

四、spring mvc
a.spring mvc在接受到一个http请求之后的一系列流程?

五、spring事务
a.spring中为何加一个@Transactional就可以实现事务了?
b.在一个spring事物下开启多个线程的话,那新开的线程会有事务吗?
c.那你该如何处理多线程情况下的事务?
d.说说事物的传播特性有哪些,分别指什么?

六、java基础知识
a.HashMap的底层实现?ArrayList、LinkedList的实现?
b.HashMap进行Put,Get操作时分别发生了什么,时间复杂度是什么?
c.HashMap的扩容是怎么一回事?加载因子是什么作用?
d.JDK8相较于JDK7,hashmap有哪些变化?能讲一讲红黑树吗?(不能~坚定脸~)
e.写一个线程间互相通信的例子
g.session在web中是何时生成的?它是如何与浏览器保持会话的?

七、计算机基础知识
a.Http协议的结构是怎么样的?请求头里面有什么?
b.http请求方式除了post,get还有什么?可以自己定义一个吗?
c.写一个排序算法?分析快速排序的原理与时空复杂度?

八、数据库相关
a.数据库索引是如何让查询变快的?B+树能讲一讲原理吗?
b.现在有一个多对多的关系,你如何设计一个表结构?设计一个用户+权限的表结构?
c.SQL查询调优你有何做法?
d.索引失效有哪些原因?
e.执行计划你是如何分析的?
f.会写存储过程吗?
g.mybatis物理分页插件pagehelper的实现原理?不用插件该如何写SQL实现物理分页?

九、java进阶知识
a.谈谈代理模式与策略模式?写出一个单例类?
b.谈谈classload类加载器?
c.说说CAS与synchronized?
d.实际项目中你有进行过JVM参数调整吗?
e.项目中有没有对线程的数量进行限制?为什么?
f.ConcurrentHashMap的相关实现原理,以及为什么多线程情况下要用它?
g.传给ActiveMQ的数据量突然变大,例如春运期间购买火车票,这样会突然产生很大的实时数据,该如何应对这样的场景?
h.还是春运买火车票的场景,一个客户发起了多次请求,比如在12306网站上、APP上分别请求购买同一个时间、同一个出发到达的票,该如何避免这种情况?(类似idoc重复出票的场景)
i.部署tomcat集群时session共享的问题是怎么解决的?
j.高并发情况下,使用redis缓存+Oracle数据库,如何保证这两者之间的数据同步?
k.有做过支付模块吗?

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值