指掌易Java后端凉面(6.7)
本人菜鸟一枚。希望大佬们能帮我看看里面的一些问题应该怎么回答更好一些呢?或者帮我指出一下问题就更好了,大家一起进步。谢谢!
前言:
本人双非二本。只是记录一下自己的面试经历。本人比较菜。
我为了本次面试我也准备了许多,比如一些常见八股,简历上的项目职责大体都熟悉了一下。不过本次面试还是暴露出很多问题。
比如:
1.Java基础知识还是需要巩固,不能眼高手低,也不能仅仅局限于一些八股文。
2.项目的一些细节是真的要烂熟于心。面试官会使劲深挖,要做好心理准备。
面试开始:
1.面试官:是那要不就我们就开始,然后你要不先自己介绍一下?
我:好的,面试官您好,我是来自xxxx。目前是大三在读,大学期间我是主攻java这一方面,负责了多个项目的java后端。因此,熟悉java开发的一些基本流程,和java的一些基础知识。比如说java的集合,IO流,一些。面向对象编程还熟练掌握一些java的一些框架,比如说spring...。
2.面试官:好的。当你在大学期间的话,那你java是学了多久?
3.面试官:你们上课的时候,上学期也专门做了一些项目。我看是的,你的简历里面也写了,有一个理想API,然后一个是点评的。那你能找一个你比较熟悉的,然后讲一下这个项目?
我:大概讲了一下技术的选型和项目的架构,提到了nginx部署前端项目,这里就给自己挖了坑。
4,面试官:就是NG的这块,NG的话这块儿,你是他是怎么他来怎么样做的负载均衡这块具体的,比如说它的关键的一些配置是如何配的,你能大概举例一下,说明一下吗?
我:心里有点慌,因为我基本忘记了怎么配置的了,也没太复习这一块(面试官想看一下是不是我自己部署的)。
5,面试官:那NG里边都有哪些呢?就是关键的配置项就是说。你怎么定义你的服务,然后他的服务,然后就是你下边还有哪些个路由段,这些都有,哪些关键词,这个对应一个配置的这些关键词之间的关系是什么呢?
我:额...憋了半天憋不出来了。
6.面试官:那我再问一个问题,我看你那边写了API这块儿就是相当于要防止恶意调用。然后有一些个签名算法,这个算法是怎么个保证不被恶意调用的?
7.面试官:AK和SK比如说我不同的用户,他们怎么区分呢?还是不需要区分的?
我:AK和SK,不同的用户是不同的
8.面试官:那就是说那客户在调你这个接口的时候,他在这之前就已经要拿到你这个AK了,是吧?
我:注册时分配
9.面试官:假如说我是比如说我窃取了A用户的这个信息的话,比如说我拦截了他的请求。对,然后我就模拟他的请求,然后发给给你这个服务端服务器这种情况下,就是会有问题吗?会目前的这个系统里面会处理吗?
比如说我抓取到他的报文头了,把他那个报文里边的请求的内容稍微改一改。比如说他原来调的是你的这个什么A接口,然后,我调一调参数,我可能请求了个B接口,或者说B接口资源的请求。那我就改一下内容,然后我再发给你的项目。
我:当时我强调了黑白名单,非本机ip无法访问接口。
(之后又感觉这么回答是不是好些?这里是不可以的,用户注册时就可以拿到ak,再通过签名认证算法与数据库中的sk进行比对。只能通过我的平台进行一个调用,即使拦截了也无法通过签名认证。)
这里应该怎么回答好一些?大佬们可以说一下自己的想法。
10.面试官:对,就这个意思就是他必须登录到你的平台上面,然后选择web端页面,然后调用对吧?
可是有一个点,你的web服务器对外对客户来说,他其实就是个浏览器,对吧?
如果是这样的话,客户其实是可以从任意一个IP上面访问你的这个外部服务的对吧?
它可以在任何地点去登录你的平台,对吧?所以它的IP其实是你没有办法去限制的。
我:是,但是在进行SDK调用的时候,我是统一了调用的那个地址的。就是将那个调用的一个IP地址是统一为我的一个我服务器的一个ip。
面试官:只不过是这么说,就是我大概明白,我知道你的想法就是我。但是我感觉你这个情况的话,应该是限制不了他从外部去模拟一个或者构造一个请求去访问你的服务器。因为那个时候还没有经过你的那个平台。
我:会去看看?内心真的不太理解面试官意思。有大佬能给解释一下吗?
11.面试官:好的,再问你一下java一些的东西,就是java这块儿的话,你比较熟悉的就不是说你在项目中用的比较多的,是什么样的一些个功能能力呢?
我:(内心os:不知道怎么回答)用的比较多的是。比较多的,有那个。集合肯定是用的最多的。集合肯定带有泛型,泛型,还有一些基本数据类型。Spring。比如说我们在一些判空的时候,都会用到那个string的equals方法。然后。java的一种集成知识,还有用到有时候会利用到一些反射获取。我去。获取具体的一些类的一些方法,对。有还有IO流读取一些。
12.面试官:那我就问一下,关于java类和接口这块,他们如果能。介绍一下就是java类和接口这块的一些关系和这些了解的知识点?
13.那我再问你一个东西,就是比如说我们在一个类里边,然后有一个静态代码块,然后还有它的构造方法。那这两个地方的代码是实现的消耗顺序是什么样的东西?
