转载:http://blog.csdn.net/zhangjg_blog/article/details/18319521 什么是不可变对象? 众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么 ...
分类:
编程语言 时间:
2016-12-17 23:12:51
阅读次数:
275
Volatile 变量 Volatile 关键字的作用: 确保对声明的变量的操作 不会 和其他内存操作一起被重排序 Volatile 变量不会缓存到寄存器或者其他对处理器隐藏的地方(保证可见性) 确保 引用类型, long 和 double的读取或者赋值的原子性 Volatile 的主要用法: 确保 ...
分类:
编程语言 时间:
2016-12-15 00:57:26
阅读次数:
180
1. 位置传递: 2. 关键字传递 3. 默认值参数 调用: 4. 包裹传递 调用: 输出: 5. 解包 ...
分类:
编程语言 时间:
2016-11-30 14:43:14
阅读次数:
209
什么是不可变对象? 众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其 ...
分类:
其他好文 时间:
2016-11-28 19:44:15
阅读次数:
137
当一个对象创建后的状态不可改变时就认为其为不可变对象,尽可能地利用不可变对象被公认为是构建简单可靠代码的有效方法。不可变对象在并发程序中比较有用,由于其状态无法改变,因此无法被线程的干扰损坏或者被视为不一致状态。 程序员一般不愿意使用不可变对象,因为他们担心创建一个新对象可能会比更新一个已有对象的状 ...
分类:
编程语言 时间:
2016-11-28 00:21:29
阅读次数:
234
String 对一串字符进行操作。不可变类。 StringBuffer 也是对一串字符进行操作,但是可变类。 String: 是对象不是原始类型. 为不可变对象,一旦被创建,就不能修改它的值. 对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去. String 是fi ...
分类:
编程语言 时间:
2016-11-27 16:51:43
阅读次数:
242
第一章 线程共享进程范围内的资源,但每个线程都有各自的程序计数器、栈以及局部变量等。 多个线程可以同时调度到多个CPU上运行。 线程的优势? 在服务应用程序中,可以提升资源利用率以及系统吞吐率,发挥多处理器的强大功能。 线程的优先级 执行时间 线程切换需要额外的开销 第二章 如果多个线程访问同一个可 ...
分类:
编程语言 时间:
2016-11-26 02:36:55
阅读次数:
137
Java集合框架总结(3)——TreeSet类的排序问题 TreeSet支持两种排序方法:自然排序和定制排序。TreeSet默认采用自然排序。 1、自然排序 TreeSet会调用集合元素的compareTo(Object obj)方法来比较元素之间大小关系,然后将集合元素按升序排列,这种方式就是自然 ...
分类:
编程语言 时间:
2016-11-25 00:05:35
阅读次数:
199
Python比较两个对象是否相等有两种方法,简单来说,它们的区别如下: 1,is 是比较两个引用是否指向同一个对象(引用比较) 2,==是比较两个对象的值是否相等。 实现原理is 是比较两者是否同一个对象,比较的是内存地址(id是否相等)。 ==是值比较,不可变对象,列如int,str,它会直接进行 ...
分类:
编程语言 时间:
2016-11-22 20:02:53
阅读次数:
197
在前面对MyBatis稍微有点了解过后,现在来对MyBatis的源码试着解读一下,并不是解析,暂时定为解读。所有对MyBatis解读均是基于MyBatis-3.4.1,官网中文文档:http://www.mybatis.org/mybatis-3/zh/getting-started.html,My ...
分类:
数据库 时间:
2016-11-15 00:23:15
阅读次数:
393