<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[brb1983的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/brb1983</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; brb1983]]></copyright><item><title><![CDATA[删除数组中的第N个元素]]></title><link>https://blog.youkuaiyun.com/brb1983/article/details/84287000</link><guid>https://blog.youkuaiyun.com/brb1983/article/details/84287000</guid><author>brb1983</author><pubDate>Mon, 10 Sep 2012 16:17:42 +0800</pubDate><description><![CDATA[

// 删除数组中第n个元素
function mgrQuestionBankQuestionSel_removeElementInArray(tempArray, n) {
	// tempArra表示原始数组
	// n表示第几项，从0开始算起
	if (n &amp;lt; 0) // 如果n&amp;lt;0，则不进行任何操作。
		return tempArray;
	else
		r...]]></description><category></category></item><item><title><![CDATA[6.消除过期的对象引用]]></title><link>https://blog.youkuaiyun.com/brb1983/article/details/84283280</link><guid>https://blog.youkuaiyun.com/brb1983/article/details/84283280</guid><author>brb1983</author><pubDate>Tue, 04 Sep 2012 16:55:05 +0800</pubDate><description><![CDATA[ 
过期引用会导致内存泄漏：
	1.如果一个栈先增长再收缩，那么从栈中弹出来的对象将不会被当作垃圾回收，即使使用栈的程序不再引用这些对象，它们也不会被回收，因为栈内部维护着这些对象的过期引用，从而可能导致内存泄漏。
	2.解决方法是只要一个对象被弹出栈，就将它的引用过期(指向null)
注意：只要类自己管理内存，就应该警惕内存泄漏问题！！！
	内存泄漏的另一个常见来源是缓存。
	3.第...]]></description><category></category></item><item><title><![CDATA[5.避免创建不必要的对象]]></title><link>https://blog.youkuaiyun.com/brb1983/article/details/84283264</link><guid>https://blog.youkuaiyun.com/brb1983/article/details/84283264</guid><author>brb1983</author><pubDate>Tue, 04 Sep 2012 16:44:39 +0800</pubDate><description><![CDATA[最好能重用对象，而不是每次使用时都创建一个新的。如果对象是不可变得，那它就始终可以被重用。
对于同时提供构造器和静态工厂方法的类，通常使用静态工厂方法，以避免创建不必要的对象。
要优先使用基本类型，避免不必要的自动装箱。
 ...]]></description><category></category></item><item><title><![CDATA[4.通过私有构造器强化不可实例化的能力]]></title><link>https://blog.youkuaiyun.com/brb1983/article/details/84283251</link><guid>https://blog.youkuaiyun.com/brb1983/article/details/84283251</guid><author>brb1983</author><pubDate>Tue, 04 Sep 2012 16:26:02 +0800</pubDate><description><![CDATA[对于不需要实例化的类，我们需要添加一个私有的构造器来防止编译器自动添加一个缺省的无参构造器，这样这个类就不能被实例化了。


// Noninstantiable utility class
public class UtilityClass {
// Suppress default constructor for noninstantiability
private UtilityC...]]></description><category></category></item><item><title><![CDATA[3.用私有构造器或枚举类型强化SIngleton属性]]></title><link>https://blog.youkuaiyun.com/brb1983/article/details/84283213</link><guid>https://blog.youkuaiyun.com/brb1983/article/details/84283213</guid><author>brb1983</author><pubDate>Tue, 04 Sep 2012 15:55:19 +0800</pubDate><description><![CDATA[Singleton指仅仅被实例化一次的类。
实现Singleton的两种方法：
1.


// Singleton with public final field
public class Elvis {
    public static final Elvis INSTANCE = new Elvis();
    private Elvis() { ... }
    pub...]]></description><category></category></item><item><title><![CDATA[2.遇到多个构造器参数时要考虑用构建器]]></title><link>https://blog.youkuaiyun.com/brb1983/article/details/84283202</link><guid>https://blog.youkuaiyun.com/brb1983/article/details/84283202</guid><author>brb1983</author><pubDate>Tue, 04 Sep 2012 15:24:15 +0800</pubDate><description><![CDATA[使用builder模式生成对象，参考示例代码


// Builder Pattern
public class NutritionFacts {
private final int servingSize;
private final int servings;
private final int calories;
private final int fat;
private ...]]></description><category></category></item><item><title><![CDATA[1.考虑用静态工厂方法代替构造器]]></title><link>https://blog.youkuaiyun.com/brb1983/article/details/84274430</link><guid>https://blog.youkuaiyun.com/brb1983/article/details/84274430</guid><author>brb1983</author><pubDate>Thu, 16 Aug 2012 16:54:22 +0800</pubDate><description><![CDATA[1.考虑用静态工厂方法代替构造器
 
   例子：
 
public static Boolean valueOf(boolean b){
    return b ? Boolean.TRUE : Boolean.FALSE;
}
 使用静态工厂替代构造器的优势：
	1)他们有名称
	2)不必每次调用都产生新的对象
 	3)可以返回原返回类型任何子类型的对象
	4)创建参数...]]></description><category></category></item><item><title><![CDATA[js判断变量是否空值的代码]]></title><link>https://blog.youkuaiyun.com/brb1983/article/details/84250134</link><guid>https://blog.youkuaiyun.com/brb1983/article/details/84250134</guid><author>brb1983</author><pubDate>Sun, 15 Jul 2012 16:23:45 +0800</pubDate><description><![CDATA[function empty(v){ 
switch (typeof v){ 
case 'undefined' : return true; 
case 'string' : if(trim(v).length == 0) return true; break; 
case 'boolean' : if(!v) return true; break; 
case 'number' : ...]]></description><category></category></item><item><title><![CDATA[Struts性能调整官方文档]]></title><link>https://blog.youkuaiyun.com/brb1983/article/details/84210569</link><guid>https://blog.youkuaiyun.com/brb1983/article/details/84210569</guid><author>brb1983</author><pubDate>Fri, 27 Apr 2012 15:40:03 +0800</pubDate><description><![CDATA[ 
Performance tuning
The following are some tips and tricks to squeeze the most performance out of Struts 2.










Important OGNL updateFor Struts 2 versions before 2.3: the OGNL version 3....]]></description><category></category></item><item><title><![CDATA[Struts2文件下载中文名乱码解决方法]]></title><link>https://blog.youkuaiyun.com/brb1983/article/details/84210544</link><guid>https://blog.youkuaiyun.com/brb1983/article/details/84210544</guid><author>brb1983</author><pubDate>Fri, 27 Apr 2012 15:19:50 +0800</pubDate><description><![CDATA[最近使用Sturts2作文件下载时，发现在不同的浏览器上会有中文文件名乱码的问题，现在把解决方法放在这里，以便留个备份。
 
struts2配置文件如下:
 
&amp;lt;action name=&quot;fileDownLoad&quot; class=&quot;com.test.FileDownloadAction&quot;&amp;gt;
			&amp;lt;result name=&quot;download&quot; type=&quot;stream&quot;&amp;]]></description><category></category></item><item><title><![CDATA[回车自动提交Form表单的问题]]></title><link>https://blog.youkuaiyun.com/brb1983/article/details/84173973</link><guid>https://blog.youkuaiyun.com/brb1983/article/details/84173973</guid><author>brb1983</author><pubDate>Fri, 23 Mar 2012 15:55:56 +0800</pubDate><description><![CDATA[当在一个form中只有一个text元素，这时候如果按回车相当于对form进行了一个submit操作，所以用户在输入完按回车就代表了submit。如果一个form中不是只有一个text元素，而还有其它的text元素的话，就不会自动提交了。所以只有一个text文本框时并不想按回车提交表单的解决方法就是再加一个隐藏的文本框 。
...]]></description><category></category></item><item><title><![CDATA[jquery要怎么写才能速度最快？(zz)]]></title><link>https://blog.youkuaiyun.com/brb1983/article/details/84171403</link><guid>https://blog.youkuaiyun.com/brb1983/article/details/84171403</guid><author>brb1983</author><pubDate>Tue, 20 Mar 2012 10:18:50 +0800</pubDate><description><![CDATA[ 
很久没有关注jQuery了，最近重新看了一下，看到一些不错的文章，转来坐一下笔记。其内容和一些新提供的方法还是很多有值得学习的地方。 1. 使用最新版本的jQuery jQuery的版本更新很快，你应该总是使用最新的版本。因为新版本会改进性能，还有很多新功能。下面就来看看，不同版本的jQuery性能差异有多大。这里是三条最常见的jQuery选择语句：　　$('.elem')　　$('.ele...]]></description><category></category></item><item><title><![CDATA[Spring AOP的底层实现技术（转载）]]></title><link>https://blog.youkuaiyun.com/brb1983/article/details/84152512</link><guid>https://blog.youkuaiyun.com/brb1983/article/details/84152512</guid><author>brb1983</author><pubDate>Mon, 13 Feb 2012 15:58:59 +0800</pubDate><description><![CDATA[



Spring AOP的底层实现技术


 


 



AOP概述
软件的编程语言最终的目的就是用更自然更灵活的方式模拟世界，从原始机器语言到过程语言再到面向对象的语言，我们看到编程语言在一步步用更自然、更强大的方式描述软件。AOP是软件开发思想的一个飞跃，AOP的引入将有效弥补OOP的不足，OOP和AOP分别从纵向和横向对软件进行抽象，有效地消除重复性的代码，使代码以更优雅...]]></description><category></category></item><item><title><![CDATA[AJAX工作原理]]></title><link>https://blog.youkuaiyun.com/brb1983/article/details/84128369</link><guid>https://blog.youkuaiyun.com/brb1983/article/details/84128369</guid><author>brb1983</author><pubDate>Fri, 13 Jan 2012 15:58:33 +0800</pubDate><description><![CDATA[XMLHttpRequest 是 AJAX 的基础
 
所有现代浏览器均支持 XMLHttpRequest 对象（IE5 和 IE6 使用 ActiveXObject）。
 
XMLHttpRequest 用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下，对网页的某部分进行更新。
 
 
创建 XMLHttpRequest 对象
所有现代浏览器（IE7+、Fir...]]></description><category></category></item><item><title><![CDATA[在网页中打开pdf文件]]></title><link>https://blog.youkuaiyun.com/brb1983/article/details/84121291</link><guid>https://blog.youkuaiyun.com/brb1983/article/details/84121291</guid><author>brb1983</author><pubDate>Wed, 28 Dec 2011 10:34:38 +0800</pubDate><description><![CDATA[如果客户端有安装了Adobe reader的话，可以在网页中打开查看pdf文件，代码如下:


&amp;lt;object classid=&quot;clsid:CA8A9780-280D-11CF-A24D-444553540000&quot; width=&quot;990&quot; height=&quot;700&quot; border=&quot;0&quot; top=&quot;-10&quot; name=&quot;pdf&quot;&amp;gt; 
					&amp;l]]></description><category></category></item><item><title><![CDATA[iText学习笔记三_利用RTF创建doc文件]]></title><link>https://blog.youkuaiyun.com/brb1983/article/details/84116863</link><guid>https://blog.youkuaiyun.com/brb1983/article/details/84116863</guid><author>brb1983</author><pubDate>Mon, 19 Dec 2011 14:37:35 +0800</pubDate><description><![CDATA[1.其实创建RTF同创建PDF文件的步骤几乎一样，PDFWriter换成RTFWriter即可
 
 // step 1 创建Document对象
Document document = new Document();
 // step 2 取得RtfWriter
RtfWriter.getInstance(document, new FileOutputStream(filename)...]]></description><category></category></item><item><title><![CDATA[iText学习笔记二_基本构建块（basic building blocks）]]></title><link>https://blog.youkuaiyun.com/brb1983/article/details/84115969</link><guid>https://blog.youkuaiyun.com/brb1983/article/details/84115969</guid><author>brb1983</author><pubDate>Fri, 16 Dec 2011 17:12:23 +0800</pubDate><description><![CDATA[1.iText基本构建包括Chunk，Phrase，Paragraph，Achor，List，ListItem，Chapter，Section，Image，PdfPTable，PdfPCell，ColumnText等
 
2.Document中的add方法的参数是Element，以上那些类都直接或间接的是Elment的扩展。
 
3.Chunks 文本块，
   Phrases 短语，由...]]></description><category></category></item><item><title><![CDATA[iText学习笔记一_五步创建pdf]]></title><link>https://blog.youkuaiyun.com/brb1983/article/details/84114677</link><guid>https://blog.youkuaiyun.com/brb1983/article/details/84114677</guid><author>brb1983</author><pubDate>Wed, 14 Dec 2011 15:14:42 +0800</pubDate><description><![CDATA[1.五步创建PDF文件
 
 // step 1 创建Document对象
Document document = new Document();
 // step 2 取得PdfWriter，使用getInstance，因为基本用不到PdfWriter对象
PdfWriter.getInstance(document, new FileOutputStream(filename));...]]></description><category></category></item><item><title><![CDATA[IText表格PDFPCell垂直居中]]></title><link>https://blog.youkuaiyun.com/brb1983/article/details/84114317</link><guid>https://blog.youkuaiyun.com/brb1983/article/details/84114317</guid><author>brb1983</author><pubDate>Tue, 13 Dec 2011 22:41:20 +0800</pubDate><description><![CDATA[
PdfPCell cell = new PdfPCell();
cell.setUseAscender(true);
cell.setUseDescender(true);
cell.setVerticalAlignment(Element.ALIGN_MIDDLE);]]></description><category></category></item><item><title><![CDATA[Flex中对浏览器窗口控制]]></title><link>https://blog.youkuaiyun.com/brb1983/article/details/84040394</link><guid>https://blog.youkuaiyun.com/brb1983/article/details/84040394</guid><author>brb1983</author><pubDate>Tue, 27 Sep 2011 20:15:07 +0800</pubDate><description><![CDATA[打开一个新浏览器窗口    navigateToURL(new URLRequest(&quot;http://ntt.cc&quot;), &quot;_blank&quot;);刷新浏览器    navigateToURL(new URLRequest(&quot;javascript:location.reload();&quot;),&quot;_self&quot;)关闭浏览器    navigateToURL(new URLRequest(&quot;javascript:...]]></description><category></category></item></channel></rss>