一、不变性 满足同步需求的还有一种方法是使用不可变对象(Immutable Object)。到眼下为止,我们介绍了很多与原子性和可见性相关的问题,比如得到失效数据。丢失更新操作或光查到某个对象处于不一致的状态等等,都与多线程视图同一时候訪问同一个可变的状态相关。假设对象的状态不会改变,那么这些问题与 ...
分类:
编程语言 时间:
2017-08-21 09:54:53
阅读次数:
204
昨天遇到一个问题,就是在用phpstorm编写程序时,我的一个函数在编辑器上显示,说函数未定义,但是 我在运行时,却能正常运行,真是奇怪,后来因为想提高自己的进度,就没有想到底为什么。 今天给它总结一下。 我实例化模型类是用工厂模式来实例化的,那么那个M()里面的类的名字是不固定的,所以他实例化出来 ...
分类:
其他好文 时间:
2017-08-20 11:28:46
阅读次数:
146
区别: (1)String类对象为不可变对象,一旦你修改了String对象的值,隐性重新创建了一个新的对象,释放原String对象,StringBuffer类对象为可修改对象,可以通过append()方法来修改值 (2)String类对象的性能远不如StringBuffer类。 String s=n ...
分类:
编程语言 时间:
2017-08-19 18:47:29
阅读次数:
196
回调模式: 在计算机程序设计中,回调函数,或简称回调,是指通过函数参数传递到其它代码的,某一块可执行代码的引用。这一设计允许了底层代码调用在高层定义的子程序。 1.定义回调函数接口 2.编写调用逻辑 3.传递回调函数实现 4.测试 1.定义回调函数接口 2.编写调用逻辑 3.传递回调函数实现及测试 ...
分类:
其他好文 时间:
2017-08-08 15:30:39
阅读次数:
217
前言 很多文章不外乎告诉你下面这几种标准的形式,你如果按照它们来用,准没错: //对于一个2行13列int元素的二维数组 //函数f的形参形式 f(int daytab[2][13]) {...} //以下两种可以忽略行数 f(int daytab[][13]) {...} f(int (*dayt ...
分类:
编程语言 时间:
2017-08-07 10:17:27
阅读次数:
192
Python语言特性 1 Python的函数参数传递 看两个例子: Python 1 2 3 4 5 a = 1 def fun(a): a = 2 fun(a) print a # 1 Python 1 2 3 4 5 a = [] def fun(a): a.append(1) fun(a) p ...
分类:
编程语言 时间:
2017-08-01 12:42:59
阅读次数:
315
Python的函数具有非常灵活的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数。 默认参数一定要用不可变对象,如果是可变对象,运行会有逻辑错误! 要注意定义可变参数和关键字参数的语法: *args是可变参数,args接收的是一个tuple; **kw是关键字参数,kw接收的是一个dict。 ...
分类:
其他好文 时间:
2017-07-30 12:46:33
阅读次数:
167
普通函数 普通函数,自执行函数 注:自执行函数,没有函数名结构如: (function(){code})() 匿名函数,可以当作参数传递 ...
分类:
编程语言 时间:
2017-07-28 19:17:29
阅读次数:
235
参考:https://segmentfault.com/a/1190000004450876 Bytes 对象是由单个字节作为基本元素(8位,取值范围 0-255)组成的序列,为不可变对象。 Bytes 对象只负责以二进制字节序列的形式记录所需记录的对象,至于该对象到底表示什么(比如到底是什么字符) ...
分类:
其他好文 时间:
2017-07-28 12:47:20
阅读次数:
137
首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题。基本的参数传递机制有两种:值传递和引用传递。 值传递(passl-by-value)过程中,被调函数的形式参数作为被调函数的局部变量处理,即 ...
分类:
编程语言 时间:
2017-07-27 20:14:27
阅读次数:
215