30丨“代码经济篇”答疑汇总
该思维导图由 AI 生成,仅供参考
- 深入了解
- 翻译
- 解释
- 总结
本文围绕“代码经济”展开讨论,涉及性能监控、代码尺寸、身份认证、签名数据处理等多个技术领域。作者深入解答读者提出的问题,涵盖了性能监控工具、代码尺寸对云服务和移动计算的影响、身份认证技术的发展趋势以及签名数据处理的优化方法。此外,还讨论了volatile关键字、内存模型以及局部变量在降低共享资源读写频率方面的作用。总体而言,本文内容丰富,为读者提供了丰富的技术知识和解决问题的思路。文章还展望了下一部分“安全的代码”的学习内容,将采用案例分析的形式进行学习。
《代码精进之路》,新⼈⾸单¥59
全部留言(6)
- 最新
- 精选
- 浅吟且行的未来范老师好,我想问下为什么temporaryMap会被赋值两次,分别对应第4行和第8行。 我的理解是:Java里非基本数据类型是引用传递,那helloWordsMap的更新会直接更新temporaryMap,所以我不理解为什么会赋值两次?
作者回复: “引用传递”的理解可能误导了你。学习C语言和Java语言的时候,可以把赋值都看作值传递,然后去理解不同的类型传递的值到底是什么,也就是到底是什么值。 比如,这个例子的helloWordsMap和temporaryMap的两个变量,其实它们的值都是指向一个map的地址。map的变化,并不会引起指向这个map的地址的变化。所以,才会有让人迷惑的“引用传递”的说法。但是,helloWordsMap和temporaryMap这两个指向map地址变量,是可以变化的。而且,它们的变化都是独立的,不传递的。 第一次赋值,helloWordsMap和temporaryMap相同了,指向同一个地址。需要注意的是,但从变量本身看,helloWordsMap和temporaryMap是两个不同的变量,一个变量的变化,对另外一个变量没有影响。你可以仔细琢磨一下我说的值传递。 第一次赋值后,helloWordsMap可能指向null地址,然后temporaryMap就也有可能指向null。同步时,需要检查helloWordsMap是不是还是指向null。如果helloWordsMap已经不指向null了,temporaryMap依然是指向null的,这时候,就要更新temporaryMap的指向地址。所以,需要第二次赋值。
2019-05-195 - aaa延迟分配是指延迟同步嘛,还是不会同步,如果是延迟同步的话是什么时候才会同步
作者回复: 延迟分配和同步是两个概念,分开理解更容易些。 关于延迟分配,参见地二十四讲。 如果非要放一起的话: 延迟分配,有的时候可以免除同步,有的时候降低同步,有的时候没什么影响。你看,和不放一起没什么两样。更多的具体的例子,请参考《Effective Java》。
2019-04-161 - 空知helloWordsMap = temporaryMap; helloWordsMap 还是指向了temporaryMap,temporaryMap发生变化 helloWordsMap 还是要同步的吧?
作者回复: 是的,这么复杂的延迟分配代码,要解决的就是helloWordsMap变化的同步问题。
2019-03-131 - 往事随风,顺其自然怎么判断由voliate 修饰的变量是否会反复变化,来决定是否采用临时变量引用
作者回复: 一般采用延迟分配方法的代码,都很简单,而且变量仅赋值一次。其他的场合,还要看具体的代码。 比如final修饰的变量,就不会反复变化。
2019-03-131 - ifelse我们就会更强烈地感受到,“要有意识”是我们首先要获得的能力。大部分代码的问题,其实都是意识和见识带来的问题。--记下来2022-07-28归属地:陕西
- ifelse学习了2022-07-28归属地:北京