EminemW
V2EX  ›  问与答

菜鸡提问, springboot 的 service 单例模式下,全局变量使用 static 修饰与不适用 static 修饰,在效果上有区别吗

  •  
  •   EminemW · Apr 2, 2020 · 3813 views
    This topic created in 2259 days ago, the information mentioned may be changed or developed.

    问题应该写的很清楚了把,我一般是用 static 修饰的,准确的做法是修饰还是不修饰呢。

    12 replies    2020-04-04 23:51:53 +08:00
    kookio
        1
    kookio  
       Apr 2, 2020
    没懂说的啥效果,static 修饰直接通过类名就能调用,类加载时就会被初始化,否则只能通过 new 的对象调用,和单例有啥关系
    xhinliang
        2
    xhinliang  
       Apr 2, 2020
    看个人喜好。。。
    gemini767
        3
    gemini767  
       Apr 2, 2020
    不要乱写代码。。。。
    首先 static 的存放不一致,其次加载方式不一致,乱写只会给自己或者他人埋坑
    wysnylc
        4
    wysnylc  
       Apr 2, 2020
    那有什么岁月静好,只不过有人在替你负重前行
    EminemW
        5
    EminemW  
    OP
       Apr 2, 2020
    @kookio 我的意思是 比如在这个 Service 里面有一个全局变量 /常量,假设它名为 EXPIRE,这个 EXPIRE 会被 Service 里面的几个方法使用,(外部不需要调用这个 EXPIRE ),那它用不用 static 修饰都不影响使用效果吧。
    EminemW
        6
    EminemW  
    OP
       Apr 2, 2020
    @gemini767 SpringBoot 中的 Service 默认是单例的吧,在这种情况下,如果我有个类缓存 LoadingCache,那它用 static 修饰跟不用 static 修饰的效果是一样的吧。我一般是会用 static 修饰的,只是不知道哪个更好
    EminemW
        7
    EminemW  
    OP
       Apr 2, 2020
    @xhinliang 我一般都是加上 static 的。。
    cccy0
        8
    cccy0  
       Apr 2, 2020
    常量还是加上 static 比较好, 如果在别的类中使用这个常量, 就不用注入这个 service 了
    gemini767
        9
    gemini767  
       Apr 3, 2020
    @EminemW loadingCache 没必要是全局变量,每一个 service 的 guava 肯定有自己业务场景,没必要去做到全局使用吧,我理解的全局变量一般是配置参数,环境变量之类的,减少业务参数全局飞的现象
    kookio
        10
    kookio  
       Apr 4, 2020 via iPhone
    @EminemW 光讲使用效果没区别,不加 static 是属于对象,加 static 属于类,两者在内存中存放的位置不一样,一般如果只是对象自己使用就不用加了,要被外部类使用就加上,还有严格来说 Java 没有全局变量这个说法,叫成员变量和静态变量。
    EminemW
        11
    EminemW  
    OP
       Apr 4, 2020 via iPhone
    @kookio 感谢,这样讲我就懂了
    EminemW
        12
    EminemW  
    OP
       Apr 4, 2020 via iPhone
    @kookio 这样看来我原来大部分加 static 的变量,可以不用加了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   962 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 19:58 · PVG 03:58 · LAX 12:58 · JFK 15:58
    ♥ Do have faith in what you're doing.