Java工程师精选面经合集
172家公司
2058篇面经
最新 热门
/feed/main/detail/f1fe1bfebd3145ca9566e61857bbd690
面试时说不说代码细节?
Java后端,大家在被问项目的时候,会把代码说得很详细吗?比如说,被问到JWT怎么实现登录校验,我可能会这样说:这部分分为两个模块,发放token和校验token。发放token,首先控制器要接收账号密码,然后调用service层的login方法,login方法会调用数据访问层的方法。先确定有没有那个账号,没有的话要抛出异常,然后根据账号查找密码。数据库里密码都是加密过的,所以需要对前端传来的明文密码进行相同的加密,然后再进行比对,如果密码对的上, 接下来就可以生成token了。jwt令牌创建时可以使用建造者模式,先用JwtBuilder的setclaims方法加入自定义信息,比如说员工ID,然后使用signwith 方法指定签名算法是HS256,再使用setExpiration方法指定有效期,最后调用compact方法,jwt令牌就创建好了,然后把令牌包装在结果类里,返回给前端就可以了。校验jwt令牌的时候,需要用到拦截器,拦截器里只有prehandle方法,首先判断当前被调用的handle是不是控制器,如果不是就直接放行请求。然后从请求头中获取令牌,用Jwts.parseBuilder校验令牌,或者用JwtUtil.parseJWT也可以。如果令牌对了就放行,如果令牌不对,会抛出异常,所以要捕获异常,然后设置401状态码。另外,登录成功时,拦截器还有另外一个功能,就是通过ThreadLocal记录当前登录的ID,以便AOP的切面类使用。
点赞 评论 收藏
转发
/feed/main/detail/95058bf016074d0eab88d573b812c285/feed/main/detail/c92cdd7561ad4227b9a4ed79dd02eefc/feed/main/detail/daae0c4b0d7343fcb682d6f9e51614cf/feed/main/detail/cc240a12502248e28452be97c0042288/discuss/610446522290819072
Java技术终面北京阿里国际Lazada
时间:4.17 10:00项目给我一顿拷打,我思维很混乱,一句话都说不出来,面试官已经失去耐心了,然后开始问我基础部分手撕:给一个股价每天的波动过程[1,-2,3,2,1,4,6,-3]返回最佳买入和卖出区间(注:可能存在多个相同的区间)1. hashmap的线程安全如何实现    --有一个concurrentHashMap的数据结构可以实现    --它是怎么实现的呢    --(略)    --那它的升级,锁的粒度是粗化了对吧    --(略)    --如果要你自己设计一个实现方式呢,你会如何设计    --这个没想出来,属实不知道了2. 说说tcp三次握手的流程吗3. 那么半连接是怎么产生的呢    --三次握手客户端发送的确认没被收到,或者四次挥手没被收到4. 线程池的原理是什么呢5. 消息队列的功能是什么6. Kafka和RocketMQ有什么区别7. 消息队列的架构是怎样的,读写和master, Slave的关系是什么,生产者和消费者的关系是什么(这道题我也没太听懂)还有一些题忘记了然后就出了一道很离谱的题了:--你如何预测加州的出租车数量,你可以管我要任何你想要的数据--你可以给我一些你觉得我需要的数据吗--假设人口是400万,面积是1500万--那如果我知道其他州的人口和面积以及出租车数量,我可以用AI的回归树模型来预测--好,你这是____方法(很专业的术语,我忘记了)--还有什么其他的吗--我想了很久,说:可以随机调查200人,看看这些人中出租车司机的比例--好,这是供给侧分析,你还有什么其他方法吗--想不到了--从乘客的角度如何分析呢--如果市场饱和的话,可以调查乘客需求,拿上海对标,但是只在上海和加州市场都饱和的情况下才合理然后面试官就跟我热情的聊我的职业规划,问我想做技术,业务还是架构然后跟我说,如果我想转正的话,北京的户口很难拿,尤其对留学生来说,问我有没有做这个心理准备,问我在北京工作的核心诉求是什么,可以跟hr沟通,然后说会帮我推进流程面完五个小时之后,给我打电话约了hr面这效率多高,想着杭州淘宝首页推荐二面之后五天没消息,这差距!兄弟们也加油,推荐大家如果有卡流程的,直接发邮件要求结束,投其他部门,我就这样多了很多面试机会,有些部门喜欢卡着简历
点赞 评论 收藏
转发
/feed/main/detail/5a7f9a8bb827419cad5dee06f2cdaf28/feed/main/detail/3d07e4c3f2714085bb051c23809f3c83/discuss/610415709251743744/feed/main/detail/568364f069f34bb9bc5c1e22b69cf72b/discuss/610217356408729600/discuss/610212809086881792/feed/main/detail/33451f43b8d34b349eeff640469e745a
用友金融 base 北京 Java
十几分钟的电话面试。    有的写了下回答,大伙指正一下+ 数学运算函数 + 字符串反转函数  + 处理字符串的类   + Java数据容器 集合都有哪些 LinkedList  HashTable(ConcurrentHashMap 代替其作为线程安全的锁. 使用分段锁)  TreeMap+ 多线程+ Spring 中的 AutoWired 和 Resource 的区别   AutoWired (参数 required  多一个构造器注入) 优先 byType   Resource(参数 name type  属性注入  setter注入) 优先 byName    优先 resource+ 断点续传怎么实现:保存进度,定位上次的上传位置+ 怎么进行数据库的优化 :一个复杂查询,语句报错,全量查询不报错,分析得知全量查询数据量太大,缓存区中的数据并没有报错。复杂查询查询到了异常数据。使用 explain 查询计划进行定位,确定报错位置,是某个表的某个字段出现了字符串不匹配的问题,有非法字符无法进行字符串转换(存的是数字字符串,要转换成数字后进行运算,无法改变数据类型,牵扯到其他业务),想修改数据,害怕影响其他业务,造成数据存坏或者污染,尝试对异常数据进行过滤处理。再有就是对于经常查询的字段加索引。+ 项目中哪里使用到了 redis  :redis 用来加速数据库数据的访问,我有一些数据太大了,因此访问的比较慢,加入了 redis 缓存。但是通过 jmeter 测试,发现有客户端阻塞卡顿的情况。原因就是 redis 是单线程,大 key,会阻塞 Redis。并且访问流量大,服务器也无法承受。最终分析该数据不是很敏感,还是选择了直接使用浏览器进行缓存。      session 共享 和 token 续期问题。 使用 有序集合实现延迟队列+ git 有一个开发版本,在开发版本(1)进行了一堆代码的开发,突然加了一个临时版本(2),如何将分支 1 上你的代码加入到版本 2 上,是用什么命令:使用 checkout 切换临时分支,使用 git merge 合并两个分支。解决冲突,拉取代码 上传代码+ SpringBoot 和 SpringCloud 讲一下
点赞 评论 收藏
转发
/feed/main/detail/e504c13c1e4f48e3ba57de239fc484b1/feed/main/detail/76831acb3de543d5ac1d7fb4344741cd/feed/main/detail/446c3b2b090f4b718cdeb9ed49ab6833/discuss/610139002804387840/feed/main/detail/7adc97b06a934f93ace3e615a9fd4fb4/discuss/610122426814377984/feed/main/detail/88b0cb6d212f4e0380f9bb7cdeffb513
玩命加载中
写面经
发动态
发动态
发帖子
写文章

全站热榜

牛客网
牛客企业服务