码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 面试:关于static静态变量的问题


    一、静态变量的生命周期

    静态变量是在类被load的时候分配内存的,并且存在于方法区。 当类被卸载的时候,静态变量被销毁。 在PC机的客户端程序中,一个类被加载和卸载,可简单的等同于jvm进程的启动和结束。

    二、Android中的进程什么时候结束

    如果资源足够,Android不会杀掉任何进程,另一个意思就是进程随时可能会被杀掉。

    三、什么时候建议使用static

    一般是能用静态变量的尽量用单例代替,使用static的场景一般是

    1、定义常量( final static int a=1)

    2、定义单例的时候。

    四、不用static静态变量的原因

    Android 编程中,使用静态变量有哪些缺点?应该如何规范使用? - 知乎

    在Android中不应该使用static变量,static本身依赖进程模型,而Android力图屏蔽进程的细节。

    毫无疑问,Application类是你需要的选择,那是堆积一些进程级别全局信息的最佳场所。

    由于 Android 具有相应的生命周期的特征,因此Android 程序不应该使用任何 static 变量,不应该并不是说不能,而是说使用static 变量很可能会导致bug。

    有多种方式可以代替static 变量,比如继承 Application 类,使用 preference ,使用 db,以及保存数据到静态文件 等等

    关于Android 使用静态变量,我遇到过的情况是:当应用不处于与当前用户交互的情况时(例如回到HOME,跳到其他应用),离开的时间比较长时,应用的静态变量有可能被置null, 是不保险的。

    static只能在进程内起作用,跨进程是没用的。

    "service和activity通信,直接用static变量传递信息,这样看似不是很规范" 在同一个App内可以使用static变量共享这种方式,google更推荐使用使用Application子类进行信息共享

  • 相关阅读:
    在网页中引用 JavaScript 代码有几种常见的方法?
    StatefulSets In K8s
    大数据在电力行业的应用案例100讲(十九)-按钮设计与开发落地
    深度学习(PyTorch)——线性模型
    Python基础语法规则和Java不同的地方
    数学建模学习笔记(3):灰色关联分析
    2023/9/8 -- C++/QT
    2023年第十四届蓝桥杯大赛软件类省赛C/C++大学A组真题
    Linux下部署worldPress
    深度解析Kafka中的消息奥秘
  • 原文地址:https://blog.csdn.net/cpcpcp123/article/details/127936736
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号