摘要: 这个是带本科大一基础课本上的题目,顺便复习一下记录! * 现在来详细解释下,前四个输出为 2、2、B、B,这很容易理解,不解释,不懂自己看书!还不懂我们聊聊!嗯哼! * 着重解释下面四个输出:1、2、A、A; * 首先明确几个规则: * A a = new B();其实就是父类引用指向子类对象,就是 阅读全文
posted @ 2016-05-18 21:27 CfoolishbirdC 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 1、恶汉:因为加载类的时候就创建实例,所以线程安全(多个ClassLoader存在时例外)。缺点是不能延时加载。2、懒汉:需要加锁才能实现多线程同步,但是效率会降低。优点是延时加载。3、双重校验锁:麻烦,在当前Java内存模型中不一定都管用,某些平台和编译器甚至是错误的,因为sb = new Sin 阅读全文
posted @ 2016-05-13 16:40 CfoolishbirdC 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 一、多个线程操作一个对象实例 当两个线程同时访问一个没有同步的方法,如果两个线程同时操作业务对象中的实例变量,则有可能会出现“非线程安全问题”。 1 package concurrent; 2 /** 3 * 测试不同线程操作同一个实例变量线程安全问题 4 * @author foolishbird 阅读全文
posted @ 2016-05-08 22:09 CfoolishbirdC 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 一、进程:进程是受操作系统管理的基本运行单位; 二、线程:在进程中独立运行的子任务; 三、多线程的好处: 可以在同一时间内运行更多不同种类的任务; 单任务的特点是排队执行,也就是同步,CPU利用率很低; 多任务的特点也就是多线程,同时执行,异步操作,CPU快速切换,提高利用率; 四、Java里面的多 阅读全文
posted @ 2016-05-07 20:54 CfoolishbirdC 阅读(1018) 评论(1) 推荐(0) 编辑
摘要: Vector 简介 (1)Vector类也是以数组结构为基础,可以直接使用数组索引进行访问,但是它具有可自由增长的特性; (2)实现了RandomAccess支持随机访问,Cloneable可以实现克隆,Serializable能够被序列化; (3)Vector其实与ArrayList功能类似,但是 阅读全文
posted @ 2016-04-30 17:00 CfoolishbirdC 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 设计模式原则是“针对接口编程,而不是对实现编程”; 简单工厂模式根据提供给它的数据,返回一个类的实例。通常它返回的类都是一个公共的父类或者接口对象。 简单工厂的作用是实例化对象,而不需要客户了解这个对象属于哪个具体的子类。简单工厂实例化的类具有相同的接口或基类,在子类比较固定并不需要扩展时,可以使用 阅读全文
posted @ 2016-04-28 16:55 CfoolishbirdC 阅读(479) 评论(0) 推荐(0) 编辑
摘要: LinkedList简介 (1)基于双向循环链表的结构,实现了Deque接口,可以用作堆栈、队列或双端队列使用; (2)实现为非同步的,即在多线程下是不安全的,单线程安全; (3)实现了Cloneable、Serializable,可以克隆与被序列化; JDK1.7-LinkedList源码详细分析 阅读全文
posted @ 2016-04-21 16:02 CfoolishbirdC 阅读(649) 评论(0) 推荐(0) 编辑
摘要: 主要是参考大神兰亭风雨的博客; ArrayList简介 (1) ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。 (2) ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synch 阅读全文
posted @ 2016-04-18 20:10 CfoolishbirdC 阅读(433) 评论(0) 推荐(0) 编辑
摘要: 首先这只是我的笔记,可能会有错误,如果能入各位看官法眼请随意指出,我会虚心接受~~ 主要是参考大神的博客 http://blog.csdn.net/column/details/collection.html java集合工具包位于util包下,包含了很多常用的数据结构,如数组、链表、栈、队列、集合 阅读全文
posted @ 2016-04-18 19:47 CfoolishbirdC 阅读(914) 评论(0) 推荐(0) 编辑
摘要: 上述代码运行之后,只会输出“SuperClass init!”,而不会输出"ChildClass init!",证明子类被又被初始化。 原因:对于静态字段,只有直接定义这个字段的类才会被初始化,因此通过子类来引用父类中定义的静态字段,只会触发父类的初始化而不会触发子类的初始化。 上述代码运行之后,没 阅读全文
posted @ 2016-03-21 15:06 CfoolishbirdC 阅读(323) 评论(0) 推荐(0) 编辑