`
隐形的翅膀
  • 浏览: 498591 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
当创建对象需要传入多个参数的时候我们通常会根据参数的数量写不同的构造器,具体如下 public A(int a){} public A(int a, int b){} public A(int a, int b, int c){} 根据不同的参数调用不同的构造器,但是当参数多了的时候,这种方式不够灵活,所以会实现动态传参的方法 public A(){} public void seta(int a){} public void setb(int b){} public void setc(int c){} 这种方式提高了传参的可读性,也提高了传参的灵活性,但是会增加代码行数, ...
静态工厂方法讲解<一>         (1)构造方法的名字必须与类名相同。缺点是不能从名字上区分每个重载方法, 静态工厂方法的方法名可以是任意的,例如 getFemale()和getMale()。    (2)每次执行new语句时,不必每次都返回一个新对象    (3)new语句只能创建当前类的实例,而静态工厂方法可以返回当前类的子类的实例,这一特性可以在创建松耦合的系统接口时发挥作用。 但静态工厂方法又有缺点:   第一:如果将要创建的对象的构造方法是私有的或是default的,就有可能不能创建该对象         具有实例缓存的不可变类:不可变类的实例一旦创 ...
Java NIO模式的Socket通信,是一种同步非阻塞IO设计模式,它为Reactor模式实现提供了基础。 下面看看,Java实现的一个服务端和客户端通信的例子。 NIO模式的基本原理描述如下: 服务端打开一个通道(ServerSocketChannel),并向通道中注册一个选择器(Selector),这个选择器是与一些感兴趣的操作的标识(SelectionKey,即通过这个标识可以定位到具体的操作,从而进行响应的处理)相关联的,然后基于选择器(Selector)轮询通道(ServerSocketChannel)上注册的事件,并进行相应的处理。 客户端在请求与服务端通信时,也可以向服务 ...
ThreadPoolExecutor( int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler) 排队有三种通用策略: 直接提交。工作队列的默认选项是 SynchronousQueue, 它将任务直接提交给线程而不保持它们。如果不存在可用于立即运行任务的线程,则试图把任务加入队列将失败 ...

线程池示例

1:newSingleThreadExecutor MyThread.java publicclassMyThread extends Thread { @Override publicvoid run() { System.out.println(Thread.currentThread().getName() + "正在执行。。。"); } } TestSingleThreadExecutor.java publicclassTestSingleThreadExecutor { ...
1. 线程池的作用: 线程池作用就是限制系统中执行线程的数量。 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线 ...
1 VS/NAT ( Virtual Server via Network Address Translation ):通过网络地址转换( Network Address Translation )将内部地址转化为 Internets上可用的外部地址。 2 VS/TUN ( Virtual Server via IP Tunneling ):通过 IP 隧道实现虚拟服务器,将请求报文封装动态地转发给后端服务器,响应报文能从后端服务器直接返回给客户。 因请求报文较短而响应报文往往包含大量的数据,可以大大降低负载均衡器的压力。 所有的服务器必须支持“IP Tunneling”或者“IP Enca ...
1、  解决网络服务性能问题的四种集群方法 1.1    基于 RR-DNS ( Round-Robin Domain Name System ) 服务器组拥有相同的域名, RR-DNS 服务器会把域名轮流解析到这组服务器的不同 IP 地址,从而将访问负载分到各台服务器上。 1.2    基于客户端 每个客户程序都具有一定的服务器集群的知识,进而把以负载均衡的方式将请求发到不同的服务器。 1.3    基于应用层的负载均衡调度 多台服务器通过高速的互联网络连接成一个集群系统,在前端有一个基于应用层的负载调度器。当用户访问请求到达调度器时,请求会提交给作负载均衡调度的应用程序 ...
http://www.open-open.com/lib/view/open1354535857523.html

Spring 原理

1、spring原理 spring的最大作用ioc/di,将类与类的依赖关系写在配置文件中,程序在运行时根据配置文件动态加载依赖的类,降低的类与类之间的藕合度。它的原理是在applicationContext.xml加入bean标记,在bean标记中通过class属性说明具体类名、通过property标签说明该类的属性名、通过constructor-args说明构造子的参数。其一切都是反射,当通过applicationContext.getBean(“id名称”)得到一个类实例时,就是以bean标签的类名、属性名、构造子的参数为准,通过反射实例对象,唤起对象的set方法设置属性值、通过构造子的 ...

WebRTC

Android WebRTC 音视频开发总结(一) http://www.cnblogs.com/lingyunhu/p/3578218.html Android WebRTC 音视频开发总结(三) http://www.cnblogs.com/lingyunhu/p/3621057.html 在Ubuntu12.10-32bit上构建、测试WebRTC之Android示例WebRTCDemo(video_engine) http://blog.csdn.net/yiqingnian28/article/details/8799573 google开源了WebRTC项目 http ...
Play Framework框架 JPA常用注解 1、@Entity(name="EntityName") 必须 ,name 为可选 , 对应数据库中一的个表 2、@Table(name="",catalog="",schema="") 可选 , 通常和 @Entity 配合使用 , 只能标注在实体的 class 定义处 , 表示实体对应的数据库表的信息 name: 可选 , 表示表的名称 . 默认地 , 表名和实体名称一致 , 只有在不一致的情况下才需要指定表名 catalog: 可选 , 表示 Catalog ...

页面多次提交

一点拙见,仅供参考: 1.提示并跳转到指定页面,防止重复提交页面,(跳转到其他页面时会防止后退键的使用)代码:out.print("<script>alert('Success(确认提交)!');window.location.href='show.aspx';</script>"); 2.直接从新转到 ...

Java Script 闭包

Javascript闭包就是在另一个作用域中保存了一份它从上一级函数或作用域取得的变量(键值对), 而这些键值对是不会随上一级函数的执行完成而销毁。 闭包就是“属性表”,闭包就是一个数据块,闭包就是一个存放着“Name=Value”的对照表 变量的作用域无非就是两种:全局变量和局部变量。 Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量 另一方面,在函数外部自然无法读取函数内的局部变量。 函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量! 二、如何从外部读取局部变量? 出于种种原因,我们有时候需要得到函数内的局部 ...

CSS 基础

    博客分类:
  • css
选择器 1. 类型选择器 p {...} a {...} 2. 后代选择器 li a {..} li 下的所有a 3. ID选择器 # 4. 类选择器 . 5. 子选择器: 只选择元素的直接后代 #nav > li 6. 相邻同胞选择器 h1+p 7. 属性选择器 <iinput title=99 > input[title] {} input[title]:hover {} 8. 属性值 a[rel="sss"]{...} 9. 伪类 a:link a:visited ...
Global site tag (gtag.js) - Google Analytics