Java 面试题“变量名很长会不会影响执行效率”很难吗?

2018-09-21 09:33:48 +08:00
 yidinghe
7819 次点击
所在节点    问与答
40 条回复
yidinghe
2018-09-21 10:07:39 +08:00
@zhenghuiy 就是考虚拟机原理,不是考代码的优雅性。
jason19659
2018-09-21 10:18:41 +08:00
你反问他,那你们的代码不加密吗?
yidinghe
2018-09-21 10:39:27 +08:00
@jason19659 首先那叫混淆,其次 Java 的混淆不是针对代码而是针对字节码的。
x7395759
2018-09-21 10:47:27 +08:00
问 JVM 没必要问这个题目,直接问.java->.class 干了什么事情
LukeChien
2018-09-21 10:53:18 +08:00
反射也不影响
hanangellove
2018-09-21 11:25:33 +08:00
java 的函数调用原理是啥? 也是方法名作为 key,去全局的 map 中找到函数实现的指针地址吗?
yidinghe
2018-09-21 11:31:06 +08:00
hpeng
2018-09-21 11:57:17 +08:00
用 Java8 开启编译参数,代码里反射获取参数名应该会有影响的。不过看你问的问题,答题的人估计都不知道你想问什么。
bumz
2018-09-21 14:15:17 +08:00
完全不会

考点:Java 是编译为字节码执行
aa6563679
2018-09-21 14:16:39 +08:00
成员变量或参数变量影响一丢丢
局部变量一点都没有
uleh
2018-09-21 16:18:51 +08:00
变成字节码了还有啥变量名啊。。
除非是反射用到。。
kaedea
2018-09-21 19:03:05 +08:00
不会。问这个还不如问变量名最长能多长。
yemenchun1
2018-09-21 19:38:18 +08:00
C 的话, C 语言连好头文件以后吗, 首先编译成汇编语言, 这里面应该是不会变变量名的, 而后汇编语言转换成二进制, 这里就没有变量名什么事儿了, 执行的时候就不会影响速度. 但是编译的时候大概可能会影响速度, 要看编译器的优化程度了, 据说 Intel 自己的编译器比较牛.
xhystc
2018-09-21 19:42:51 +08:00
会,当通过反射访问参数名时,如果参数名长达几个 g 肯定会影响效率的
zwh2698
2018-09-21 22:18:02 +08:00
词法分析器的效率
bobuick
2018-09-21 22:24:08 +08:00
语言有限制,说几个 G 的变量,是什么鬼
maokabc
2018-09-22 06:06:23 +08:00
本地变量编译成 class 后都是 iload,istore,aload,astore 之类没影响,域变量这些还是有影响
lengyihan
2018-09-22 15:12:02 +08:00
会肯定会的,事物只要有变化,就肯定会产生影响。只是有些影响是可以忽略不计的。如果面试者是一个有着唯物辩证观的人,像我这样,就很为难了。题目不怎么好。
darkcode
2018-09-23 07:37:30 +08:00
@qinxi
@yidinghe
他问的是执行效率
jacklau
2021-01-14 09:59:43 +08:00
影响的是开发的效率(多敲 n 个子母),只是内存地址的代号,最终到执行阶段都是要舍弃的。

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

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

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

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

© 2021 V2EX