- 博客(116)
- 收藏
- 关注
openfire源码解读第四节---如何加载文件到classpath中与如何通过反射加载文件
第三节中我们阅读了org.jivesoftware.openfire.starter.ServerStarter文件到91行,继续吧!这节我们跳过108行之前的从108行开始学习,91行到107行相对比较简单。从第108行到113行主要做了2件事情第一:加载系统用到的jar包跟zip包到classpath中第二:通过反射加载org.jivesoftware.openfire.X...
2013-05-24 22:52:46 113
openfire源码解读第三节---java中的.pack文件转成jar文件
上一节我们阅读到了org.jivesoftware.openfire.starter.ServerStarter文件中的第90行,这节继续。第90行调用unpackArchives(libDir, true);方法。通过阅读该方法的英文注释大概意思是:转换文件夹中的一些包文件为一个标准的jar文件,在转换jar文件的同时每个被转的包文件就会被删除,如果包文件不存在,那么就什么都不做。...
2013-05-20 10:07:23 394
openfire源码解读第二节---java的System.getProperty()方法可以获取的值
上一节主要学习了jvm的类加载器,这节继续进行,从org.jivesoftware.openfire.starter.ServerStarter文件的第72行进行解读。System.getProperty("openfire.lib.dir");上面这句话是什么意思呢,根据字面意思理解应该是获取到当前项目也就是openfire的lib路径继续往下读,如果存放lib的路径不存在那么就创...
2013-05-19 17:27:12 151
openfire源码解读第一节----ClassLoader的认识与理解
1.openfire的入口main文件在src/java 文件夹下的org.jivesoftware.openfire.starter包中。2.运行main函数之后openfire会调用start方法,首先是获取到ClassLoader对象。那么什么是ClassLoader对象呢?下面具体学习ClassLoader的知识。首先ClassLoader作用是加载Class文件到jv...
2013-05-19 17:25:20 99
原创 Android开源网站
http://actionbarsherlock.com/https://github.com/tjerkw/Android-SlideExpandableListViewhttp://blog.csdn.net/sunboy_2050/article/details/8882236http://www.csdn.net/article/2013-05-06/2815145-And...
2013-05-09 09:32:40 82
原创 Springmvc学习笔记一(maven项目创建与配置)
Springmvc+maven配置 目前springmvc比较火,为了自己不被落后,所以也学习学习spring-mvc,所以就一步一个脚印,从项目搭建开始,这里我用了maven,所以首先用maven创建个项目即我采用的是myeclipse6.5 前提是我已经安装了maven插件,选择新建项目里面有个Maven,展开maven,然后选择Maven proj...
2013-01-24 23:16:30 126
原创 mysql字符串替换
update table set field = replace( field , substring( field , locate(concat('<A ',''), field ), locate(concat('target=_blank>',''),field )+14-locate(conca...
2012-07-25 16:26:48 174
原创 文本框只允许输入中文
群友写的 顺手牵羊 保存了 只能输入中文:<input type='text' name='test' onKeyUp=chkUper(this) onafterpaste=chkUper(this) /><script language="javascript"> function chkUper(obj){ if(/[^\u4E00-\u9...
2012-05-26 18:35:12 180
javaScript设计模式中的掺元类
今天虽然周末但是没有撒懒,因为媳妇要上班所以我得送她下去,一方面也是习惯了早起,睡不住。好久没有发表文章了,今天特意上来发表发表文章 ,呵呵。以下是javascript的掺元类的一个demo,什么是掺元类呢,据我的理解掺元类你可以把他当做c里面的头文件,或者是java中的基类,然后呢其他的类想用这个类里面的方法,那么就直接继承它就可以了,但是这里的继承又不是java中的那种继承,其实更应该理解...
2012-04-22 10:01:54 104
原创 JS递归将字符串中的字符替换为目标字符
//repStr:原字符串--rgExp:被替换的字符--replaceText:去替换的字符 function replaceString(repStr, rgExp, replaceText){ var str = repStr.replace(rgExp, replaceText) if ( str.indexOf(rgExp) != ...
2011-04-06 21:43:44 159
原创 浮点计算方法
//浮点数加法运算 function FloatAdd(arg1,arg2){ var r1,r2,m; try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0} try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0} m=Math.pow(10,M...
2011-01-20 12:57:09 228
原创 利用Apache POI操作Excel文档
众所周知,EXCEL是微软的office套件里的一个产品,使用比较广泛,由于微软产品的特殊性,JAVA标准库里面并没有提供操作EXCEL文档的类,可是在程序开发过程中,如果能将数据输出成一个电子表格的形式,那将有利于用户分析和查看数据. 虽然标准类库没有提供操作方法,但是得益于JAVA是开源的,所以我们可以找到第三方的开源的类库来进行EXCEL的读写操作.我们选用apache的POI库来...
2011-01-16 08:55:48 88
原创 JavaScript使用技巧精萃
(一).确认删除用法: 1. BtnDel.Attributes.Add("onclick","return confirm('"+"确认删除?"+"')"); 2. linktempDelete.Attributes["onclick"]="javascript:return confirm('"+"确认删除?"+"');&quo
2011-01-15 17:23:39 83
原创 JavaScript判断是否为数组
判断一个对象是否为数组比较麻烦,以下是我收集的各种版本Douglas Crockford的版本 var isArray = function(a){ return a && typeof a === 'object' && typeof a.length === 'number' && typeof...
2011-01-15 17:17:36 70
原创 JavaScript通用的加入收藏夹代码
<script type="text/javascript">// <![CDATA[function bookmark(){var title=document.titlevar url=document.location.hrefif (window.sidebar) window.sidebar.addPanel(title, url,"")...
2011-01-15 17:15:24 100
原创 jQuery对下拉框、单选框、多选框的处理
下拉框://得到下拉菜单的选中项的文本(注意中间有空格)var cc1 = $(".formc select[@name='country'] option[@selected]").text();//得到下拉菜单的选中项的值var cc2 = $('.formc select[@name="country"]').val();//得到下拉菜单的选...
2011-01-15 17:13:43 90
原创 Firefox和IE之间7个JavaScript的差异
尽管 JavaScript 历史上使用冗长而令人生厌的代码块来标的特定浏览器的时期已经结束了,但是偶尔使用一些简单的代码块和对象检测来确保一些代码在用户机器上正常工作依然是必要的。这篇文章中,我会略述一下 Internet Explorer 和 Firefox 在 JavaScript 语法上不同的 7 个方面。1. CSS “float” 属性获取给定对象的特定 CS...
2011-01-15 17:12:40 59
原创 JavaScript语法中12个需要绕开的陷阱
1. == Javascript有两组相等运算符,一组是==和!=,另一组是===和!==。前者只比较值的相等,后者除了值以外,还比较类型是否相同。请尽量不要使用前一组,永远只使用===和!==。因为==默认会进行类型转换,规则十分难记。如果你不相信的话,请回答下面五个判断式的值是true还是false: false == 'false' false == un...
2011-01-15 17:10:28 75
原创 JavaScript类和继承:this属性
this属性表示当前对象,如果在全局作用范围内使用this,则指代当前页面对象window; 如果在函数中使用this,则this指代什么是根据运行时此函数在什么对象上被调用。 我们还可以使用apply和call两个全局方法来改变函数中this的具体指向。先看一个在全局作用范围内使用this的例子:<script type="text/javascript"&...
2011-01-15 17:04:36 59
原创 JavaScript类和继承:prototype属性
我们已经在第一章中使用prototype属性模拟类和继承的实现。 prototype属性本质上还是一个JavaScript对象。 并且每个函数都有一个默认的prototype属性。如果这个函数被用在创建自定义对象的场景中,我们称这个函数为构造函数。 比如下面一个简单的场景: // 构造函数 function Person(name) { this.na...
2011-01-15 17:03:34 85
原创 JavaScript类和继承:constructor属性
constructor属性始终指向创建当前对象的构造函数。比如下面例子:// 等价于 var foo = new Array(1, 56, 34, 12); var arr = [1, 56, 34, 12]; console.log(arr.constructor === Array); // true // 等价于 var foo = new Function...
2011-01-15 17:02:41 168
原创 浅析Javascript闭包的特性
Javascript闭包的定义非常晦涩——闭包,是指语法域位于某个特定的区域,具有持续参照(读写)位于该区域内自身范围之外的执行域上的非持久型变量值能力的段落。这些外部执行域的非持久型变量神奇地保留它们在闭包最初定义(或创建)时的值(深连结)。简单来说,Javascript闭包就是在另一个作用域中保存了一份它从上一级函数或作用域取得的变量(键值对),而这些键值对是不会随上一级函数的执行完成...
2011-01-15 17:01:35 71
原创 浅谈不用Cookie实现高亮Javascript菜单效果
笔者经常采用的高亮Javascript菜单效果设计方式,一般的网页至少都有两级菜单,第一个是顶部的总导航条菜单,另一个是左侧的分类导航菜单。一般要求在一级菜单高亮下二级菜单也能记录当前状态。对于一个包含顶部菜单的页头区域如果固定不变的,也就是它不用每次都重新加载,这种情况下用纯CSS或JS方式可以很容易地实现,但今天我要谈的不是这种,今天说的是一级菜单和二级菜单在每个页面中都是动态加载的,...
2011-01-15 17:00:21 69
原创 10个最常用的JavaScript自定义函数
JavaScript自定义函数在平时的开发过程中比较实用,这里介绍的是个最常用的十个JavaScript自定义函数主要涉及添加事件与移除事件等等。(10)addEvent网上最流行的版本是Scott Andrew的,据说javascript界曾举行一场比赛(此事件我们可以在Pro Javascript Techniques第100页看到)或浏览PPK的网站,征求添加事件与移除事...
2011-01-15 16:57:29 85
原创 详解JavaScript中的Array扩展
Javascript中的Array扩展,一般都是从对象本身入手。这里我们将介绍一些Array对象中的一些东西,比如indexOf是返回元素在数组的索引,没有则返回-1等等。最近看了一下developer.mozilla.org里的东西,发现它为Array扩展添加了不少generic method,赶得上Prototype的热心程度。indexOf返回元素在数组的索引,没...
2011-01-15 16:54:57 84
原创 JavaScript常用的2种定义类的方式
1. 混合构造函数/原型方式 function Car(sColor, iDoors, iMpg) { this.color = sColor;this.doors = iDoors;this.mpg = iMpg;this.drivers = new Array(“Mike”, “Sue”);}Car.prototype.showColo...
2011-01-15 16:51:49 79
原创 使用jQuery制作滑动动画效果的层
基本原理这些具有动态效果的滑动盒都基于同样的基本原理。在你经过想要"窥见"对象中的其他两个项目,这个带有".boxgrid"的DIV标签充当着一个窗口。还不明白? 让这个图片来给你线索吧:理解了这个基本原理之后,我们就可以利用滑动元素的动画效果来揭开或遮盖住要展示的区域,以此来创造滑动效果。第一步 – CSS 基础工作在上面给出基本结构的启示图中,我们需要使用一点C...
2011-01-15 16:43:35 116
原创 表单验证中时间起止判断的递归处理
在最近一个项目中,表单验证需要对时间的起止范围进行判断:结束时间需大于或等于开始时间。即:结束年须大于起始年;如果相等,则比较起始月与结束月;如果起止月也相等,则比较日期。那么,对于每一次验证,可以用下面这个函数来进行比较。 function compare(begin,end,error){ var begin = parseInt(begin,10); var...
2011-01-15 16:41:50 88
原创 JavaScript优化细节
作为一名网站开发WEB前端工程师,对自己开发的网站项目应该尽可能地对其性能进行优化,现在互联网上搜索到的网站性能优化多是翻译转载自 Yahoo14条或34条。Yahoo的优化建议关注在大的方面,下面,W3C Group为大家呈现WEB前端开发高性能优化部分之JavaScript的优化细节!一、避免出现脚本失控不论什么脚本,在任何时间、任何浏览器上执行,都不应该超过100毫秒。如果实...
2011-01-15 16:40:57 62
原创 JavaScript函数类型判断完美解决方案
在判断函数类型时,我们通常使用typeof方法,一般情况下,它会得到我们所预想的效果。但是,有一些细节并不为我们所熟知。John Resig 在分析了这些细节之后,为我们提供了一个完美的解决方案,本文将作详细介绍:一、传统方法不为人所知的细节毫无疑问,在判断函数类型时,我们使用的是typeof方法,比如:function fn(){//content...
2011-01-15 16:39:24 82
原创 利用数组缓存正则表达式
如果能用字面量创建正则就最好不过,显然有时我们不得不使用new RegExp()这种大消耗的创建方法,比如语法高亮与排版就大量用到正则表达式,要用到的patten越多,需要的时间就越长,火狐好像是12秒就发出警告,IE就直接假死。这时我们就需要利用组存大法要提高我们程序的性能了。通常摆在我们眼前的如下两种选择来作为我们的容器,数组或对象。我这里选择前者,前者更轻量一点。下面我们就hasCl...
2011-01-15 16:38:24 151
原创 合并排序
javascript版本: function merge(left, right){ var result = []; while (left.length > 0 && right.length > 0){ if (left[0] < right[0]){ result.push(left.shift());//...
2011-01-15 16:37:07 58
原创 冒泡排序
冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到最大数...
2011-01-15 16:34:24 75
原创 快速排序
var qurckSort = function(array){ function qsort(array, begin, end){ if(end>begin){ //找到枢纽 var index = partition(array, begin, end); qsort(array, begin, index-1);...
2011-01-15 16:33:09 49
原创 计数排序
var countSort = function(array) { var i, z = 0, count = [], min = Math.min.apply({}, array), max = Math.max.apply({}, array), size = array.length; //给新数组预填为零 for (i = min; i <= m...
2011-01-15 16:30:28 40
原创 希尔排序
function shellSort(array) { var j, i, v, h=1, s=3, k,n = array.length while(h < n) h=s*h+1; while(h > 1) { h=(h-1)/s; for (k=0; k<h; k++) ...
2011-01-15 16:29:46 32
原创 组合排序
var combSort = function(array){ var gap = array.length; do{ gap = gap * 10 / 13 if(gap === 9 || gap === 10) gap = 11 if(gap < 1){ gap = 1 } var swapped = fals...
2011-01-15 16:29:07 53
原创 鸡尾酒排序
var cocktailSort= function(array) { var top = array.length - 1, bottom = 0,flag = true,i, j; while (flag) { flag = false; //从左到右到大,把最大的放到每次范围的最右边 for (i = bottom; i < top; i++) {...
2011-01-15 16:28:32 49
原创 语法高亮插件SyntaxHighlighter的使用教程
首先到这里下载其源码。里面东西挺多的,我们基本上可以把它放到两个文件夹就是。其中shCore.js与shCore.js与clipboard.swf放到js文件夹中,shCore.css还有另一个CSS文件(随你挑一个吧)与所有图片放到style文件夹中。如果你想高亮html或xml代码,那么就在js多放一个shBrushXml.js,如果要高亮javascript代码,就要多加一个shBrushJ...
2011-01-15 16:27:42 278
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人