![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
个人笔记
ppt12138
这个作者很懒,什么都没留下…
展开
-
Java 可变参数函数的使用
Java创建可变长度参数函数有两种办法,一种是传一个对象数组类型,另一个是使用Varargs机制(“…”)。代码:public class Test { public static void main(String[] args) { System.out.println(judgeCache("hahha", -1L)); System.out.printl原创 2017-05-05 18:50:17 · 575 阅读 · 0 评论 -
设计模式---单例模式
优点节约资源允许可变数量资源缺点没有抽象层,扩展困难违背单一职责场景任务管理器日志应用,否则日志文件不好追加数据库连接池Servlet单例多线程原创 2017-08-13 23:54:58 · 422 阅读 · 0 评论 -
设计模式---策略模式
结构图优点策略可以自由切换避免使用多重判断条件扩展性良好场景策略模式适用于当一个应用程序需要实现一种特定的服务或者功能,而且该程序有多种实现方式时使用。原创 2017-08-13 23:36:36 · 333 阅读 · 0 评论 -
设计模式---代理模式
结构图优点对外提供统一的接口访问,通过对真实类封装附加操作,从而在不影响外部调用的情况下,进行系统扩展。比如真实操作要添加一个校验动作,可以不修改原操作方法,在外封装一层方法,该方法进行校验动作,然后调用真实方法,对外的调用接口仍然不变。开闭原则。场景RPC代理虚拟代理,在加载一些耗时资源类时,未完成时可通过代理类显示其他动作,完成后再委托加载好的类进行操作。 http://blog.csdn原创 2017-08-13 01:23:55 · 354 阅读 · 0 评论 -
spring AOP
spring AOP是利用代理模式,在运行时生成目标对象的代理,并且使用代理对象代替目标对象,整个过程对使用者透明,使用者无法像使用目标对象一样使用代理对象,代理对象类型是目标对象所属类的子类或者接口实现,这个子类也是在运行时动态生成,这个生成子类的过程使用操作字节码技术,Spring框架中使用两种字节码生成技术:JDK动态代理和CGLIB,当目标类实现了接口时使用JDK动态代理,否则使用CGLIB转载 2017-08-13 00:41:25 · 278 阅读 · 0 评论 -
设计模式---工厂模式
简单工厂模式工厂方法模式抽象工厂模式比较简单工厂模式最大优点在于解耦,对于上层业务不需要去理解类的实现,如果代码中出现100次new一个类,当这个类构建多了一个参数时,需要修改100次,使用工厂模式只需要修改工厂方法即可,代码耦合性降低。工厂方法模式相对于简单工厂模式,符合开闭原则,因为简单工厂在工厂中添加了逻辑判断,增加类的时候需要修改工厂方法体,而工厂方法模式只需要继承工厂接口进行扩展即可,原创 2017-08-13 00:26:09 · 280 阅读 · 0 评论 -
spring IOC和DI
Java中的每个业务逻辑需要多个对象来协作完成,每个对象在使用依赖的对象时,需要手动new object()来硬编码创建,对象间的耦合度高。而IoC的思想是,spring容器来实现这些相互依赖对象的创建、协调工作,这些对象只需要了解业务逻辑本身。IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过DI(Dependency Injection,依赖注入)来实现的。原创 2017-08-12 13:59:54 · 172 阅读 · 0 评论 -
SIP协议-注册过程概述
注册过程注册过程图 Carol使用记录地址“sip:carol@chicago.com”在SIP注册服务器的chicago.com域注册。chicago.com域的代理服务器将使用Carol的注册,将Carol的记录地址拿到定位服务中查询,找到真实终端地址,然后路由到Carol的真实终端。注册描述 如果用户要发起和另一个用户的会话,SIP必须发现可到达目的用户的当前主机。(代理服务器和重原创 2017-04-30 00:48:33 · 1323 阅读 · 0 评论 -
Java枚举详解
语法(定义)创建枚举类型要使用 enum 关键字,隐含了所创建的类型都是 java.lang.Enum 类的子类(java.lang.Enum 是一个抽象类)。枚举类型符合通用模式 Class Enumpublic enum EnumTest { MON, TUE, WED, THU, FRI, SAT, SUN;}这段代码实际上调用了7次 Enum(String name, int or转载 2017-06-12 11:02:57 · 303 阅读 · 0 评论 -
线程池
一. 概述执行并发任务时,我们可以把任务传递给一个线程池,来替代为每个并发执行的任务都启动一个新的线程,只要池里有空闲的线程,任务就会分配一个线程执行。在线程池的内部,任务被插入一个阻塞队列(BlockingQueue),线程池里的线程会去取这个队列里的任务。 利用线程池的三大好处: 1. 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗 2. 提高响应速度。当任务到达时,任转载 2017-05-10 10:53:00 · 348 阅读 · 0 评论 -
Callable、Future和FutureTask
线程的实现有两种方式: 1. 继承Thread 2. 实现Runnable接口这两种缺陷都有一个缺陷,在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦 而自从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕之后得到任务执行结果。 今天我们就来讨论一下Callable、转载 2017-05-09 10:43:32 · 203 阅读 · 0 评论 -
设计模式---观察者模式
结构图模式中的角色抽象主题(Subject):它把所有观察者对象的引用保存到一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加和删除观察者对象。具体主题(ConcreteSubject):将有关状态存入具体观察者对象;在具体主题内部状态改变时,给所有登记过的观察者发出通知。抽象观察者(Observer):为所有的具体观察者定义一个接口,在得到主题通知时更新自己。具体原创 2017-08-14 00:22:01 · 245 阅读 · 0 评论