水滴筹面试

一、问:都做过哪些项目,用了什么?

  答:用Servlet和Hibernate做过一个简单的登录界面;用SpringMVC  Mybatis  Redis做过一个宠物商店的系统;

二、问:那你用过Hibernage和Mybatis,那你从你具体使用中感觉到二者的不同是什么?

  答:两者都能屏蔽jdbc api的繁琐操作,但是呢,Hibernate是全自动ORM映射,而Mybatis是半自动的,Hibernate会将所有的SQL操作写好封装 ,而Mybatis则可以自己使用动态SQL进行灵活书写MYSQL代码。(忘记说Hibernate相对较快;Mybatis相对较慢了);

三、问:你说你做过宠物商店的系统,那如果有库存问题,减库存是在什么时候?添加到购物车之后还是结算的时候?

  答:结算的时候,因为添加到 购物车并没有真正将库存减少,如果在添加到购物车 时候就减库存,那其他用户购买的时候就会出现库存不足现象,可是实际上库存仍然有。

四、问:那如果库存有10件,一个人添加到购物车9件,还有一件,另外一个人也要买9件,怎么控制才能不出问题?

  答:可以使用乐观锁机制,在数据库添加一个version字段,通过每次取出货物使用货物后将该字段加一,当存入时如果存入version的数字大于数据库中的version才能插入。

五、问:那既然说到了乐观锁,你说一下乐观锁和悲观锁的区别

  答:悲观锁悲观的认为一个资源同时会有许多线程来调用,是将一个资源只分配给一个线程,当一个线程占有该资源的时候,会给该资源上互斥锁,其他的线程就无法在访问该资源,类似于我们java api用过的sychonized;

    乐观锁就是乐观的认为一次只有一个线程来调用资源,具体用法我上面说过了。

  问:乐观锁只有这一种实现?

  答:我好像就见过这一种,没学过第二种。(实际上第二种是CAS机制进行乐观锁实现,原理如下:CAS是乐观锁技术,当多个线程尝试使用CAS同时更新同一个变量时,只有其中一个线程能更新变量的值,而其它线程都失败,失败的线程并不会被挂起,而是被告知这次竞争中失败,并可以再次尝试。   

    CAS 操作中包含三个操作数 —— 需要读写的内存位置(V)、进行比较的预期原值(A)和拟写入的新值(B)。如果内存位置V的值与预期原值A相匹配,那么处理器会自动将该位置值更新为新值B。否则处理器不做任何操作。无论哪种情况,它都会在 CAS 指令之前返回该位置的值。(在 CAS 的一些特殊情况下将仅返回 CAS 是否成功,而不提取当前值。)CAS 有效地说明了“ 我认为位置 V 应该包含值 A;如果包含该值,则将 B 放到这个位置;否则,不要更改该位置,只告诉我这个位置现在的值即可。 ”这其实和乐观锁的冲突检查+数据更新的原理是一样的。JDK的一些无锁的并发容器是基于CAS做的(如:ConcurrentHashMap))https://blog.csdn.net/qq_24489717/article/details/78556172

乐观锁CAS自旋缺点:

①  乐观锁只能保证一个共享变量的原子操作。如上例子,自旋过程中只能保证value变量的原子性,这时如果多一个或几个变量,乐观锁将变得力不从心,但互斥锁能轻易解决,不管对象数量多少及对象颗粒度大小。

②  长时间自旋可能导致开销大。假如CAS长时间不成功而一直自旋,会给CPU带来很大的开销。

③  ABA问题。CAS的核心思想是通过比对内存值与预期值是否一样而判断内存值是否被改过,但这个判断逻辑不严谨,假如内存值原来是A,后来被一条线程改为B,最后又被改成了A,则CAS认为此内存值并没有发生改变,但实际上是有被其他线程改过的,这种情况对依赖过程值的情景的运算结果影响很大。解决的思路是引入版本号,每次变量更新都把版本号加一。

六、问:好吧,那你学过数据结构吧?说一下什么是二叉树吧

  答:二叉树是最多有两个分支节点的树,左节点叫左子树,右节点叫右子树。

  问:那你说一下怎么实现二叉树倒置?

  答:不好意思,我不太会这个,我会二叉树的先序后序中序遍历。。。。

    (二叉树倒置:https://www.cnblogs.com/grandyang/p/5172838.html)

七、问:多线程学过吧?你说一下wait和sleep的区别?

  答:wait是object类下的方法,sleep是Thread类下的方法,wait线程后,放弃锁资源,只有notify和notifyall方法可以将其唤醒;sleep可以将其中设置参数,参数为毫秒时间,到时间后会自动唤醒。

  问:那有没有什么方法可以打断sleep方法?

  答;我记得有个interrupt的方法可以打断sleep方法;

  问:那这个interrupt放在什么位置来打断这个sleep方法?

  答:不怎么用过,只是听说过。https://www.cnblogs.com/carmanloneliness/p/3516405.html

八、问:想一下ip地址用什么类型存比较好?

  答:使用String。

  问:还有更好的么?

  答:用hashmap,因为一个域名当做键,用ip当值,可以一一对应容易查找;

  问:我只想存ip地址呢?

  答:如果只是存储的话可以使用Linkedlist,因为使用了链式结构,可以快速存取。

  问:还有么?

  答:想不出来了。。。

  问:int多少字节?long多少字节?

  答:int32位,4字节;long 64位,8字节;

  问:ip地址多少位?

  答:32位

  问:分几段

  答:4段

  问:那你想一下那什么存?

  答:是int么?但是里面的冒号怎么办?

  问:冒号有意义么?

  答:没有。。

  问:那你再想想怎么用int存一个ip网段?

  答:用最后一段从255-0,之后转化成二进制

  问:你见过ip地址最后是0和255的么?

  答:没有。。。

  问:为啥没见过?

  答:因为。。。

原文地址:https://www.cnblogs.com/television/p/9152590.html

时间: 2024-08-30 15:13:54

水滴筹面试的相关文章

【转帖】水滴筹原来不是慈善公益组织 我们都搞错了?

水滴筹原来不是慈善公益组织 我们都搞错了? https://www.cnbeta.com/articles/tech/919095.htm 拿病人的病痛来卖惨 夺人眼球 卖保险 中国从来不缺这种吃人血馒头的人. 水滴筹正让网络互助行业遭遇信任危机.近期,水滴筹因被曝光业务员“扫楼筹款”,被公众质疑“公益变生意”.5日晚,水滴公司创始人兼CEO沈鹏发公开信承认管理漏洞并致歉,表示坚持向善的初心以及免费救助大病患者的初衷未变.同时也表达了个人困惑,认为网友将水滴筹理解成慈善公益组织是一种误解. 水滴

水滴筹:全年超4亿人在平台献出爱心 筹集救助款超130亿

网易科技讯 12 月 31 日消息,近日水滴筹公布了年度爱心数据,数据显示,2019 年超过 4 亿人次在平台献出爱心,为困难大病家庭累计筹集救助款超过 130 亿. 水滴筹年度爱心数据显示,广东.浙江.江苏.山东.四川.河南.福建.湖南.河北.北京这十个省份是最乐善好施的省份,而以城市维度,北京.深圳.重庆.上海.广州.东莞.天津.成都.杭州.西安.泉州.苏州.佛山.贵阳.南京.临沂.惠州.保定.合肥.江门这二十个城市爱心救助人次排在前列. 水滴筹数据还显示,36 岁-59 岁的中年群体占平台

区块链如何赋能网络互助行业?来自众托帮+区块链的应用、车车助+AutoChain纷享车链应用

一.网络互助发展 1.发展历程 网络互助模式由抗癌公社(创始人张马丁先生)于2011年首创,截止目前,其发展大致可以分为3个阶段: 第一阶段:2011-2015年 这一阶段中的网络互助由几个特点,一是平台少,知名的仅有抗癌公社(2011).E互助(2014).夸客联盟(2014).壁虎互助(2015).全民保镖(2015)等寥寥数家:二是平台会员规模小,平台普遍的会员规模都在20万左右:三是互助案例少,各平台的互助案例较少,整个行业的社会价值尚未充分体现:四是关注度低,缺乏明星创业者,资本尚未大

高血压认知3

最近在空间看到自己的助班在发水滴筹,他父亲因高血压导致的脑出血,唉,为学长父亲祈祷希望早日战胜病魔!!!让我不禁又想到了自己的爷爷和奶奶,他们也有高血压,我爷爷也出过这种事因高血压导致的脑出血,幸亏抢救及时,感谢上帝,感谢佛祖,感谢耶稣!!爷爷的命总算捡回来一条,可是落下了一身疾病,最为严重的就是因高血压导致的肾功能严重受损(尿毒症),需要靠血液透析来维持生命,每周要去医院做两次透析....希望爷爷奶奶爸爸妈妈凡凡爸爸妈妈亲戚朋友身体健康!!祈祷 浏览了些资料,也算是对这常见高血压有了些许认识,

面试宝典_Python.常规算法.0001.在圆圈和框框分别填入1~8数字各一次?

面试题目: 解题思路: 1. 总共8个位置,只要2个圈圈之差等于框框即可,注意倒数第3个数还要和第1个数字运算才算结束,所以可以先生成排列组合然后再通过分片偏移来获取符合条件的结果. 具体实现: #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date    : 2016-12-24 12:19:01 # @Author  : 李满满 ([email protected]) # @Link    : http://xmdevops.blog.51

Web前端面试题目及答案汇总

前端新人在面试前都比较焦虑,担心回答不上面试官的问题,也担心自己紧张,其实这都是心理没底的表现,今天和大家分享web前端开发常见面试题及答案,希望可以帮助即将面试的前端同学顺利通过面试. HTML/CSS部分 1.什么是盒子模型? 在网页中,一个元素占有空间的大小由几个部分构成,其中包括元素的内容(content),元素的内边距(padding),元素的边框(border),元素的外边距(margin)四个部分.这四个部分占有的空间中,有的部分可以显示相应的内容,而有的部分只用来分隔相邻的区域或

Web前端面试指导(一):写好简历是面试成功的第一步

1.1 简历的作用 简历是求职找工作的敲门砖,优秀的简历更能获取面试的机会 简历是用人单位获取你个人信息的最直接的一种方式 如果没有简历,我们的工作不知从何早起. 1.2 初次写简历存在的困境 以前从来没有写过简历,不知道从哪里写起. 简历的内容不知道写什么,本来语文就不好. 简历写好了不知道可不可以,自己也拿捏不准. 简历常见问题 1)  个人信息简介不完整,甚至连性别都没有写 2)  专业技能描述太细,排序不合理 3)  项目太多或太少,项目描述内容太少, 4)  简历雷同 a)  样式雷同

数据结构与算法 3:二叉树,遍历,创建,释放,拷贝,求高度,面试,线索树

[本文谢绝转载,原文来自http://990487026.blog.51cto.com] 树 数据结构与算法 3:二叉树,遍历,创建,释放,拷贝,求高度,面试,线索树 二叉树的创建,关系建立 二叉树的创建,关系建立2 三叉链表法 双亲链表: 二叉树的遍历 遍历的分析PPT 计算二叉树中叶子节点的数目:使用全局变量计数器 计算二叉树中叶子节点的数目:不使用全局变量计数器 无论是先序遍历,中序遍历,后序遍历,求叶子的数字都不变;因为本质都是一样的,任何一个节点都会遍历3趟 求二叉树的高度 二叉树的拷

JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结(转)

hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和学习,使自己在做项目中更加得心应手. 第一方面:开发速度的对比 就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些.Mybatis框架相对简单很容易上手,但也相对简陋些.个人觉得要用好Mybatis还是首先要先理解好Hibernate. 比起两者的开发速度,不仅仅要考虑到两者的特性及性能,更要根据项目需求