volatile用于多线程编程中,表示对它所修饰的对象不应该执行优化。如果一个基本变量被volatile修饰,编译器将不会把它保存到寄存器中,而是每一次都去访问内存中实际保存该变量的位置上。这一点就避免了没有volatile修饰的变量在多线程的读写中所产生的由于编译器优化所导致的灾难性问题。因此,多线程中必须要共享的基本变量一定要加上volatile修饰符。
const则表示一个常量,它的值不会被改变。const修饰的变量只能在定义时赋值,之后不能重新赋值。const的作用是在程序开发过程中帮助程序员避免一些常见的错误,例如在声明一个常量时可以避免重复定义,或者在声明一个常量时可以避免忘记修改它的值等问题。 |