`
文章列表
1.   JMS开发步骤 一个JMS应用是几个JMS 客户端交换消息,开发JMS客户端应用由以下几步构成:       1) 用JNDI 得到ConnectionFactory对象;       2) 用ConnectionFactory创建Connection 对象;       3)用Connection对象创建一个或多个JMS Session;
1.  JMS消息模型 JMS消息由以下几部分组成:消息头,属性,消息体。 1)消息头(Header)  消息头包含消息的识别信息和路由信息,消息头包含一些标准的属性如:JMSDestination,JMSMessageID 等。 消息头 由
1.    JMS接口描述 JMS 支持两种消息类型PTP 和Pub/Sub,分别称作:PTP Domain 和Pub/Sub Domain,这两种接口都继承统一的JMS Parent 接口,JMS 主要接口如下所示: 1)        ConnectionFactory 是客户机用来创建与JMS提供者的链接的对象 ...
1. 基本概念       JMS(Java Message Service,Java消息服务)是一组Java应用程序接口(Java API),它提供创建、发送、接收、读取消息的服务。由Sun公司和它的合作伙伴设计的JMS API定义了一组公共的应用程序接口和相应语法,使得Java程序能够和其他消息组件进行通信。   JMS是一种与厂商无关的 API,用来访问消息收发系统。它类似于 JDBC (Java Database Connectivity):这里,JDBC 是可以用来访问许多不同关系数据库的 API,而 JMS 则提供同样与厂商无关的访问方法,以访问消息收发服务。许多厂商目前都 ...
堆排序是利用堆的性质进行的一种选择排序。下面先讨论一下堆。 1. 堆 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]<=key[2i+1]&&Key[i]<=key[2i+2] 或者 Key[i]>=Key[2i+1]&&key>=key[2i+2] 即任何一 ...
快速排序: 通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分关键字小,则分别对这两部分继续进行排序,直到整个序列有序。 把整个序列看做一个数组,把第零个位置看做中轴,和最后一个比,如果比它小交换,比它大不做任何处理; 交换了以后再和小的那端比,比它小不交换,比他大交换。 这样循环往复,一趟排序完成,左边就是比中轴小的,右边就是比中轴大的, 然后再用分治法,分别对这两个独立的数组进行排序。   快速排序是对冒泡排序的一种本质改进。 不稳定,时间复杂度 最理想 O(n) 最差时间O(n^2)   平均复杂度:O(NlogN)   public cla ...
冒泡排序: 就是将第一个记录的关键字和第二个记录的关键字进行比较,  如果后面的比前面的小则交换,然后比较第二个和第三个,依次类推。 比完一趟,最大的那个已经放到了最后的位置,这样就可以对前面N-1个数再循环比较。    稳定,时间复杂度 O(n^2)   public class BubbleSort { public void bubble(Integer[] data) { for (int i = 0; i < data.length; i++) { for (int j = 0; j < data.length - 1 - i; j+ ...
BeanShell介绍           BeanShell是一个小型的、免费的、可嵌入使用Java编写的具有对象脚本语言特性的Java源码解释器。         BeanShell动态执行标准的Java语法并且扩展了诸如弱语言类型、指令以及像Perl和JavaScript的方法闭包的通用脚本。         你可以使用交互式的BeanShell实现Java实验和调试,也可以使用新的方法扩展应用程序。脚本式Java使应用程序更加多样化,快速建模、用户脚本扩展、规则引擎、配置、测试、动态部署、嵌入式系统还有Java训练。         BeanShell具有小型以及可嵌入的特征 ...
预加载和懒加载,是一种改善用户体验的策略,它实际上并不能提高程序性能,但是却可以明显改善用户体验或减轻服务器压力。 预加载原理是在用户查看一张图片时,就将下一张图片先下载到本地,而当用户真正访问下一张图片时,由于本地缓存的原因,无需从服务器端下载,从而达到提高用户体验的目的。为了实现预加载,我们可以实现如下的一个函数。 清单 14. 预加载函数 function preload(callback) { var imageObj = new Image(); images = new Array(); images[0]="pre_image1.jpg&q ...
为了减少传输的数据,压缩是一个不错的选择,而 HTTP 协议支持 GZIP 的压缩格式,服务器响应的报头包含 Content-Encoding: gzip,它告诉浏览器,这个响应的返回数据,已经压缩成 GZIP 格式,浏览器获得数据后要进行解压缩操作。这在一定程度可以减少服务器传输的数据,提高系统性能。那么如何给服务器响应添加 Content-Encoding: gzip 报头,同时压缩响应数据呢?如果你用的是 Tomcat 服务器,打开 $tomcat_home$/conf/server.xml 文件,对 Connector 进行配置,配置如清单 8 所示
不管如何,图片的下载始终都要向服务器发出请求,要是图片的下载不用向服务器发出请求,而可以随着 HTML 的下载同时下载到本地那就太好了。而目前,浏览器已经支持了该特性,我们可以将图片数据编码成 BASE64 的字符串,使用该字符串代替图像地址。假设用 S代表这个 BASE64 字符串,那么就可以使用 <img src="data:image/png;base64,S"> 来显示这个图像。可以看出,图像的数据包含在了 HTML 代码里,无需再次访问服务器。那么图像要如何编码成 BASE64 字符串呢?可以使用 在线的工具---“Base64 Online”,这个 ...
多域名请求   有时候,图片数据太多,一些公司的解决方法是将图片数据分到多个域名的服务器上,这在一方面是将服务器的请求压力分到多个硬件服务器上。另一方面,是利用了浏览器的特性。一般来说,浏览器对于相同域名的图片,最多用 2-4 个线程并行下载。不同浏览器的并发下载数,都是不同的,并发数如下清单所示。    清单 3. 各浏览器的并发下载数 Browsers HTTP/1.1 HTTP/1.0 IE6,7 2 4 IE8 6 ...
CSS Sprites 是一个吸引人的技术,它其实就是把网页中一些背景图片整合到一张图片文件中,再利用 CSS 的“background-image”,“background- repeat”,“background-position”的组合进行背景定位,background-position 可以用数字能精确的定位出背景图片的位置。利用 CSS Sprites 能很好地减少网页的 HTTP 请求,从而大大的提高了页面的性能,这也是 CSS Sprites 最大的优点,也是其被广泛传播和应用的主要原因。 CSS Sprites 能减少图片的字节,由于图像合并后基本信息不用重复,那么多张图片 ...
       减少图片的大小,可以明显的提高性能,而对于已有图片,要想减少图片的大小,只能改变图片的格式,这里推荐的是 PNG8 的格式,它可以在基本保持清晰度的情况下,减少图片的大小。知道这个原理以后,可以用 Windows 的画图工具、以及 PhotoShop 工具逐个的改变。但是这样做的缺点是单张处理,效率太慢。本文推荐一个在线转换工具 Smush.it,可以批量的进行压缩与转换。它的地址是:www.smushit.com/ysmush.it。打开后效果如下图所示。        图 1. Yahoo 提供的在线压缩工具                我们上传了一张大小为 37 ...
1. 内存分配策略 按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的。 静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编译时就可以给他们分配固 ...
Global site tag (gtag.js) - Google Analytics