牛逼啊
点赞 评论

相关推荐

03-11 19:00
已编辑
门头沟学院 Java
形式:腾讯会议时间:半小时左右流程:自我介绍-八股-简历项目-反问环节结局:OC了,但是去了一天就跑路了一.八股问题如下:1.1String和StringBuilder区别?1.2用+来拼接字符串是不是可以说明String是可以修改的呢?1.3业务上有拼接字符串的需求,用哪种合适呢?2.1ArrayList和LinkedList有什么区别?2.2ArrayList如果不指定长度,直接new一个,默认长度是多少?(默认长度是10,这个没答上来)2.3ArrayList如果不指定长度,直接扩容的话会扩容到原来的多少倍?(1.5倍,这个没答上来)3.1HashMap的底层是什么?(我回答的哈希表,被质疑了。但搜一下好像就是哈希表呀)3.2HashMap默认长度是多少?(16,没答上来)4.1解释一下继承?4.2子类继承父类,父类中有一个私有方法,怎么通过子类去调用父类的私有方法呢?(回答的使用super调用,答错了。应当使用父类提供的公共方法或者反射来实现)5.1开发过程中有没有用过try-catch?(我介绍了一下try-catch-finally,然后又提了一嘴try-with-resources)6.开发过程中把一个对象的同名参数拷贝到另一个对象中,应当怎么做?(我说使用BeanUtils.copyProperties,说了一下DTO、VO之间使用这个进行拷贝)7.线程安全有了解过吗?线程池和锁相关的?(我说今天准备看这一块,之前看过但是忘了)两个都没有了解过吗?(我回答知道数据库相关的一些锁)8.synchronized锁有了解过吗?(回答知道,但回答不上具体的)9.1讲一下Spring怎么实现事务的,我们在Spring中怎么实现事务的,如何开启事务?(我回答的是使用@Transactional这个注解,至少涉及到数据库中两张表的操作)9.2有没有了解过什么情况下@Transactional注解会失效?可能不会回滚。(我回答没有遇到过,她说没关系)10.项目启动的时候,对数据作初始化,应该如何实现?比如说yml文件里面的或者数据库里面的一些热点数据读出来并存储到redis里面。(我回答的是在启动类上加一个注解,被质疑了。问了GPT是说用@PostConstruct这个注解)11.讲一下平时日常工程中怎么进行SQL优化?(我说了起别名、不能直接用>=、查询时候不要查询无关的列、什么时候用where,什么时候用if,不能混着使用)12.1你在写SQL过程中有没有用到过索引?(我回答对索引的了解仅局限于概念,但是用过redis)12.2有没有了解过去加一个索引,让查询更快,怎么判断SQL查询过程中有没有用到这个索引?(我回答添加日志看查询时间有没有缩短和看控制台的SQL输出,乱说的。应该是使用EXPLAN来查询)13.介绍下Redis基本数据类型(我说了常用的是五种,但是想不起来具体的了,就说了一个字符串,项目中用到过)14.1说一下你理解的Redis和MySQL这两种数据库的区别?(我说Redis是键值对类型的数据库,MySQL是关系类型的数据库。Redis存常用的数据,当中间件的作用,注意Redis和MySQL的数据一致性)14.2你提到了数据不一致的清零,有个库存是热点数据,放在Redis中进行扣减,如何保证Redis和MySQL的数据一致性?(我回答的是重新对Redis进行一次写入操作)14.3先写MySQL还是先写Redis呢?(我回答个人习惯先写Redis。GPT推荐先写MySQL,再写Redis)14.4有没有了解过Redis的持久化机制?(回答没复习到这里,之前用到过)14.5缓存击穿、缓存雪崩、缓存穿透?(之前用到过,但是回答不出来原理)14.6如何解决缓存雪崩的过期问题?(我回答的是在更新一次。GPT推荐设置不同的缓存过期时间)15.1有没有自己部署过项目呢?(没有,打算部署一下给学校做的项目,之前看过一些部署相关的操作,感觉技术上没什么问题)15.2启动jar包的命令是什么?(我回答java -jar,输入包的名字,答对了)--------------------------------------------------------分割线--------------------------------------------------------------二.项目问题如下:1.项目的定时器如何去定时?(我回答SpringTask注解和corn表达式,corn表达式有在线生成的网站,可以不用自己写)2.1项目中的Nginx主要是为了实现什么需求呢?(我回答负载均衡、修改端口号)2.2减少压力,去路由的时候用的是地址还是端口呢?(我没搞懂什么意思)2.3监听的哪个端口呢?(回答6379,被反问6379是redis的吗?把Redis和Nginx弄混了?)--------------------------------------------------------分割线--------------------------------------------------------------接着另一个面试官问我结合对公司了解的情况,有没有什么问题?下面是我的问题1.实习生要求高吗?2.问一下更加具体的技术栈和业务(业务主要是管理系统,并非和多线程问题比较少。技术栈Spring+Redis+MySQL。公司有自己开发的低代码平台和若依)又说了可能会让我写一些原生的框架,没有VUE,H5+JS,需要进行dom操作修改节点的值。但是会有同事来带我。老框架是前后端不分离的框架3.目前去实习任务是什么?(大部分任务还是老框架的,二次开发,从0到1页面开发,增删改查。Spring+SpringBoot)4.前端写的时候需要借助ChatGPT,那边同事也这样5.今天面试结果是怎么样的状态呢?(第一次面试,想听下建议)。问了我到岗时间6.聊了下期望薪资7.问了下租房价格。合租800-900能租到主卧,套一1600-18008.说了一下自己背八股不太好,回答的不是很好,对方表示没关系,只要愿意学,公司就愿意教接下来就是加微信,等都面试完给我电话回复。一周五天,早9晚6,可能偶尔会加班剩下两个面试官都没啥问题,我说了表示感谢给我面试机会,然后就下线了,面试结束。后续:过了一个小时,微信电话通知我明天带着电脑和简历去公司线下见老板面谈,然后我就写了这个面经。这是我第一次面试,整体回答的也不是很好,欢迎大家多给我留言,给出意见和建议。
急行电牛:大家给点评论呗,成都找Java实习太难了
点赞 评论 收藏
分享
03-26 20:24
已编辑
北京邮电大学 Java
面试官人很好,也很耐心,但是也喜欢咬着我不放三分钟自我介绍开局拷打项目:经典一致性问题。这里一直在聊redis库存扣减到写入sql这一整段的最终一致性。我首先讲了我目前的实现,异步扣减+手动ack持久化订单消息+定时任务更新库存。面试官说性能会不会太差,用户抽奖能立即拿到结果吗?我就说压测平均响应也在100ms以内,并且抽奖肯定有转盘动画之类的,完全能撑住。这里又问了一下并发抽奖怎么办,说了加3s过期分布式锁,限制单用户短时间内重复点击抽奖。面试官好像对回答还是不满意,接着问,假如我一定需要优化性能,减少响应速度,问我有什么改进方法,我说可以考虑还是改回自动ack,把持久化订单信息放到扣减库存后,发mq消息前(错误示范,当时没想太多,这样做redis抗并发的意义就没了,还不如直接写库)。不过面试官好像也没意识到出错了(,他目标似乎不在这上面。接着又说了半天场景(对不起我又没听明白是问啥),大概就是说,假如写库的时候会有规则校验之类的,这时候挂了咋办。(这里我已经感觉到不妙了,因为还是没明白面试官想问的方向),我说自己的项目都是把这部分给放到校验之前,保证这部分只专心做写库。还是不满意,继续追问,实际情况很复杂,假如这里就是需要做其他的校验,该怎么办。我说可以用事务来回滚,又被问分布式transactional出问题怎么办,直说了不大了解(其实就是怕被问到这儿,还是没躲过去)八股(我通过面经梳理的顺序,实际上感觉问的还挺跳跃):可能正好提到了事务,话接上文,于是问了我嵌套@Transactional会有什么问题?(后面复盘才知道当时应该是问同类下调用事务方法的失效场景)。问多态底层原理。对不起真不知道,直说了不清楚,再狡辩回答了一下多态的体现(方法重写重载等等等。。。)==和equals区别。过String的数组为什么要用final修饰?对不起我又没见过这样问的,,说可能是为了保证字符串不可变,线程安全,当时还脑洞大开说跟builder和buffer那俩相比,没有对字符串的操作而是直接生成新的字符串,性能上也会更好(实在是不知道说啥)反射的优缺点。过aop的底层原理。说了动态代理和字节码操作,又详细说了动态代理因为动态代理说到了CGLIB和JDK实现,又顺着问了我两者的区别。过jvm内存。过为什么永久代被替换为元空间。说了个永久代oom风险更高,其他记不大清了堆对象是怎么进行分代和转化的。大部分对象新生代,大对象老年代。通过年龄计数器来确定对象的升代。G1的过程和优点。过,这部分还好记挺熟io流。没怎么看,早知道不偷懒了对象创建过程。过mysql索引底层结构,和其他对比。过B+树范围查询怎么做的。从下界节点走类似中序遍历直到收集到上界节点。redo log和undo log,他俩结合起来能解决什么问题?单独说没问题,问我结合的时候我还有点懵??没懂想让我回答什么,最后说了个可以实现事务和宕机恢复(但我单独介绍也说过了,dbq不知道)。Spring启动过程。过算法(其实是说思路,变种场景题):基本有序的数组什么排序最快。插入追问为什么是插入。梳理了一下逻辑讲了讲插入的过程和可以优化到O(n)找第k个位置的元素怎么找。快速选择和堆排一个很大的文件,比如要做词典,怎么在其中匹配对应字符串。说了字典树假如连续一长串不规则字符串呢?不是很清楚,说es,但追问我es原理,说了倒排索引,继续问是怎么实现的,承认了看过一些,但没看太仔细怎么在一个串中找到出现次数超过一半的字符。说用哈希表统计然后计算。追问假如输入是一个流呢?(其实也想说哈希表也能做啊,但感觉可能想让我回答其他的)只好说不大清楚最后:毕设方向是什么?回复,我目前是大三()还没确定,问知不知道方向?我们学校一般大四才开始做毕设base地意向北京,但部门在杭州,能不能接受;ok反问:部门业务最后一个场景题做法?摩尔投票,(听到的时候感觉很熟悉,不知道好久之前看过这个,但现在忘了)#牛客AI配图神器# 总结全程1h2m,还得练,这就回去加班看事务
点赞 评论 收藏
分享
04-01 11:22
已编辑
深圳大学 Java
1.自我介绍2.到岗时间3.描述一下微服务思想4.InnoDB的索引结构5.为什么用B+树6.B树是什么样子的7.主键索引和唯一索引的区别8.redo log是干什么的9.bin log是干什么的10.你项目中redis和mysql是怎么保证数据一致的11.延时双删怎么实现的(固定2s12.有没有别的方法(消息队列,cannal订阅13.有了解过消息队列吗(没有,计划学习14.你知道redis的大key(分片)问题和热key问题吗(互斥锁,预热,设置永不过期15.热key还有什么方法吗(没想出来16.假如有一个redis集群,一个在节点在中国,一个节点在美国,通信延迟很高,有一个大key分片存在这个集群中,中国节点向美国节点同步数据时很多数据没传成功,怎么办(不会,瞎说了一通,面试官说哦...行了解,感觉是不太满意17.这个微服务项目中不同微服务之间是怎么调用的,RPC吗(不是,用的http18.你用过RPC吗(没有,计划学习19.tcp怎么保证可靠的算法题:带过期时间的LRU因为是遍历双向链表修改TTL所以这个复杂度是O(n),面试官问有没有O(1)的方法,当时没想出来,回来的路上意识到可以记录维护最小堆来实现O(1)的复杂度反问:具体业务没录上音,凭记忆写的,不记得还有没有遗漏了连续两场八股盛宴,面完脑子晕晕的——————补充————————想起来还有一个问题同步/异步IO,阻塞/非阻塞IO是什么,他们的区别,这个真不会又是在瞎说#面经# #字节跳动# #剪映# #暑期实习# #面试# #后台开发#
查看38道真题和解析
点赞 评论 收藏
分享
牛客网
牛客企业服务