同事问了一个问题,readonly和static啥区别?

我就写了个demo运行了下:

        /***
* 验证初始化次数:static只初始化一次,无论多少用户访问,在内存中只有一份
* readonly每个线程初始化一次
* 如果是接口中使用service方法,最好使用static 或者static readonly修饰符
* 验证修饰符初始化顺序:static readonly-->static-->无修饰符-->readonly
* */
public object obj = new object(); //③
public readonly object readonlyObj = new object(); //④
public static readonly object staictReadonlyObj = new object(); //①
public static object staictObj = new object(); //② // GET api/values
public IEnumerable<string> Get()
{
var o = obj.GetType();
var o0 = readonlyObj.GetType();
var o1 = staictReadonlyObj.GetType();
var o2 = staictObj.GetType(); return new string[] { "value1", "value2" };
}

验证了在多线程的情况下属性初始化次数,以及初始化的顺序。

最新文章

  1. HTTP狀態碼
  2. leetcode 239 Sliding Window Maximum
  3. c#中的结构与枚举
  4. yum使用详细
  5. visualSVN server库迁移(转)
  6. WPF实现摄像头镜像翻转
  7. sql server dateadd()
  8. MAC本上appium连接真机
  9. Error in library(DESeq2) : 不存在叫‘DESeq2’这个名字的程辑包
  10. x64类型的程序逆向思考
  11. jdbc,mybatis,hibernate各自优缺点及区别
  12. java 日期与时间类
  13. 使用 keepalived 设置虚拟 IP 环境(转载)
  14. linux 下启动tomca慢问题
  15. Qt5_Oracle
  16. XSS、CSRF与验证码等等
  17. Beta阶段——4
  18. [转]Python的getattr(),setattr(),delattr(),hasattr()
  19. Python DB
  20. wind10优化

热门文章

  1. flink WaterMark之TumblingEventWindow
  2. Jenkins 打tag回滚
  3. mysql update运行超时解决方案
  4. Linux学习之常用命令(三)
  5. 【Spark】
  6. linux命令行常用光标移动快捷键(转)
  7. 【Spring IoC】依赖注入DI(四)
  8. control+shift + o热键冲突?????
  9. 在树莓派上配置MariaDB
  10. appium--多点触控