Archive for the ‘J2EE’ Category

冒泡排序算法(JAVA)

冒泡排序:和每一个比较,如果比后面大则交换,最终每一趟结果是最大值会沉到后面。 时间复杂度O(n2),最佳情况是已排好序只比较n-1次,不用交换。 int[] bubbleSort(int[] a) { //每个都进行冒泡(一个一个来) for (int i = 0; i < a.length; i++) {   //和前n-i个比较,把最大的数沉下去 int temp; for (int j = 0; j < a.length – i – 1; j++) { if (a[j] > a[j + 1]) { //交换 temp = a[j]; a[j] = a[j + 1]; a[j + 1] = [...]


直接插入排序算法(JAVA版)

直接插入排序:遍历第二个到最后一个,找到每一个值的最佳位置,插进去:) 1.a[i]和前一个值a[i-1]比较,如果小于前一个值 2.设此值为temp,把a[i-1]向后移一位a[i]=a[i-1] 3.检查前面的a[<=i-2]是否有比temp大的,如果比temp大,后移一位 4.直到一个比temp小的或者j=-1,此时把temp赋值到j+1即可 举例子: 原序列:8 4 5 3 第一次 4 8 5 3 第二次 5<8,所以temp = 5, 序列变成 4 8 8 3,然后和i-2=0前面的4比较大小,5>4,所以5应该在1的位置上,把temp赋值到1位置上,4 5 8 3 第三次 3<8,所以temp = 3, 序列变成 4 5 8 8,然后和i-2=2前面的5比较大小,3>5,序列变成 4 5 5 8,再比较3>4,序列变成 4 4 5 8,此时j=-1,那temp肯定在0位上,最终序列3 4 5 8 public class Paixu {   /** * @param [...]


try finally中return的执行顺序

看代码吧,容易懂点。 public class Try { public static void main(String[] args) { System.out.println("最终结果:" + aa()); }   public static int aa() { int a = 1; try { System.out.println("try:" + a);   throw new Exception(); //return a; } catch (Exception e) { a = 2; System.out.println("catch:" + a); return a; } finally { a = 3; [...]


JAVA的==与Equals

以下是我的理解,可能有误 Java中的“==”用来判断是否是同一个对象(对象的引用是不是一样),equals方法一般会被覆盖,主要是比较值,而且一般只和同一类对象比较。 String的比较 public class TestEqual {   public static void main(String[] args) { String a = "abc"; String b = "abc"; String c = new String("abc");//新建了一个对象 String d = new String("abc"); String e = "ab"+"c";//使用常量池中的对象 String f = "ab"; String g = f + "c";//string是固定字符,需要新建对象 System.out.println(a == b);//true,第一次a把字符串放在常量池,那b继续用这个常量,e也一样 System.out.println(a.equals(b));//true System.out.println("a == c?"+(a == c));//false [...]


EL表达式

期待已久的日子即将到来: 最新版JavaServer Pages (JSP)2.0 规范即将和其他的J2EE 1.4一同发布。新的JSP版本有一个新的飞跃,采用了新的方式:由于新的语言表达式(Expression Language,以下简称为EL)和JSP标准标签库(JSP Standard Tag Library ,以下简称为JSTL)这两种新的方式,在页面中不需要用java,对于开发一般的应用来说,重用代码变得更加容易。更具体来说,JSP 2.0带来了以下的优点: 首次被JSTL 1.0引入的EL现在被合并到JSP规范中,就像应用template text一样地使用所有的标准的和定制的组件。 新的EL已经被扩展,具备一个函数调用机制,JSTL1.1整合了一系列经常需要使用的函数。 新增加的变量和servlet 规范定义的错误处理机制被更好地组织起来。通过新增加的变量,JSP error pages 现在可以提供更多的错误信息。 容器因为更加严格的语法检查可以更容易地找出发生的错误。 所有的J2EE 1.4规范(包括JSP 2.0 和 Servlet 2.4),为了声明部署的规则描述而应用了XML schema。这样的好处之一是你现在可以通过任何顺序列出web.xml文件中的描述。JSP 2.0也增加了一些新的配置选项用于部署描述,允许通过全局的配置来代替基于每页的配置。 由于更具伸缩性的规则和新的自定义action element,现在就像编写XML文件一样,编写JSP页面变得更加容易。 定制的标签库现在可以开发成一系列的标签文件(具有JSP元素的文本文件),标签处理器可以使用新的、简化的标签处理器的API。与此同时,新规范加入了一些新的特性,比如:支持在jsp页面上显示动态属性列表和可执行片断属性。 在众多的书籍中,这是头一个讲解JSP 2.0新特性的文章。在这一部分,我们将看到和EL相关的信息,其他的新特性留到后面。在这里我假定读者已经熟悉JSP 1.2,而且至少听说过JSTL。 你可能对这本第三版的《JavaServer Pages》感兴趣。这本书中,我尽可能在细节上讲述所有的内容,而且并不认为你对JSP或者JSTL了解一切。这本书预计在2003年12月 出版,但是你现在可以在http://www.amazon.com、Barnes&Noble,或者其他在线书店预订。 EL(The Expression Language) 如果过去使用过JSTL,那么你可能已经熟悉 了EL。EL在JSTL 1.0规范中被引入,用来在运行期间对Java表达式中action element属性赋值提供另一种选择。当JSTL EL已经非常迅速的流行起来情况下,还是存在一个问题: JSTL EL 表达式仅仅可以与JSTL和custom action一起使用,怎样才能使用非标准API对EL表达式求值? JSP 2.0中,JSP容器自己可以理解EL表达式。这使你在所有过去只能应用Java表达式的地方应用EL表达式成为可能,比如:标准和定制action的属性值,模板文本。 在我们看具体的例子前,让我们更进一步的看看 什么是EL。EL是从JavaScript中获得启发的一种语言,XPath(一种用来访问XML文档的语言),但是EL在对变量的null值和执行更多 [...]


FreeMarker简单入门

freemarker是用来根据模板生成代码的,有强大的模板语言。 项目地址:http://freemarker.sourceforge.net TestFM.java 文件,放在com.fatkun目录下 package com.fatkun; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.Writer; import java.util.HashMap; import java.util.Map;   import freemarker.cache.ClassTemplateLoader; import freemarker.template.Configuration; import freemarker.template.DefaultObjectWrapper; import freemarker.template.Template; import freemarker.template.TemplateException; import freemarker.template.TemplateExceptionHandler;   public class TestFM {   /** * @param args */ public static void main(String[] args) { try { Configuration cfg = new Configuration(); //相对于TestFM类目录下的templates目录, cfg.setTemplateLoader(new [...]