请教 Java 面试题

2020-03-25 18:32:43 +08:00
 zxc1234

1.java 内存模型为什么要有 工作内存和主内存

2.java new 一个对象的时候,什么情况下会发生 GC

如果新生代和老年代没有满呢

3.jdk 8 去掉方法区用 元数据 代替,是为什么?

4.dubbo 调用一个服务的详细过程

4836 次点击
所在节点    程序员
48 条回复
hantsy
2020-03-25 18:38:06 +08:00
这是 P8 的面试吗?
hantsy
2020-03-25 18:38:52 +08:00
内存模型,虚拟机,GC 全上了。
luckyrayyy
2020-03-25 18:39:08 +08:00
1. cpu 都有三级缓存啊,速度更快,还有寄存器。
2. gc root 不可达该对象的时候。满了就 full gc,没满就 minor gc
3. 方法区是一个概念吧,虽然永久代去除了,不能说方法区没有了。不知道为什么... HotSpot 觉得实现方式不合适?
zxc1234
2020-03-25 18:44:38 +08:00
@hantsy p8 问这些????
hantsy
2020-03-25 18:55:44 +08:00
这种面试的公司有病。。。
cxshun
2020-03-25 19:00:40 +08:00
1 、为了优化啊,每次都从主内存读,肯定性能不大行
2 、gc root 不可达的情况下。
新生代的 eden 区未满不会有 GC,只有 eden 区快要满才,会发生 ygc,并且 s0,s1 交换
3 、没有去年方法区,去掉永久代,改为元数据区。这样是为了突破 JVM 的内存限制,直接使用物理内存。
4 、dubbo 调用会先从 zookeeper 拉取 producer 的地址列表 ,然后根据负载均衡算法挑选一下进行调用。他们的协议是用自己的。我用的不多,只知道大概原理。
zxc1234
2020-03-25 22:16:35 +08:00
@cxshun 第四个 如果负载均衡选到了挂掉的机器,怎么办
hangszhang
2020-03-25 22:44:47 +08:00
@zxc1234 挂了的话 zk 会知道
y0bcn
2020-03-25 22:52:55 +08:00
钓鱼贴?
varrily
2020-03-25 23:23:57 +08:00
4.dubbo 调用一个服务的详细过程

spi, 动态代理,序列化,netty,nio,zk,选举,cap,重试机制

java 的东西,深究起来是个无底洞,回答上关键字就行了。
ysjiang4869
2020-03-26 00:04:31 +08:00
阿里不都是这么问的么
skypyb
2020-03-26 07:15:07 +08:00
额, 我当时一年经验去面试,好像也是问的这些东西
java 圈子好像就是这样的。 (摊手
人均百万并发、 面试问就是多线程、GC 、微服务、分布式。 哈哈
ixx
2020-03-26 09:28:26 +08:00
@cxshun #6 我猜你用五笔
cxshun
2020-03-26 09:58:51 +08:00
@zxc1234 #7 对的,8 楼的兄弟回答了哈。由 zk 去维持心跳,挂了的会被剔除的。当然,客户端也会有相应的重试。因为客户端在拉取 provider 列表的时候,会保存在本地一段时间,如果此时某台机器不可用,客户端并不知道,这里调用就会失败,客户端会发起重试。
@ixx #13 哈哈,是啊。是因为我把”去掉“打成”去年“了是吧
zxCoder
2020-03-26 10:30:43 +08:00
@skypyb 有没有问得比较简单的,想学一下,不想学 java 了
sagaxu
2020-03-26 11:22:36 +08:00
虽然没用,也不体现能力,但是就是爱问,毕竟很多面试官没有能力出题,只能网上找宝典问,久而久之,大家都觉得这些很重要了
zxc1234
2020-03-26 11:23:14 +08:00
@cxshun
@varrily
@hangszhang
@cxshun
@luckyrayyy 请问下 第 5 点怎么处理呢 真诚求答 多谢~
zxc1234
2020-03-26 11:27:43 +08:00
个人觉得问这些没问题,要不然筛选候选人呢,怎么面试比较好呢
zxc1234
2020-03-26 11:28:11 +08:00
@y0bcn 为什么这么觉得?????
luckyrayyy
2020-03-26 11:39:01 +08:00
我也不太清楚第五点问的是什么,推测只是考察解决问题的思路?
既然限定了没有跨机房,还是物理层的原因,那软件层面是处理不了故障了,只能尽量减少损失...说说怎么做日常的数据备份,通电之后怎么清理脏数据,怎么做数据恢复,怎么保证跟其他地方的数据一致性?跟其他机房有数据同步的话,会不会一开机就有这段时间攒下的数据涌进来?怎么避免类似缓存雪崩一样的问题?

展开能说的就太多了,每一个点都有可能深问你,仅供参考。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/656150

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX