yidinghe
V2EX  ›  问与答

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

  •  
  •   yidinghe ·
    PRO
    · Sep 21, 2018 · 9386 views
    This topic created in 2966 days ago, the information mentioned may be changed or developed.
    40 replies  •  2021-01-14 09:59:43 +08:00
    Lateautumn
    Lateautumn
    Sep 21, 2018
    1
    会吗,
    lz234561
    lz234561
    Sep 21, 2018
    2
    不会
    hoythan
    hoythan
    PRO
    Sep 21, 2018
    3
    不会
    simonliu2018
    simonliu2018
    Sep 21, 2018
    4
    那么问题来了,变量名很长很长会影响什么效率?
    earther01
    earther01
    Sep 21, 2018
    5
    java 不会,那么问题来了,python 会影响吗
    Sanko
    Sanko
    Sep 21, 2018 via Android
    6
    很长是有多长
    night98
    night98
    Sep 21, 2018 via Android
    7
    得看有多长,哈哈
    inframe
    inframe
    Sep 21, 2018 via iPhone
    8
    python 走字典,复杂度是 hash
    lht260
    lht260
    Sep 21, 2018
    9
    到低有多长?
    qinxi
    qinxi
    Sep 21, 2018
    10
    @simonliu2018 打字效率
    yidinghe
    yidinghe
    OP
    PRO
    Sep 21, 2018
    11
    @simonliu2018 影响打字效率啊
    amon
    amon
    Sep 21, 2018
    12
    效率可以忽略不计,因为编译时都会转成其它字符。
    xflicker
    xflicker
    Sep 21, 2018
    13
    不会,但是占地方啊
    simonliu2018
    simonliu2018
    Sep 21, 2018
    14
    语言的规范有变量长度限制说明。
    shiyouming91
    shiyouming91
    Sep 21, 2018 via iPhone
    15
    看虚拟机实现了...不过一般而言对类加载有微小的影响。执行的时候局部变量不会,编译的时候都换成几号变量的数字了。成员变量会微小地影响调用成员变量的方法第一次执行的时候的速度,不过靠谱的虚拟机应该会在这个时候翻译成地址偏移量,因此以后就不会影响了。无论如何等 jit 预热好了就完全不影响了
    felixlong
    felixlong
    Sep 21, 2018
    16
    @earther01 你确定不会? 其实某些地方应该是会的。有人用 reflector 访问你的变量了呢?
    shiyouming91
    shiyouming91
    Sep 21, 2018 via iPhone
    17
    楼上说的对,也会影响反射的速度😂😂😂
    dasuxd
    dasuxd
    Sep 21, 2018 via Android
    18
    再小的时间也是时间,
    滑稽脸
    yidinghe
    yidinghe
    OP
    PRO
    Sep 21, 2018
    19
    @simonliu2018
    @shiyouming91
    @felixlong
    我这里指的是本地变量或参数啊,跟类名成员名方法名无关,编译的时候都抹掉了。
    zhenghuiy
    zhenghuiy
    Sep 21, 2018 via iPhone
    20
    问题是这道题有什么意义么,开发的时候取名应该是在“能不能见名知意”中纠结,而不是变量名的长短吧。比较规范是参考《代码大全》变量名的取名方式,但书中写的都挺长。。日常开发应该比规范得短。(当然你要强行说考这个是为了考察对方对编译过程的理解 balabala。。是在下输了)
    yidinghe
    yidinghe
    OP
    PRO
    Sep 21, 2018
    21
    @zhenghuiy 就是考虚拟机原理,不是考代码的优雅性。
    jason19659
    jason19659
    Sep 21, 2018
    22
    你反问他,那你们的代码不加密吗?
    yidinghe
    yidinghe
    OP
    PRO
    Sep 21, 2018
    23
    @jason19659 首先那叫混淆,其次 Java 的混淆不是针对代码而是针对字节码的。
    quickma
    quickma
    Sep 21, 2018
    24
    问 JVM 没必要问这个题目,直接问.java->.class 干了什么事情
    LukeChien
    LukeChien
    Sep 21, 2018 via Android
    25
    反射也不影响
    hanangellove
    hanangellove
    Sep 21, 2018
    26
    java 的函数调用原理是啥? 也是方法名作为 key,去全局的 map 中找到函数实现的指针地址吗?
    hpeng
    hpeng
    Sep 21, 2018 via iPhone
    28
    用 Java8 开启编译参数,代码里反射获取参数名应该会有影响的。不过看你问的问题,答题的人估计都不知道你想问什么。
    bumz
    bumz
    Sep 21, 2018
    29
    完全不会

    考点:Java 是编译为字节码执行
    aa6563679
    aa6563679
    Sep 21, 2018 via iPhone
    30
    成员变量或参数变量影响一丢丢
    局部变量一点都没有
    uleh
    uleh
    Sep 21, 2018
    31
    变成字节码了还有啥变量名啊。。
    除非是反射用到。。
    kaedea
    kaedea
    Sep 21, 2018 via Android
    32
    不会。问这个还不如问变量名最长能多长。
    yemenchun1
    yemenchun1
    Sep 21, 2018
    33
    C 的话, C 语言连好头文件以后吗, 首先编译成汇编语言, 这里面应该是不会变变量名的, 而后汇编语言转换成二进制, 这里就没有变量名什么事儿了, 执行的时候就不会影响速度. 但是编译的时候大概可能会影响速度, 要看编译器的优化程度了, 据说 Intel 自己的编译器比较牛.
    xhystc
    xhystc
    Sep 21, 2018 via Android
    34
    会,当通过反射访问参数名时,如果参数名长达几个 g 肯定会影响效率的
    zwh2698
    zwh2698
    Sep 21, 2018 via Android
    35
    词法分析器的效率
    bobuick
    bobuick
    Sep 21, 2018
    36
    语言有限制,说几个 G 的变量,是什么鬼
    maokabc
    maokabc
    Sep 22, 2018 via Android
    37
    本地变量编译成 class 后都是 iload,istore,aload,astore 之类没影响,域变量这些还是有影响
    lengyihan
    lengyihan
    Sep 22, 2018 via Android
    38
    会肯定会的,事物只要有变化,就肯定会产生影响。只是有些影响是可以忽略不计的。如果面试者是一个有着唯物辩证观的人,像我这样,就很为难了。题目不怎么好。
    darkcode
    darkcode
    Sep 23, 2018
    39
    @qinxi
    @yidinghe
    他问的是执行效率
    jacklau
    jacklau
    Jan 14, 2021
    40
    影响的是开发的效率(多敲 n 个子母),只是内存地址的代号,最终到执行阶段都是要舍弃的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1368 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 73ms · UTC 20:53 · PVG 04:53 · LAX 12:53 · JFK 15:53
    ♥ Do have faith in what you're doing.