KK

Kim-'s-Blog.Object-Everything.I'm POJO.

.紀-錄.爲了忘卻的記憶..真的勇士,要敢于直面遇到的問題,敢于正視繁雜的原碼......在實踐中積累!

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  74 Posts :: 1 Stories :: 70 Comments :: 0 Trackbacks

#

  if((懂资本+管理)&&(运气好))  
  {  
              公司成功赢利;  
  }  
  else  
  {  
              在各大公司被猎头挖;  
              加年薪赚股票;  
              赚够了;  
  }  
  去建个小别墅退休;
posted @ 2007-03-24 21:57 Kim' 阅读(168) | 评论 (0)编辑 收藏

今天用TOAD执行SQL遇见一个ORA-01795: maximum number of expressions in a list is 1000 错误,
才知道In-list有1000个元素的限制;
经查:
可以使用array bind或者temporary table解决,而且还能绑定变量。
[Limit and conversion very long IN list : WHERE x IN ( ,,, ...) ]


declare
    xx  dbms_sql.varchar2s;
    l_cursor integer default dbms_sql.open_cursor;

begin
   xx(1):='xxxxxxx';
   xx(2):='xxxxx';
   ....
   .....
   ....
 dbms_sql.parse(l_cursor,xx,dbms_sql.native);
  dbms_sql.close_cursor(l_cursor);

end;
/

posted @ 2007-03-16 12:04 Kim' 阅读(3537) | 评论 (0)编辑 收藏

Ctrl+1

快速修复 ( 最经典的快捷键 , 就不用多说了 )

Ctrl+D

删除当前行

Ctrl+Alt+

复制当前行到下一行 ( 复制增加 )

Ctrl+Alt+

复制当前行到上一行 ( 复制增加 )

Alt+

当前行和下面一行交互位置 ( 特别实用 , 可以省去先剪切 , 再粘贴了 )

Alt+

当前行和上面一行交互位置 ( 同上 )

Alt+

前一个编辑的页面

Alt+

下一个编辑的页面 ( 当然是针对上面那条来说了 )

Alt+Enter

显示当前选择资源 ( 工程 ,or 文件 or 文件 ) 的属性

Shift+Enter

在当前行的下一行插入空行 ( 这时鼠标可以在当前行的任一位置 , 不一定是最后 )

Shift+Ctrl+Enter

在当前行插入空行 ( 原理同上条 )

Ctrl+Q

定位到最后编辑的地方

Ctrl+L

定位在某行 ( 对于程序超过 100 的人就有福音了 )

Ctrl+M

最大化当前的 Edit View ( 再按则反之 )

Ctrl+/

注释当前行 , 再按则取消注释

Ctrl+O

快速显示 OutLine

Ctrl+T

快速显示当前类的继承结构

Ctrl+W

关闭当前 Editer

Ctrl+K

参照选中的 Word 快速定位到下一个

Ctrl+E

快速显示当前 Editer 的下拉列表 ( 如果当前页面没有显示的用黑体表示 )

Ctrl+/

( 小键盘 ) 折叠当前类中的所有代码

Ctrl+ ×

( 小键盘 ) 展开当前类中的所有代码

Ctrl+Space

代码助手完成一些代码的插入 ( 但一般和输入法有冲突 , 可以修改输入法的热键 , 也可以暂用 Alt+/ 来代替 )

Ctrl+Shift+E

显示管理当前打开的所有的 View 的管理器 ( 可以选择关闭 , 激活等操作 )

Ctrl+J

正向增量查找 ( 按下 Ctrl+J , 你所输入的每个字母编辑器都提供快速匹配定位到某个单词 , 如果没有 , 则在 stutes line 中显示没有找到了 , 查一个单词时 , 特别实用 , 这个功能 Idea 两年前就有了 )

Ctrl+Shift+J

反向增量查找 ( 和上条相同 , 只不过是从后往前查 )

Ctrl+Shift+F4

关闭所有打开的 Editer

Ctrl+Shift+X

把当前选中的文本全部变味小写

Ctrl+Shift+Y

把当前选中的文本全部变为小写

Ctrl+Shift+F

格式化当前代码

Ctrl+Shift+P

定位到对于的匹配符 ( 譬如 {}) ( 从前面定位后面时 , 光标要在匹配符里面 , 后面到前面 , 则反之 )

下面的快捷键是重构里面常用的 ( : 一般重构的快捷键都是 Alt+Shift 开头的了 )

Alt+Shift+R

重命名 ( 是我自己最爱用的一个了 , 尤其是变量和类的 Rename, 比手工方法能节省很多劳动力 )

Alt+Shift+M

抽取方法 ( 这是重构里面最常用的方法之一了 , 尤其是对一大堆泥团代码有用 )

Alt+Shift+C

修改函数结构 ( 比较实用 , N 个函数调用了这个方法 , 修改一次搞定 )

Alt+Shift+L

抽取本地变量 ( 可以直接把一些魔法数字和字符串抽取成一个变量 , 尤其是多处调用的时候 )

Alt+Shift+F

Class 中的 local 变量变为 field 变量 ( 比较实用的功能 )

Alt+Shift+I

合并变量 ( 可能这样说有点不妥 Inline)

Alt+Shift+V

移动函数和变量 ( 不怎么常用 )

Alt+Shift+Z

重构的后悔药 (Undo)

posted @ 2007-03-10 11:43 Kim' 阅读(325) | 评论 (0)编辑 收藏

看到一篇不错的文章,与大家分享下。
----------------------------------------------------

元旦到来,炮竹声声,辞旧迎新,喜气洋洋。

然而我却高兴不起来,又老了一岁,离死又近了一年!


虽然说得不吉利,但却是事实。灵丹妙药只能让人早死,体格强壮并不增寿延年,求佛信神更是自欺欺人。我几十年来默默研究,但结果却一次次让人失望。

原来人以及每一个高等生物都有“设计寿命”,大多数器官都没有再生能力,甚至没有自我修复能力。随着年龄的增长,功能逐步衰退。最核心的器官,大脑,更是连细胞的再生能力都没有,每天死掉 10 万个细胞,成年后,大脑就进行性的不断萎缩。死亡,不可抗拒!

我绝望了,女娲造人,水平不高。

我开始研究进化论。进化论告诉我们,一个物种要生存,必须与时俱进。这一点很容易接受,因为自然环境在变化,其他物种在变化。但为什么不是这个物种的每个个体“与时俱进”,而是不断的用新一辈替换老一辈?君不见要让一个新的个体成长到成年是多么困难,让老一辈死掉对一个物种来说是多大的浪费。大自然几亿年的生物进化,为什么选择了这样的方案?为什么物种的生存要以其个体的死亡为代价?为什么不是“适者生存”,而是“适者的后代生存”?

直到我做了多年的软件,才终于明白了这里的道理。

我早期的程序大多是用原有程序改写而成。渐渐的,我发现,改程序越来越不容易,当程序大到一定程度后,改写不如重写。后来,我进入了专业软件公司,一位前辈告诉我,早在 60 年代, IBM 就有专家得出结论,如果对一个软件的改动超过 15% ,则改写不如重写。

原来,跟人一样,软件也会死亡!或许,我们可以从这里入手,搞清人为什么会死亡。

如果我们要制作一个有 N 个对象构成的软件,第二个对象需要关心与第一个对象的关系,第三个对象需要关注与第一、第二个对象的关系,第 n 个对象需要关注( n-1 )个关系。或者说,在构筑新软件的过程中,进行一步的难度正比于 N ,或者说正比于系统的复杂度。

如果我在老程序上改动一个对象,则要改动( n-1 )个关系,改动( n-1 )对象,而这( n-1 )个对象又要牵扯 (n-2) 关系和对象,推延下去,在“完全耦合”的前提下,改动一个对象需要对系统中所有对象和所有关系都改动一遍。也就是说,进行一步的难度正比于 N 平方!这就是为什么对于强耦合复杂系统,修改往往不如重做,这一点结论适用于软件,也适用于生物界。

看来女娲造人时作出了最佳选择,因为人是一个强耦合复杂系统,改进一个成年人要比重新培养一个孩子困难得多。要让人类发展,只好让人死亡。

这让我想起了作人工智能软件时的经历。我们当年做的智能软件要用大量数据“训练”。从一个尝试解开始,通过一次又一次的迭代,每一次迭代生成新一代的尝试解,扔掉上一代的尝试解。这样看来,我们每个人只是人类在适应环境的过程中的一个尝试解。我的寿命,只是构筑、测试我这个尝试解所需要的时间。复杂的生物、生存方式应该有更长的寿命。长期稳定环境下的生物也应该有更长的寿命。

总结之,我之所以不能长生不老,是因为( 1 )我是强耦合构造( 2 )我只是一个尝试解。

但是,我还是想长寿!只要能长寿,我愿意答应任何要求!

冬日细雨中突然炸出一声雷响,吓得我手足无措,魂不附体。那是女娲的声音,“尝试弱耦合”。

(From
http://gocom.primeton.com/

posted @ 2007-03-10 11:18 Kim' 阅读(275) | 评论 (0)编辑 收藏

年假归来了,辗转武汉,济南,深圳
半个月没碰JAVA感觉有些空虚
还好马上步入正轨了,
努力,努力.
posted @ 2007-03-04 22:24 Kim' 阅读(176) | 评论 (0)编辑 收藏

正在用Tapestry,教材是4,而IDE MyEclipse是3的,
中间碰到一些差异纪录于此:
1:dtd 文件有不同。
    如4有value,3是expression等等
   <binding name="listener"  expression="listeners.onOk"/>
    <binding name="listener" value="listener:onOk"/>
2:listener方法
    在3中public void formSubmit(IRequestCycle cycle),方法必须
    有一个IRequestCycle参数。参数的取得方式如下:
    Object[] parameters = cycle.getServiceParameters();
posted @ 2007-02-11 15:06 Kim' 阅读(236) | 评论 (0)编辑 收藏

1:Java Rss開源組件包很多,
如RSSLibJ、RSSLib4J、RSS Reader、FaceRSS等等,
本文使用rssutils.jar,Sun網站有提供下載 。
2:用Myeclipse建WebProject,Jar 放入lib中,tld放入WEB-INF下

3:web.xml

<? xml version = "1.0" encoding = "UTF-8" ?>

<! DOCTYPE web-app PUBLIC "-//Sun Microsystems,
Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >

< web-app >

< taglib >

< taglib-uri > /WEB-INF/rssutils.tld </ taglib-uri >

< taglib-location > /WEB-INF/rssutils.tld </ taglib-location >

</ taglib >

</ web-app >
4:index .jsp                 
      以CSDN為例,去網站找到Rss xml http://dev.csdn.net/rss/2.xml

<%@ page language = "java" import = "java.util.*"
 
pageEncoding = "BIG5" %>

<%@ taglib uri = "/WEB-INF/rssutils.tld"
prefix = "rss" %>

< html >

</ head >

< body >

    < rss:feed url = "http://dev.csdn.net/rss/2.xml"
    
feedId = "csdn" />

    < b > Image: </ b >

    < rss:channelImage feedId = "csdn" />

    < br >

    < b > Title: </ b >

    < rss:channelTitle feedId = "csdn" />

    < br >

    < b > Link: </ b >

    < rss:channelLink feedId = "csdn" asLink = "true" />

    < br >

    < b > Description: </ b >

    < rss:channelDescription feedId = "csdn" />

    < br >

    < ul >

        < rss:forEachItem feedId = "csdn" >

            < li >

                < rss:itemDescription feedId = "csdn" />

        </ rss:forEachItem >

    </ ul >

</ body >

</ html >

5:部署、訪問 OK.

posted @ 2007-02-08 09:55 Kim' 阅读(1672) | 评论 (2)编辑 收藏

資訊: Installing web application at context path /testwebwork from URL file:D:\ExadelStudio\tomcat\webapps\testwebwork
2007/2/4 下午 05:00:39 org.apache.catalina.core.StandardContext start
嚴重的: Error filterStart
2007/2/4 下午 05:00:39 org.apache.catalina.core.StandardContext start
嚴重的: Context startup failed due to previous errors
-----------------------------------------------------------------------------
Web.xml文件如下
-----------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 <filter>
  <filter-name>webwork</filter-name>
  <filter-class>
   com.opensymphony.webwork.dispatcher.FilterDispatcher
  </filter-class>
 </filter>
 <filter-mapping>
  <filter-name>webwork</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
.....
.....
</web-app>
-------------------------------------------------------------
原因:?
一般都是Jar包,問題。
Common....jar的版本問題等。Servlet版本問題。
這次的問題在於忘了把根目錄的webwork-2.2.2.jar拷到lib裏了,暈。
另  xwork-tiger.jar 是為JDK150做的。與xwork.jar不能共存。
-------------------------------------------------------------
posted @ 2007-02-04 17:29 Kim' 阅读(711) | 评论 (0)编辑 收藏

想要list中的N在列中显示为报废,Y->良好.....
写Java类:

package com.gecs.feeder;

import org.apache.commons.lang.StringUtils;
import org.extremecomponents.table.bean.Column;
import org.extremecomponents.table.core.TableModel;
import org.extremecomponents.table.intercept.InterceptColumn;

public class YNRIntercept implements InterceptColumn
{

 public void addColumnAttributes(TableModel arg0, Column arg1)
 { }

 public void modifyColumnAttributes(TableModel arg0, Column arg1)
 {
  // TODO Auto-generated method stub
  String career = arg1.getPropertyValueAsString();
  if(StringUtils.contains(career, "Y"))
  {
   arg1.setValue("良好");
  }
  if(StringUtils.contains(career, "N"))
  {
   arg1.setValue("報廢");
  }
  if(StringUtils.contains(career, "R"))
  {
   arg1.setValue("維修");
  }

 }

}



---------------------------------------------------------------
这样使用就OK了
<ec:column property="OKORNG" title="狀態" intercept="com.gecs.feeder.YNRIntercept"></ec:column>

另改变字体样式了可以这样:
String career = column.getPropertyValueAsString();
        if (StringUtils.contains(career, "xxxxx")) {
            column.setStyle("color:#e75a08;font-weight:bold;");
        } else {
            column.setStyle("color:black");
        }


posted @ 2007-01-26 14:59 Kim' 阅读(344) | 评论 (0)编辑 收藏

根源在:D:\jdk142\jre\lib\font.properties文件。
我的服务器系英文系统
用户为繁体
故需将font.properties.zh_TW---〉font.properties
简体系统同理将font.properties.zh 的内容变成
font.properties
当然如果你的服务器是繁体他会自己找font....zh_TW的不用你费心。
posted @ 2007-01-26 10:45 Kim' 阅读(3510) | 评论 (1)编辑 收藏

仅列出标题
共8页: 上一页 1 2 3 4 5 6 7 8 下一页 
jj