10月28,K神开课讲数据科学,你来吗?


一亩三分地论坛

 找回密码
 获取更多干活,快来注册
Babeltime游戏工作室招工程师、美术和策划
Tubi TV招安卓、前端和机器学习工程师
把贵司招聘信息放这里
查看: 2478|回复: 19
收起左侧

新鲜谷歌面经 phone

[复制链接] |试试Instant~ |关注本帖
mark60616 发表于 2014-2-8 04:53:49 | 显示全部楼层 |阅读模式

2014(1-3月) 码农类 硕士 全职@Google - 网上海投 - 技术电面 |Other

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

您需要 登录 才可以下载或查看,没有帐号?获取更多干活,快来注册

x
刚刚面完,浓厚英国腔, 给我整懵了, 幸亏前一阵看福尔摩斯,不过挺起来还是比较困难, 人很nice, 超nice。
1.介绍项目,一个技术点,问半天,我跟他纠缠了半天,我最后告诉他, 我们做的跟你想的不是一回事,他无语了(确实不是一回事),他理解错了。.鏈枃鍘熷垱鑷1point3acres璁哄潧
2.3个箱子3种球,lable全错, 每个箱子顶多 拿一次,如何将lable贴对! 开始懵了,后来才想起来 题目说lable guranteeed to be incorrect, 这才顿时发现,简单的一逼。
3.过程语言vs面向对象 介绍下区别。
4.多态是什么,好处是?
5.4种修饰符,如何使用?
6.private 机制.1point3acres缃
7.java 传值还是引用? 这个众说纷纭,望大神解答!
8.hashtable实现
然后告诉我下周三出结果,请问是不是 就意味着把我拒了啊,因为我看地里很多人 都说 马上就2面啊。。请教各位大神!. From 1point 3acres bbs
居然一个算法没有给我出!!!!!!!!!!!
god bless me!
. 1point3acres.com/bbs

评分

1

查看全部评分

本帖被以下淘专辑推荐:

eaufavor 发表于 2014-2-21 02:53:00 | 显示全部楼层
没搞清pass什么东西就讨论传值传引用不科学
.1point3acres缃
还是stackoverflow 总结的好 "Primitives are passed by value, and object references are passed by value. The objects themselves are never passed to a method". from: 1point3acres.com/bbs
回复 支持 1 反对 0

使用道具 举报

lhn9021 发表于 2014-2-8 05:30:02 | 显示全部楼层
没记错的话 object call by reference, primitives call by value
回复 支持 反对

使用道具 举报

 楼主| mark60616 发表于 2014-2-8 07:33:35 | 显示全部楼层

你说的没错 从结果上看是这样
但还有一种说法是 统一穿value的拷贝,只不过 这个所谓value的定义不一样,原始类型是 值本身,ADT 传的是句柄。。求各位大神解答!
回复 支持 反对

使用道具 举报

weiguo 发表于 2014-2-9 04:42:51 | 显示全部楼层
mark60616 发表于 2014-2-7 18:33
你说的没错 从结果上看是这样
但还有一种说法是 统一穿value的拷贝,只不过 这个所谓value的定义不一样 ...

JAVA 应该传argument都是copy by value. 没有传reference这种方式的。传object也就是只是传的句柄。会在memory再复制一个句柄,只是里面放的还是指向原来那个object的地址。
请问lz一共电面了多久时间啊。
&&good luck~
回复 支持 反对

使用道具 举报

nerozeng 发表于 2014-2-9 05:00:27 | 显示全部楼层
java应该都是传的value,我记得head first in java上讲到过这点。
回复 支持 反对

使用道具 举报

 楼主| mark60616 发表于 2014-2-10 02:28:59 | 显示全部楼层
weiguo 发表于 2014-2-9 04:42
JAVA 应该传argument都是copy by value. 没有传reference这种方式的。传object也就是只是传的句柄。会在m ...

45分钟 他介绍了自己介绍了5分钟 我介绍自己的项目5分钟 剩下的时间问了八道题。压力蛮大的。希望有好结果吧
回复 支持 反对

使用道具 举报

 楼主| mark60616 发表于 2014-2-10 02:31:01 | 显示全部楼层
nerozeng 发表于 2014-2-9 05:00 . 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
java应该都是传的value,我记得head first in java上讲到过这点。

嗯 我也看到过这个说法,不知道哪个对,话说纠结这个 是不是真的有很大的意义呢?
回复 支持 反对

使用道具 举报

ykcland 发表于 2014-2-10 09:30:34 | 显示全部楼层
thinking in java 里也是说只传值
回复 支持 反对

使用道具 举报

头像被屏蔽
whuwangyi 发表于 2014-2-10 11:40:26 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

wzf1943 发表于 2014-2-10 11:46:48 | 显示全部楼层
O'Reilly's Java in a Nutshell by David Flanagan (see Resources) puts it best: "Java manipulates objects 'by reference,' but it passes object references to methods 'by value.'"
回复 支持 反对

使用道具 举报

nerozeng 发表于 2014-2-11 12:09:05 | 显示全部楼层
mark60616 发表于 2014-2-10 02:31
嗯 我也看到过这个说法,不知道哪个对,话说纠结这个 是不是真的有很大的意义呢?
.鐣欏璁哄潧-涓浜-涓夊垎鍦
主要是传object的时候这个值实际上是个类似引用的东西,感觉有点绕。。。我个人觉得记住就行了,深究的话意义可能不是特别大。。。
回复 支持 反对

使用道具 举报

Lisepher 发表于 2014-2-15 01:56:08 | 显示全部楼层
java传object就类似于C++的pass pointer to object吧
回复 支持 反对

使用道具 举报

analog123 发表于 2014-2-15 14:30:12 | 显示全部楼层
java应该一律都是传值的,和C++里面可以传引用的区别可以用一个例子来说明:
. From 1point 3acres bbs
//java
public void replace(A a) {-google 1point3acres
       A newInstance = new A();
       a = newInstance;
}

这种情况下如果我们在main函数里面创建一个A的实例a,然后把它传进replace()里面,即使replace()里面给a重新赋值了一个新的class A的object,实际的a指向的object也不会改变,因为java里面都是传值的,replace()里面实际被操作的是a的一个副本。

//C++
void replace(A*& a) {
       A* newInstance = new A;
       a = newInstance;
}

C++的话你定义一个这样的replace(),把a传进这个方法后实际的a指向的object也会变成newInstance,因为我们传了个A类型的指针的引用,所以replace()里面实际上再对a直接进行操作。

话说我感觉C++能传引用这点还是很爽的。。最近用java刷题有好些题如果能传引用的话会特别舒服。。
回复 支持 反对

使用道具 举报

mhbkb 发表于 2014-2-20 23:44:55 | 显示全部楼层
100% pass by value
回复 支持 反对

使用道具 举报

jiebour 发表于 2015-7-27 13:40:55 | 显示全部楼层
                Hashtable<Integer, Integer> h = new Hashtable<Integer, Integer>();. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
                h.put(1, 2);. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
                h.put(2, 3);
                replace(h);
                System.out.println(h.get(2));//这里输出了4!!!


         public static void replace(Hashtable<Integer, Integer> h){
                 h.put(2, 4);
         }

.鐣欏璁哄潧-涓浜-涓夊垎鍦
不是说传的是value嘛?谁来解释下。。。。。
回复 支持 反对

使用道具 举报

Atomic123 发表于 2015-7-31 12:20:10 | 显示全部楼层
java is pass by value, for self-defined objects, java will pass the copy of the reference.
回复 支持 反对

使用道具 举报

mmliu 发表于 2015-7-31 17:44:36 | 显示全部楼层
nerozeng 发表于 2014-2-11 12:09. 1point 3acres 璁哄潧
主要是传object的时候这个值实际上是个类似引用的东西,感觉有点绕。。。我个人觉得记住就行了,深究的话 ...
. from: 1point3acres.com/bbs
这个意义还是挺大的

比如我们经常做的 链表题,给了你一个 header 作为头节点,然后把这个 header 传到了一个函数里,函数里面我们改变了head的值,例如不断循环知道指到空:
  1. void length(ListNode header){
  2.   int len = 0;

  3.   while(header != null){
  4.     header = head.next;. more info on 1point3acres.com
  5.     len++;
  6.   }

  7.   return len;
  8. }
复制代码
在调用了这个length() 方法的函数里,我们还能放心的用 header 吗? 它是不是还是指到链表头部?

答案是肯定的,我们在外面还是能放心的使用header, 因为java里面,指向对象的变量实际上类似指针,header作为一个指向内存的指针,在作为参数传递时,我们实际传递的是 header 这个指针的拷贝,我们在调用的函数里修改了拷贝,并不影响原header的指向。
回复 支持 反对

使用道具 举报

mmliu 发表于 2015-7-31 17:55:57 | 显示全部楼层
三个箱子,三种球的没弄太懂

比如箱子实际顺序应该是:1,2,3
那贴错的有两种:2,3,1 或者 3,1,2

反过来也是,贴错成1,2,3-google 1point3acres
对应成正确的可能是2,3,1 或者 3, 1, 2

所以结果是不唯一么
回复 支持 反对

使用道具 举报

wenqiang88 发表于 2015-7-31 23:52:59 | 显示全部楼层
Java应该是pass by value
回复 支持 反对

使用道具 举报

本版积分规则

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-9-21 05:45

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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