
1 Lateautumn 2018-09-21 09:35:11 +08:00 会吗, |
2 lz234561 2018-09-21 09:41:57 +08:00 不会 |
3 hoythan 2018-09-21 09:42:43 +08:00 不会 |
4 simonliu2018 2018-09-21 09:45:41 +08:00 那么问题来了,变量名很长很长会影响什么效率? |
5 earther01 2018-09-21 09:45:50 +08:00 java 不会,那么问题来了,python 会影响吗 |
6 Sanko 2018-09-21 09:45:55 +08:00 via Android 很长是有多长 |
7 night98 2018-09-21 09:51:09 +08:00 via Android 得看有多长,哈哈 |
8 inframe 2018-09-21 09:52:12 +08:00 via iPhone python 走字典,复杂度是 hash |
9 lht260 2018-09-21 09:53:11 +08:00 到低有多长? |
10 qinxi 2018-09-21 09:55:37 +08:00 @simonliu2018 打字效率 |
11 yidinghe OP @simonliu2018 影响打字效率啊 |
12 amon 2018-09-21 09:57:58 +08:00 效率可以忽略不计,因为编译时都会转成其它字符。 |
13 xflicker 2018-09-21 09:58:25 +08:00 不会,但是占地方啊 |
14 simonliu2018 2018-09-21 09:58:26 +08:00 语言的规范有变量长度限制说明。 |
15 shiyouming91 2018-09-21 10:00:15 +08:00 via iPhone 看虚拟机实现了...不过一般而言对类加载有微小的影响。执行的时候局部变量不会,编译的时候都换成几号变量的数字了。成员变量会微小地影响调用成员变量的方法第一次执行的时候的速度,不过靠谱的虚拟机应该会在这个时候翻译成地址偏移量,因此以后就不会影响了。无论如何等 jit 预热好了就完全不影响了 |
17 shiyouming91 2018-09-21 10:02:40 +08:00 via iPhone 楼上说的对,也会影响反射的速度 |
18 aihidao 2018-09-21 10:04:50 +08:00 via Android 再小的时间也是时间, 滑稽脸 |
19 yidinghe OP |
20 zhenghuiy 2018-09-21 10:06:29 +08:00 via iPhone 问题是这道题有什么意义么,开发的时候取名应该是在“能不能见名知意”中纠结,而不是变量名的长短吧。比较规范是参考《代码大全》变量名的取名方式,但书中写的都挺长。。日常开发应该比规范得短。(当然你要强行说考这个是为了考察对方对编译过程的理解 balabala。。是在下输了) |
22 jason19659 2018-09-21 10:18:41 +08:00 你反问他,那你们的代码不加密吗? |
23 yidinghe OP @jason19659 首先那叫混淆,其次 Java 的混淆不是针对代码而是针对字节码的。 |
24 quickma 2018-09-21 10:47:27 +08:00 问 JVM 没必要问这个题目,直接问.java->.class 干了什么事情 |
25 LukeChien 2018-09-21 10:53:18 +08:00 via Android 反射也不影响 |
26 hanangellove 2018-09-21 11:25:33 +08:00 java 的函数调用原理是啥? 也是方法名作为 key,去全局的 map 中找到函数实现的指针地址吗? |
27 yidinghe OP |
28 hpeng 2018-09-21 11:57:17 +08:00 via iPhone 用 Java8 开启编译参数,代码里反射获取参数名应该会有影响的。不过看你问的问题,答题的人估计都不知道你想问什么。 |
29 bumz 2018-09-21 14:15:17 +08:00 完全不会 考点:Java 是编译为字节码执行 |
30 aa6563679 2018-09-21 14:16:39 +08:00 via iPhone 成员变量或参数变量影响一丢丢 局部变量一点都没有 |
31 uleh 2018-09-21 16:18:51 +08:00 变成字节码了还有啥变量名啊。。 除非是反射用到。。 |
32 kaedea 2018-09-21 19:03:05 +08:00 via Android 不会。问这个还不如问变量名最长能多长。 |
33 yemenchun1 2018-09-21 19:38:18 +08:00 C 的话, C 语言连好头文件以后吗, 首先编译成汇编语言, 这里面应该是不会变变量名的, 而后汇编语言转换成二进制, 这里就没有变量名什么事儿了, 执行的时候就不会影响速度. 但是编译的时候大概可能会影响速度, 要看编译器的优化程度了, 据说 Intel 自己的编译器比较牛. |
34 xhystc 2018-09-21 19:42:51 +08:00 via Android 会,当通过反射访问参数名时,如果参数名长达几个 g 肯定会影响效率的 |
35 zwh2698 2018-09-21 22:18:02 +08:00 via Android 词法分析器的效率 |
36 bobuick 2018-09-21 22:24:08 +08:00 语言有限制,说几个 G 的变量,是什么鬼 |
37 maokabc 2018-09-22 06:06:23 +08:00 via Android 本地变量编译成 class 后都是 iload,istore,aload,astore 之类没影响,域变量这些还是有影响 |
38 lengyihan 2018-09-22 15:12:02 +08:00 via Android 会肯定会的,事物只要有变化,就肯定会产生影响。只是有些影响是可以忽略不计的。如果面试者是一个有着唯物辩证观的人,像我这样,就很为难了。题目不怎么好。 |
40 jacklau 2021-01-14 09:59:43 +08:00 影响的是开发的效率(多敲 n 个子母),只是内存地址的代号,最终到执行阶段都是要舍弃的。 |