回复: 13
跳转到指定楼层
上一主题 下一主题
收起左侧

google面经

全局:

2016(1-3月) 码农类General 硕士 全职@google - 猎头 - 技术电面  | | Fail | 在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
时间45分钟,三道题。
第一道, code review,问以下代码有什么问题:
public class Ad {
  private String adText;
  private String keyword;
  private int bid;
  private Account account;

  public Ad(String adText, String keyword, int bid, Account account) {
    this.adText = adText;
    this.keyword = keyword;
    this.bid = bid;
    this.account = account;
  }

  /**
   * A user has clicked on this ad.  Bill the appropriate account.
   */
  public void handleClick() {
    switch (account.getType()) {
      case Acco
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
backend 进行query并返回结果,问怎么处理短时间类大量相似的search request。
class Backend {
  static Response query(Request request) { … }
}

class Frontend {


}


第三题,算法,一个sort array,给一个数字,发现这个数字第一次出现的index。

总之。。。估计前两道题答得好的话应该不会出现最后一道算法,题还很难的说。。。。反正我一道也不会╮(╯_╰)╭

评分

参与人数 1大米 +5 收起 理由
reality + 5 感谢分享!

查看全部评分


上一篇:A家OA2(11.27due) +Maze如何pass全部test case?
下一篇:Amazon OA题Find path in maze解法,复杂度,Followup集中讨论
推荐
munez26 2015-11-28 07:18:24 | 只看该作者
全局:
第一题我觉得应该给用户反馈,是否成功bill? 给一些合适的反馈。尤其是它用的是async call,这个点击提交之后,这个步就算完了。除非在async call里面解决这个问题。但在async处理是否恰当值得商榷。求继续讨论
回复

使用道具 举报

推荐
yjfox 2015-12-3 11:28:47 | 只看该作者
全局:
七夜雪 发表于 2015-12-3 06:40
同意!

只是不明白的是为什么async call不需要担心race conditions啊.async我理解是目前这个thread不 ...

因为一般这么标注了,应该不关乎这段代码的问题,不过现在无法跟面试官交流没有context无法确定
async是为了转移heavy的操作,一般不这么做的话这类操作会阻塞住现在运行的thread,所以如果这里还要check race condition的话就失去异步的意义了。

不过请教了下在职senior后 说 这段代码架构就有问题,不符合production中的ood。
我之前提的问题反而不是那么明显

比如, handleClick可以放到account中,get rid of switch
回复

使用道具 举报

推荐
七夜雪 2015-12-3 06:40:53 | 只看该作者
全局:
yjfox 发表于 2015-12-1 15:19
个人认为,代码有问题的地方是PREPAID这个block里,
其他几个case都是async, 异步处理,不用担心race con ...

同意!

只是不明白的是为什么async call不需要担心race conditions啊.async我理解是目前这个thread不会执行和等待method的运行,但是如果Biller和EmailUtil没写好的话在它们的thread也会有race condition吧。

还是说我们只看Ad这个class的code...Biller和EmailUtil没写好不关Ad的事。。。
回复

使用道具 举报

🔗
reality 2015-11-28 06:38:50 | 只看该作者
全局:
第一题我感觉是不是ad属性里有account不大好。。handleClick(Account account) 合适些?求讨论。
回复

使用道具 举报

🔗
jkingxt 2015-11-28 14:55:54 | 只看该作者
全局:
我觉得第一题可能是多线程的问题?猜的
回复

使用道具 举报

🔗
pcHC 2015-11-28 15:39:08 | 只看该作者
全局:
第一题感觉是Account 不是thread safe?可能在prepaid的那里Set balance出问题?不太确定

补充内容 (2015-11-28 15:40):
第二题的话,我觉得可以用一个LRU存query?
回复

使用道具 举报

🔗
hhzzk 2015-11-28 15:44:15 | 只看该作者
全局:
第二题用缓存?
回复

使用道具 举报

🔗
bobzhang2004 2015-12-1 11:19:01 | 只看该作者
全局:
第二题是在前端写一个LRU Cache吧

补充内容 (2015-12-1 11:19):
这题目确实在面试时很难想啊,面试官有什么hint吗?
回复

使用道具 举报

🔗
yjfox 2015-12-1 15:19:05 | 只看该作者
全局:
个人认为,代码有问题的地方是PREPAID这个block里,
其他几个case都是async, 异步处理,不用担心race condition。但是这个prepaid是直接setBalance,没有任何保护,显然需要问面试官这个function具体怎么写的,是否线程安全

可能因为lz是跳槽所以问的都是比较接近实际工作
回复

使用道具 举报

🔗
D调的华丽 2015-12-3 04:24:05 | 只看该作者
全局:
yjfox 发表于 2015-12-1 15:19
个人认为,代码有问题的地方是PREPAID这个block里,
其他几个case都是async, 异步处理,不用担心race con ...

lz说的很有道理诶
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表