Tag Archives: java

停下来,沉淀一下

冯如杯终于忙完了,一个应该是二等奖,另一个可能有三等奖。昨天在实验室待到12点,赶着把 oo和人机界面的大作业交了。好像日程表一下子空了(除了礼拜四的接口实验考试)。 礼拜天参加IBM面试的时候考官问我有没有打算过出国,我说暂时没想过,等我先在IT领域打拼一阵,觉得累了,需要停下来沉淀了,可能会出国。现在觉得应该放下键盘歇一会儿了 ,当然不是出国,而是回顾一下这一阶段做过的事、写过的代码、接触的新技术。 准备oo大作业的时候看了一下1个礼拜之前才release的代码,觉得很乱,重构了一下,感觉好很多 现在在看mobile ip和ipv6,因为国重那边做的是mobile ipv6相关的研究。《Java与模式》那本书很久没翻了,大概看了一半左右,看到flyweight模式,现在会接下去看。Hibernate也要研究一下,因为ORM是现在web service上的很方便的一种开发模式。 还要总结一下前一阶段的代码、设计心得,去CSDN上写一些blog,暂时打算主题有class loader、BEA的JDK里的系统监控API。 对了,还要研究一下Alloy look and feel的破解问题,因为上一版破解的滚动条不能正确渲染。 还要去上操作系统课,因为听说我被记了好几次旷课 好像事儿还挺多,但不用熬夜写代码了 从今天开始不想跑JBuilder了,省点内存玩游戏

Alloy

Alloy look and feel(http://www.incors.com/lookandfeel/index.php)是一个非常漂亮的Java的look and feel,但是它是收费的,免费的只能使用30天。经过一个晚上和一个白天的努力,我终于成功破解了alloy,心里那叫一个高兴啊,以后再做ui可以有很漂亮的界面了。等两天有空作一个算号器。

程序员的信仰……我想骂人

我们学院开《面向对象技术》课的老师拿Java做讲课语言,讲课时却对Java一知半解,我想骂人…… 这个学期大三(下),终于到了“熬出头”日子,因为全部是专业课,不用再上什么大物啊、数电啊、模电啊这些我一看了课表就想吐的课程,而且还有很多专业选修课可以上,再有就是我们学院的开课老师都挺有名气,像上操作系统的任爱华,上个人软件过程的吴超英……。 一拿到专业选修课的课表,我立马把“面向对象技术”列在选择范围之内,道理很简单,因为Java。第一节课,那老师看上去有快50的年纪,上得还算中规中矩,介绍了一下面向对象技术的历史。但从第二节课开始,他介绍Java基本知识,我的恶梦也开始了…… 首先是类型介绍,他赫然把String和int、double一起作为Java的类型来介绍。然后,他竟然自做主张地把System类划分到了 java.io包下,范例程序中每次从标准输出打印时都要import一下io包。在讲布尔类型时他的幻灯片里还出现了“< boolean>!”(非操作)这样的语法。今天的课上,他把override译成了“重构”,还在Java的collention框架里添加了一个“dictionary”,结果听他一讲原来是map!还有其它的一些错误比如混用“boolean”和“Boolean”、“String”和 “string”、“=”和“==”,真不知道他是不是科班出身。 前些天和同学聊天,我说程序员是有信仰的,对语言的执着、对技术的追求,那就是一种信仰。然而这个老师竟公然亵渎我的信仰,还将这么多的错误知识从讲台上传授下来,真的害人不浅。中国的计算机教育或者说大学计算机教育忽视教学质量,是不是滞后中国软件业发展的一个因素呢?

翻译Nice文档

新出了一种基于Java的语言Nice,看了一下英文文档,觉得很振奋,决定将它译成中文放在csdn的blog上。一共40页,一天译4页,19日完工,记一笔提醒自己

设计模式实战(一)——使用策略模式(strategy pattern)实现多关键字排序

“策略模式”的出现,是为了提供一套相互之间可灵活替换的算法,在不影响上层接口的情况下,用户可以自由选择不同的算法完成逻辑。 策略模式的UML示意图如下: 其中算法的模型接口在“抽象策略”中定义,各具象策略实现不同的策略。“消费API”就是调用不同算法的类,在其内部根据不同需要选择不同的算法。有时需要将具象策略实例化后再传给其它类,这时可以使用“简单工厂”(Simple Factory)或“工厂方法”(Factory Method)生成所需的具象策略。下面就以我正在做的一个项目,简化一下后说明一下策略模式的使用。 该项目是一个小型的商业网站,逻辑层由Servlet实现。用户有一个需求,需要从数据库调出商品信息后能够对记录按名称(name)、规格(standard)、价格(price)和注册日期(register date)进行排序。虽然可以考虑按不同的排序关键字使用不同的sql语句(即不同的order by)查询数据库。但这样做的网络数据流量太大,每次需要从数据库完整地取回一个数据集(ResultSet),所以我选择了将数据集一次取到客户端的一个List中,然后在客户端按不同的关键字对List进行排序。 java.util.Collections类中有一个public static void sort(List list, Comparator comparator)的方法,可以按照不同的Comparator对象对list进行排序,它使用的是快速排序,所以效率非常高。而java.util.Comparator是一个接口: package java.util;   public abstract interface Comparator {     boolean equals(Object object);       int compare(Object object, Object object1); } package java.util; public abstract interface Comparator { boolean equals(Object object); int compare(Object object, Object object1); } 其中和排序有关的是compare方法,它返回一个整数,若第一个参数比第二个参数“大”,则返回一个正数,若“小”则返回一个负数,若“相等”则返回0,这里的“大”、“小”、“相等”是由compare方法具体实现定义的一种比较标准。由这个方法不禁想到C语言中qsort函数中使用的函数指针int *compare(*,*),JAVA中之所以没有函数指针,就是用接口取代了(更详细的介绍见《Effective read more »

java.util.StringTokenization

今天室友老七做数据库大作业,其中要实现一个功能,就是输入一个以“,”分隔的数字串,将得到的数字填入一个数组,他自己写了一个,很笨拙。我提议他用java.util.StringTokenization类。那个类使用起来很方便:     StringTokenizer st = new StringTokenizer("this is a test"," ");     while (st.hasMoreTokens()) {         System.out.println(st.nextToken());     } StringTokenizer st = new StringTokenizer(“this is a test”,” “); while (st.hasMoreTokens()) { System.out.println(st.nextToken()); } 输出: this is a test (构造器中第二个字符串是分隔符的集合,默认是空格)

JBuilder 2005中的Servlet mapping

使用JB进行Servlet好像很方便的样子,但是servlet mapping我试了N遍才终于行了,“url pattern”里好向只能填“*.do”之类的东西,其它的一律不行。

无觅相关文章插件,快速提升流量