2018-07-05日2次面试

在现在这家公司待了有1年半的时间了,感觉自己过得太安逸了,对现在外面的技术栈有点追不上了.

前些天在拉钩投了几份简历,然后约了今天下午,请了半天年假过来见见世面.

第一家公司远浮物流 进去写了个人信息,在拉钩收我简历的面试官请假了,所以安排的另外一个面试官

我现在在职的这家公司是搞物流,然后面试的这家也是搞物流,圈子也比较小,所以当我说出我是xxxx公司时,面试官问了我一些xxx公司的状况,还有领导的.这让我感到有点意外,还问了我项目组之前的2个离职员工的问我认不认识.真是可怕啊

不过面试倒是很轻松愉快

   问的都是一些业务方面的东西,技术层面几乎没有问了

    1,怎么防止前端提交数据时重复提交的问题,按业务需求   当用户点击提交数据到后端时,运单号也是在后端生成的,因为用户手滑多点了几个,这个时候会出现重复提交的问题

        根据user的唯一标识,加上传入的参数得到传入redis里面,如果用户手滑出现了并发的请求,都会被redis拦截下来,只有一个可以成功.

然后接着又问,前端可以批量提交的数据,我就是说运单号用点击事件生成,不生成运单号不让提交,面试官感觉不满意额

现在想来完全可以用刚才的方式,就算批量提交出现重复的数据,但是我可以把批量的数据进行分组,然后加上user唯一标识进行拦截也是可以的

    2,出库和入库的问题,运单下面有10个物品,2个车进行装货,几个人同时对个这个单号进行出库,出库数量必须是准确的

    根据运单号作为key存入redis里,然后第一个人对其进行出库,可能只是出库了5件,这时第二个人同时也点击了就只能等待第一个人操作完成才能出库后面的5件商品,感觉这样回答对操作人员体验很不友好,

    然后又接着问,我在你出库的同时可能这个运单号还会入库

当时我就懵了 后来回想起来其实可以用redis的list数据结构,做队列的出库入库,以运单号作为key入库和出库redis足以支撑这样的并发请求

3,问了shiro

    很早之前做自己的项目时有用到过shiro,后来工作后就没再用过,就回答shiro是通过filter进行拦截,然后可以在shiro配置文件中filter节点来控制权限的入口,也可以在jsp页面控制到按钮级别的权限.太久没用了很多东西都忘记了

4,权限控制,a用户对应的角色有收款的权限,但是现在我想把a用户收款的权限移除掉

    可以给a单独的设立权限,不但是角色对应权限还可以是个人对权限,那么既然a对应的角色有收款的权限了,那么可以给a单独设立没收收款权限的,并在这条数据上标记不可用状态即可,之后查询a的所有权限会发现有2条收款的权限,并且有一条的修改时间是最新的,而且被标记为不可用的状态的.sql根据时间排序然后去重即可

然后还问了一些其他问题忘记了,总体感觉面的还蛮不错的,有一些问题回感觉回到不是特别好.面试官笑嘻嘻的走后.hr来了和我谈薪资,开出的薪资跟我现在这家公司差不多,我有点接受不了,就算能否往上提一点,hr出去又回来说薪资往上可以再加1k,但是跟我预期的还是低了.我想了一下自降2K,如果可以达到这个数字话那就成,hr说明天会给答复的 然后我就走了

第二家公司上海大岂网络科技有限公司

    工作环境蛮不错.

    来了就开始做面试题,一些简单题目做完后先是架构师面的

    1,分布式锁

        就举列我们项目的回款业务,用redis做锁 , 面试官反问如果你业务逻辑或是插入数据库出错了你这个不就成死锁了.我说可以用try,catch,finally

你在unlock的时因为网路原因在finally抛出这个异常怎么办,也会成死锁的.我就说在开始的上锁的时候给他在加上过期时间就可以了.虽然他没有问道关于set k,v,expire不是原子性的问题,

    2,班级表和学生表,学生表通过班级id外键关联,查出每个班级考试分数前5的学生.

        这个类似的需求我以前写过sql,但是昨天写不出来,没有电脑操作感觉脑子没转出来

    3,a,b两个用户在页面上对一个数据(row)同一时间读取,不同的时间修改进行修改:a将row.name修改为张三,并进行了提交,b因为接了个电话回来把row.remark改为嘻嘻嘻哈哈哈,并提交. 这个时候b的row.name还是以前的值.所以不能让b提交成功

        可以用乐观锁版本号方案 a,b用户对数据row进行读取 这个时候row.version=0,当a修改了row.name时,将当前版本拿去匹配即可:update table set name=伟哥 ,version=row.version+1 where id=row.id and version=row.version,这个时候b进行提交的时候row.version还是0,就会出现更新失败的

    4,springboot,springcloud

        我只写过demo,已经过去很久了,忘的差不多,回答的不怎样,这家公司是基于此套架构的

   5,spring注入对象的几种方式

        xml配置对象的class和id,然后注解形式,结果面试官问我还有其他方式吗....不知道

    还有一些问题忘记了,回答的不怎么好.原本以为面试官上去了就让人事找个理由把我打发走的,结果来了一个cto来面我

    1,用户登陆的流程

        用户填入账户和密码发送请求到后端,后端验证其账户和密码,匹配的存入session,不匹配打回去

    2,浏览器怎么和服务器保持联系,就刚才用户登陆成功的列子来说

        用户登陆成功,当我getsession的时候服务端将客户端传入cookie.sessionid和当前session进行绑定,这样就保持联系来了

    3,quartz和liunx的job区别

        不知道liunx的job是什么????

    cto问的问题都蛮简单的,聊的还比较愉快

    接下来人事的小哥过来和我聊的半天,说这个公司前景啊什么,感觉蛮不错..这个公司时每个月最后一天发工资的 6月份的工资6月30发这操作真是6666啊

不过个人感觉没啥希望 开的工资比较高,一面的技术方面回答的不怎样,而且这个职位貌似只招一个,我看到了今天来访表上有7个人是来面试的.应该是和这7个人竞争一个岗位.所以被录取的希望不大.不过人事还是加了微信,通过不通过都会通知到一下

 

这2次面试面的都不怎么好,没准备充分是最大的原因.而且去面试的路上真的好紧张,开始面试就放松了.面试真的好累啊,突然就不想去面

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值