摘要: 《Effective Java》(第2版)中第二条中提到:遇到多个构造器参数时要考虑用构建器。在复习static关键字和内部类时回头看了一下,这才明白了为什么要用静态内部类来做处理,这里记录一下。 先看再看一下《Effective Java》书中的例子,例子中是用一个类表示包装食品外面显示的营养成分 阅读全文
posted @ 2017-06-23 16:06 uodut 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 集合类和接口之间的关系图,能够比较清楚的展示各个类和接口之间的关系(其中:点框为接口(...) 短横线框为抽象类( ) 实线为类) 上图可以看到:集合可以分成两部分来学习。一个是以Collection为顶层接口,这种集合是单值元素<value>。一个是以Map为顶层接口,这种结合是<key,valu 阅读全文
posted @ 2017-06-23 08:45 uodut 阅读(911) 评论(0) 推荐(0) 编辑
摘要: final final域使得确保初始化安全性(initialization safety)成为可能,初始化安全性让不可变形对象不需要同步就能自由地被访问和共享 作用在类上 则为final类,final类不能被继承。一般用于工具类时,同时把工具类构造函数声明为私有,暴露静态共有方法 作用在成员变量上 阅读全文
posted @ 2017-06-23 08:44 uodut 阅读(6541) 评论(1) 推荐(1) 编辑
摘要: 使用场景 业务中比较多的状态,不同状态下需要做的事情不同。这样,每个步骤中都需要判断一下当前属于什么状态,状态过滤完成以后对相应的状态作出处理。当前状态执行完成以后,可能需要根据条件进入下一个状态(可能是下一个状态,可能是上一个状态,可能是终止或者回到初始状态等)。这种逻辑判断完以后一般都会出现比较 阅读全文
posted @ 2017-06-06 21:36 uodut 阅读(397) 评论(0) 推荐(0) 编辑
摘要: 线程同步辅助类,主要学习两点: 1、上述几种同步辅助类的作用以及常用的方法 2、适用场景,如果有适当的场景可以用到,那无疑是最好的 semaphore(seməˌfôr) 含义 信号量就是可以声明多把锁(包括一把锁:此时为互斥信号量)。 举个例子:一个房间如果只能容纳5个人,多出来的人必须在门外面等 阅读全文
posted @ 2017-05-09 15:55 uodut 阅读(5380) 评论(0) 推荐(2) 编辑
摘要: 线程执行器和不使用线程执行器的对比(优缺点) 1.线程执行器分离了任务的创建和执行,通过使用执行器,只需要实现Runnable接口的对象,然后把这些对象发送给执行器即可。 2.使用线程池来提高程序的性能。当发送一个任务给执行器时,执行器会尝试使用线程池中的线程来执行这个任务。避免了不断创建和销毁线程 阅读全文
posted @ 2017-05-04 20:48 uodut 阅读(2926) 评论(0) 推荐(0) 编辑
摘要: 多个执行线程共享一个资源的情景,是并发编程中最常见的情景之一。多个线程读或者写相同的数据等情况时可能会导致数据不一致。为了解决这些问题,引入了临界区概念。临界区是一个用以访问共享资源的代码块,这个代码块在同一时间内只允许一个线程执行。 Java提供了同步机制。当一个线程试图访问一个临界区时,它将使用 阅读全文
posted @ 2017-04-27 17:50 uodut 阅读(24060) 评论(1) 推荐(3) 编辑
摘要: 因为书中涵盖的知识点比较全,所以就以书中的目录来学习和记录。当然,学习书中知识的时候自己的思考和实践是最重要的。说到线程,脑子里大概知道是个什么东西,但很多东西都还是懵懵懂懂,这是最可怕的。所以想着细致的来学习一下,就从这本实战开始学习。 疑问点:什么时候会用到多线程?什么情况下使用多线程来解决问题 阅读全文
posted @ 2017-04-27 17:16 uodut 阅读(697) 评论(0) 推荐(0) 编辑
摘要: 最近做一个数据库分离的功能,其中用到了spring aop,主要思路就是在service层的方法执行前根据注解(当然也可以根据方法名称,如果方法名称写的比较统一的话)来判断具体使用哪个库。所以想着再回头来看看aop的详细用法。 因为spring aop的话原理涉及到动态代理,了解动态代理的可以查看我 阅读全文
posted @ 2017-04-23 17:18 uodut 阅读(308) 评论(0) 推荐(0) 编辑
摘要: spring的aop(Aspect Oriented Programming:面向切面编程)机制是基于动态代理实现的,那么动态代理是怎样的呢?为什么动态代理可以实现切面的效果呢? 其实在理解动态代理的时候,可以先去学习静态代理,也可以先去了解代理模式。静态代理理解了,那么动态代理就会比较好理解。这里 阅读全文
posted @ 2017-04-23 12:55 uodut 阅读(246) 评论(0) 推荐(0) 编辑