#

java

#
4152228次浏览 62103人互动
此刻你想和大家分享什么
热门 最新
26届阿里云暑期实习Java开发一面面经
总结:项目+mid算法+计网八股,只没答上一个sql语句贴主会更新每一个面试的面经,可以点进贴主主页查看其他面经(都会写的详细),可以关注我获得最新面经通知。贴主的第二面(之前腾讯是第一面,这次更有经验了)首先自我介绍,把面试官引到我擅长的项目上1.询问项目的亮点答:登录注册模块采用邮件注册,密码存储采用MD5加密与加盐,登录使用Kaptcha验证码验证,拦截器进行登录状态检查;使用Redis做本地缓存,使用Redis集合数据类型来处理赞、踩,相互关注;使用Spring的声明式事务管理保证数据的一致性;使用Kafka作为消息队列对系统进行解耦,在用户操作后通过消息队列异步处理推送,避免同步操作性能瓶颈2.数据库存储的密码是明文还是加密答:加密的,用户输入的明文密码拼上盐值加密后存入数据库3.了解非对称加密和对称加密吗?答:了解,对称加密用同一个密匙,非对称有一对密匙,一个公匙,一个私钥4.哈希加密了解吗?答:了解,我使用的MD5加密算法就是哈希加密算法5.哈希加密对于对称加密和非对称加密的优点答:计算速度快,能快速对数据进行加密处理,而且是单向加密不能解密,就算我的后端数据库被攻破,也无法从数据库存储的密码中还原密码6.在项目中使用Spring和不使用相比Spring有什么好处?答:细说了IOC和依赖注入优点,AOP优点,事务管理优点,MVC优点7.项目中用到了什么设计模式答:第二个项目手写Spring,创建Bean用了工厂模式,保证容器中一个Bean只有一个实例用了单例模式,实现JDK动态代理和CGLIB代理使用了代理模式,处理请求采用责任链模式等8.讲一下责任链模式优缺点答:优点是解耦,每个阶段可以单独进行配置与扩展;缺点是不好调试,定位哪一个处理者出问题得一个个排查,还有责任链太长会降低性能9.你知道状态模式吗?答:行为设计模式之一,允许对象在内部状态改变时改变他的行为,但是我在项目中没有实际应用这个模式,所以没说展开10.享元模式知道吗?答:结构性设计模式,目的是减少对象创建数量,从而降低内存占用,比如说在我的论坛项目里,像用户名,头像这些需要频繁储存的数据就可应用享元模式,把常用的用户基本信息作为享元对象存入Redis作本地缓存11.你平时会看什么书吗?答:平时基本在学校看教材,假期会阅读一些小说、杂志12.你写代码最看重的一点是什么?答:想了一会说可维护性,然后论证了可维护性的重要性13.你觉得什么时候应该用事务,什么时候不应该用事务?答:事务就是一组操作,我要保证这一组操作的原子性时就应该使用事务,要么全部完成,要么全部不做,避免出现数据不一致情况14.看到我简介上的算法获奖经历,问我15分钟选一个难度的题目手撕,我怕15分钟写不出hard就选了中等手撕算法-LeetCode原题反转链表2   7分钟速通要求Java写,但是平常写算法都用的cpp,一开始写链表虚拟头结点用cpp写法导致报错,但改掉后成功ac15.来一道场景题,有一个合同,合同会和很多个应用关联,问我创建几个表合适答:创建三个表,一个是本身的合同表,一个是应用表,还有一个关联表,合同-应用关联表,关联表绑定两个外键16.如果创建表式要求几张表同时成功或者同时失败,如何写Java代码保证事务一致性答:使用Spring的声明式事务管理,使用@Transactional注解,就可以做到事务的原子性(同时成功或同时失败)17.要求写出上面的场景题,查出合同表中的top 5个金额最高的,连带查询出相关应用信息答:这里写了一会,对JOIN的运用不熟练,没能成功写出SQL语句,算是这个面试唯一没答上来的18.(面试官1说另一个面试官要来考察一下我的基础)我在浏览器输入https://www.taobao.com后,背后会发生什么样的网络请求?答:(窃喜,这是背的八股的第一大条)首先是DNS解析请求,...(过程省略);然后是TCP连接请求...(过程省略);然后就是HTTP请求,浏览器根据输入的url构造HTTP请求报文,...(过程省略);(说到这才发现是HTTPS)紧急补充,使用HTTPS协议,在TCP连接建立之后还会有一个SSL握手请求,会进行身份验证、密匙交换等操作,进一步保证信息安全性;最后页面加载完成还会有一些资源请求,比如CSS文件,JS文件;19.说说HTTP请求数据逐层传输最后到二进制传输经历的过程答:应用层HTTP协议把要传输的数据比如请求方法、请求头组成一个HTTP报文;然后HTTP报文到达传输层,传输层使用TCP或者UDP协议,TCP协议会给HTTP报文加上TCP头部,包含源端口号、目的端口号这些信息,根据三次握手建立可靠连接后,将封装好的TCP报文发出去;数据段到达网络层,网络层主要用IP协议,IP协议再给TCP数据段加上IP头部,包含源IP地址和目的IP地址;封装好的数据报来到链路层,链路层把IP数据报封装成帧加上帧头和帧尾,帧头包含源MAC地址和目的MAC地址,帧尾包含效验信息,然后就以2进制在链路层传播了20.网络传输到网络层,是如何找到下一跳发往哪,根据什么协议和算法?答:依靠路由协议,说了RIP和OSPF,RIP基于距离向量算法,...(省略原理),15跳不可达,收敛慢;OSPF协议基于链路状态算法,每个路由器会先了解周围链路状态,像数据结构里的图一样生成拓扑结构,然后把这些信息发送给网络中其他路由器,然后根据迪杰斯特拉算法计算出最短路径更新路由表,收敛快且适用于更大网络规模21.你在学校里成绩如何答:先说了基础核心课比如计网、数据结构、操作系统都学的很好,批斗了一下学校教的过时课程(20年前的破jdbc和web),说这些课我认为上的必要不大,所以没有学的很认真,这些课成绩差些,所以总体成绩不算很好,但是工作用的工程能力和算法能力锻炼的很好22.你的教育背景不错,今天也看出你的基础也很扎实,为什么你不选择去做算法工程师而是选择做开发呢?答:首先回答算法工程师要研究生起步,我对自己的规划就是本科不读研参加就业,而且在开发上我累计了一定的基础,做出了一定的成绩,也比较享受开发的成就感,而算法方面学了机器学习,感觉更偏向数学领域,就不是很感兴趣,最后还是决定选择做开发。反问环节:1.问了工作地点答:北京2.问了实习薪资答:说他也不知道结束,总用时1h
嵐jlu:可以关注贴主,我还会更新接下来的每一个面试的面经,都会记录这么详细,帮到你了就给帖子点个赞吧
查看22道真题和解析
点赞 评论 收藏
分享
头像
2024-09-10 11:19
已编辑
山西农业大学 Java
Java已读不回?
如何准备简历?1、简历的基础结构我是谁【基础信息】--我会什么【技术栈】--我做了什么【项目】--个人评价2、基础信息姓名--年龄--学校--java工作年限--手机号--邮箱---希望工作地点--岗位【java开发/java工程师】3、技术栈基础--数据库--Nosql--中间件--框架--运维工具/插件--开发工具/插件4、项目项目背景--项目需求--整体流程--技术栈--主要功能介绍5、个人评价需要体现出有解决问题的思路和能力如何准备Java面试?1、Java面试本身是二人转,简历就是话本,不要让你的面试变成独奏2、八股文是围绕Java核心技能的基础知识,并不是去死记硬背,是因为你会了技术,然后通过八股文进行书面回答3、通过项目引导面试官提问,通过问题的答案体现出自身的沉淀和积累4、面试一定要提前1-2周的时间去准备,不要抱着每次面试都会过的想法5、将每一次面试都当做练手,大胆的去表达和提问6、回答问题一定要有条理性,不要东拉西扯如何准备Java项目?1、技术本身是没有价值的,因为有了业务,技术才有了价值2、项目的功能不可能凭空产生,是因为有背景和需求,才有了功能的设计3、项目中的资源不可能凭空产生,也不可能凭空消失,资源一定是经过完整的业务流程被消耗了,所以项目中的资源需要做到数据闭环4、不要为了加上某些看起来牛逼的技术/方案,就硬塞到项目中,这样看上去项目功能的实现方案只能体现技术的实现过程,而不能体现业务是否需要这个方案,这个方案是否是最优解;而技术的实现方案,只需要找点资料就可以完成5、在面试中,我们需要通过项目让面试官知道我们的积累和沉淀,以及解决问题的思路一个好的Java项目应该是什么样子?有人说应该有很多技术栈也有人说应该有分布式锁,分布式事务,各种中间件穿插还有人在项目中大数据量,分库分表;QPS,TPS整一大堆指标; 然后解决内存溢出问题,各种优化,各种线上问题解决霍,这是做项目,还是写bug呀,一大堆bug发布,然后到线上一个一个改?-------不能说没脑子吧,但确实不多总结:技术本身是没有价值的,是因为有了业务,技术才有了价值; 业务达到的效果并不是体现技术的价值,而是因为业务需要,刚好有技术相对贴合, 根据场景合理使用解决方案  Java专栏介绍-牛客网 https://www.nowcoder.com/issue/tutorial?zhuanlanId=mPZY5M&uuid=bff9a310ece749ea8480f0bf15636882
志哥的Java:查看图片
点赞 评论 收藏
分享
06-17 00:26
门头沟学院 Java
求助!!!
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
点赞 评论 收藏
分享
06-28 16:26
已编辑
九江职业技术学院 Java
大专大一学习了一年Java的有感而发
我的专业是软件技术,从大一开学前的暑假开始确定方向学java基础,然后到12月份差不多Java,Mysql,SpringBoot,Redis,Rabbitmq,微服务相关都学完了,跟着视频敲了一个单体项目,两个微服务项目。到寒假期间我学了前端的相关内容,html,js,ajax,Vue,然后3月份网上找了个全栈的项目学习,敲了一整个月并且部署了一下。4月份开始学juc和jvm,然后在面试鸭和小林coding上背八股,记笔记。然后4月底到5月份开始投,用本科大三身份投的,整个5月就是投简历,然后不断复习八股,复习项目。沟通到300多才有一家南京的小厂java面试,拷打八股,拿了offer,但是坦白身份之后被无情拒掉了。然后又有一个上海小厂全栈的实习,只问项目,offer也拿到了,同样坦白后挂了。后面还有几家面试邀请我都忽略了,因为6月份后面就摆了。之后尝试用专科大一身份投了一会,没有任何反响就放弃暑假实习的打算了。我知道我的学历不好,目前的打算是大二下开始准备学升本。计划大二开始学习算法,然后写写自己的项目,然后再多学习些后端和前端的技术。我很羡慕那些大一大二实习的,我知道我专科没有任何机会。而且听说之后专升本学历会被歧视,不知道有没有专升本学历的说说就业情况。与各位共勉,大家一起加油,我也经常焦虑迷茫,觉得自己学得不够,学得太浅,开始投的时候也怀疑过自己学的是不是符合企业要求。但是不能放弃,要坚持下去,继续学
0offer引力失效...:只能试试专升本了兄弟,不过也别丧气,大一实习别说专科,就算是92能过简历初筛的也屈指可数,最早的那批基本上也是得大二开学了
点赞 评论 收藏
分享
求喷,java这种简历真的很烂吗
ohs的小木屋:感觉不是简历问题,是行情问题,根本不招人,简历再优秀也没用
点赞 评论 收藏
分享
05-29 09:02
门头沟学院 Java
好消息!黑马不再开设前端培训班了
希望被捞的猫头鹰很理...:25校招貌似前端比后端好找点
点赞 评论 收藏
分享
玩命加载中
牛客网
牛客网在线编程
牛客网题解
牛客企业服务