volatile的使用场景:多个线程同时访问一个变量,CLR为了效率,允许每个线程进行本地缓存,这就导致了变量的不一致性。volatile就是为了解决这个问题,volatile修饰的变量,不允许线程进行本地缓存,每个线程的读写都是直接操作在共享内存上,这就保证了变量始终具有一致性。缺点很明显:牺牲了...
分类:
其他好文 时间:
2014-05-09 03:19:04
阅读次数:
256
相同: const和readonly都是用来修饰常量的不同: const
在申明之前就要对它初始化,readonly修饰的常量则可以到构造函数中初始化const注重的是效率但是readonly注重的是灵活性const在内存中不会占用内存但是readonly要保存常量的话就要消耗内存的const只能修...
分类:
其他好文 时间:
2014-05-08 15:36:44
阅读次数:
284
const关键字是C++中常用的类型修饰符,用法非常灵活,使用const将大大改善程序的健壮性。 const的作用 1. 定义const常量; 比如:
const int Max = 100; 2. 便于类型检查; const 常量有数据类型,而宏常量没有数据类型。 编译器对前者进行类型安全检查; ...
分类:
编程语言 时间:
2014-05-08 14:29:56
阅读次数:
351
转。字段和属性的区别。首先从两者的声明上来看,公共字段只是类用public修饰符所公开的简单公共变量,而属性则是对字段的封装,它使用get和set访问器来控制如何设置或返回字段值。由于属性的实质是方法(get或set方法),在IL(Intermediate
Language,是·NET框架中中间语言...
分类:
其他好文 时间:
2014-05-08 12:39:47
阅读次数:
243
一、选择器性能优化建议1、 总是从#id选择器来继承2、
在class前面使用tagjQuery中第二快的选择器就是tag选择器(如$(‘head’)),因为它和直接来自于原生的Javascript方法getElementByTagName()。所以最好总是用tag来修饰class(并且不要忘了就近...
分类:
Web程序 时间:
2014-05-08 09:16:57
阅读次数:
327
线程的同步 一个做完了另一个才能做 数据安全在要求数据安全时,才使用同步同步方法锁
可再方法修饰符的前面 或者后面加synchronized (监控范围) 在同步方法当中当前类的对象就是监控器的监控范围死锁 wait可以把锁放开 notify
通知wait醒来同步块要么用静态修饰对象 变量 要么用字...
分类:
编程语言 时间:
2014-05-08 08:56:16
阅读次数:
338
const是C++中的常量限定符,在编程中经常出现。本文介绍了用const修饰指针变量的三种用法,并介绍了它们之间的区别。...
分类:
其他好文 时间:
2014-05-07 23:07:16
阅读次数:
402
Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入...
分类:
编程语言 时间:
2014-05-07 13:08:37
阅读次数:
312
我们查看方法的签名,就可以了解到调用一个方法时所需知道的一切。方法的签名不包含方法体内的任何语句,签名只是方法的声明部分。按照声明方法出现的顺序,分为修饰词、返回值类型、方法名、形式参数列表。在Java中,参数包括形参和实参。形参是定义方法所需变量,实参是调用方法所传递具体的值。当实际参数传递给.....
分类:
其他好文 时间:
2014-05-07 12:47:06
阅读次数:
229
params,ref,out都是方法参数
首先类似这样的,传递的参数args添加了params修饰public void OpenWindow(params object[] args){ int
id=args[0]; Hashtable tab=(Hashtable)args[1];}publi...
分类:
其他好文 时间:
2014-05-07 00:03:52
阅读次数:
402