MDA/MDD/TDD/DDD/DDDDDDD
posts - 536, comments - 111, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

http://www.lzby.net/boho/blog/?p=207
http://www.lzby.net/boho/blog/?p=206

posted @ 2008-06-20 21:03 leekiang 阅读(486) | 评论 (0)编辑 收藏

YAML是"Yet Another Markup Language(另一种标记语言)"的缩写,读音"yamel",或"雅梅尔"。这种格式大约是2001年出现的
写YAML要比XML快得多(无需关闭标签或引号),并且比'.ini'文档功能更强(ini文档不支持层次)

为什么不是XML呢?因为:

  • YAML的可读性好。
  • YAML和脚本语言的交互性好。
  • YAML使用实现语言的数据类型。
  • YAML有一个一致的信息模型。
  • YAML易于实现。

上面5条也就是XML不足的地方。同时,YAML也有XML的下列优点:

  • YAML可以基于流来处理;
  • YAML表达能力强,扩展性好。

总之,YAML试图用一种比XML更敏捷的方式,来完成XML所完成的任务。

语法

Structure通过空格来展示。Sequence里的项用"-"来代表,Map里的键值对用":"分隔.

这几乎就是所有的语法了. 例子

name: John Smith
age: 37
spouse:
    name: Jane Smith
    age: 25
children:
    -   name: Jimmy Smith
        age: 15
    -   name: Jenny Smith
        age : 12


JYaml(http://jyaml.sourceforge.net/)是YAML的Java实现。
YAML官方网站 http://www.yaml.org
http://www.ibm.com/developerworks/cn/xml/x-cn-yamlintro/
http://www.sudu.cn/info/html/edu/php/20071219/114014.html
http://www.javaeye.com/topic/205679 (定义工作流,用ruby解析)

posted @ 2008-06-19 20:27 leekiang 阅读(9793) | 评论 (1)编辑 收藏

1,PMD
java代码静态检查工具,
可以自定义规则
类似的有findbugs,checkstyle

2,Coverlipse,eclemma
能够把JUnit测试的代码覆盖直观化

3,Bytecode Outline可以把当前的正在编辑Java的文件或者class文件直接显示出其相应的字节码出来,
而且可以进行两个Java文件的字节码比较或者两个class文件的字节码比较
或一个Java文件与一个class文件进行字节码的比较。

posted @ 2008-06-18 20:37 leekiang 阅读(290) | 评论 (0)编辑 收藏

1,HashSet和HashMap
   如果HashSet中的对象或者HashMap的key所属的类都定义了equals方法,则必须重新定义hashCode方法,并且保证任何两个对象equals相等时,这两个对象的hashCode也相等。

posted @ 2008-06-16 07:48 leekiang 阅读(215) | 评论 (0)编辑 收藏

1,两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
 不对,hash code相同
2,当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
 某答案: 应该不可以,synchronized用在方法上就是把这个对象锁死了,在它退出之前别的线程是无法访问这个对象的,就更不用提它的方法了,
如果是这样写
class A {
  String a = "a";
  public void test1(){
    synchronized(a){
    ...
    }
  }
  public void test2(){

  }
}
一个线程访问test1的时候另一个线程是可以访问test2的

3  当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的
    结果,那么这里到底是值传递还是引用传递?
http://saturn.javaeye.com/blog/82123
传的是对象的内存地址(String特殊)
一个对象包含四个方面:reference的内存地址、reference的内存内容、对象值的内存地址、对象值的内存内容。
reference指向对象的含义:reference的内存内容即对象值的内存地址。
当对象作为参数被传送给方法时,传的不是reference本身,而是reference的内存内容,即对象值的内存地址,方法被调用时,复制一份新的reference,指向传入的对象值。如果在方法内改变了对象值,那么方法外的对象也即改变了;如果在方法内将方法参数的reference指向新的对象,方法外的reference仍是指向原来的对象,并没有指向方法内的那个新对象,这时此方法内外参数已经完全失去联系。
至于是值传递还是引用传递,就看这两个词怎么定义了。

4、冒泡排序
 1. 比较相邻的两个数;
 2. 如果左边的数大,则交换两个数;
 3. 右移一位,转1;
 4. 当碰到最近一个排定的数后,返回队列左端重新开始下一趟排序。直到所以数都排定。
5、选择排序
   1. 扫描全部数据一趟,将最小值与第0个位置上的数据交换;
   2. 扫描除第0个位置外的剩下数据,将最小值与第1个位置上的数据交换;
   3. 依此类推,直至全部数据排列有序。
 
6、插入排序
    从数组下标为1的数据开始,依次将其与自身左边的全部或部分数据(部分有序序列)进
     行比较,并插入到适当的位置,使得插入后的序列依然保持部分有序。直至操作完最后一个数
 据为止

7,Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们
    有何区别?
8,写程序用pop3收取gmail的邮件
  做一个线程,每15分钟检查一次邮箱,收取邮箱的邮件,并解码后将标题显示出来
9,一个公司,开始只有3名员工,开始员工年薪2万,以后每下一年年初新招2名,初始工资同上。此公司员工工资年递增10%,  员工工资达到5万后,工资涨幅全部统一为8%.    
问题:  统计公司二十年内每年支付给所有员工的工资额度. 
http://blueocean.javaeye.com/blog/101456
10,如果要设计一个图形系统,请你设计基本的图形元件(Point,Line,Rectangle,Triangle)的简单实现
http://www.blogjava.net/bibi/archive/2006/07/18/58701.html

11,有一栋十层楼的楼,在每个电梯门口放上一颗钻石,这些钻石的大小不同,一人坐电梯从一楼,电梯每到一层楼都开一次门,而且这个人能准确的分辨钻石的大小,请问怎么样能拿到最大的钻石,只有一次机会(就是出了电梯门就进不来了)

12,请估计广州中信大厦是否坚固,写出推理过程。 
   或请估计香港东方明珠电视塔的质量。

13,
  String str1 = "abc";
  String str2 = "abc";
  System.out.println(str1==str2); //true ,此时"abc"放在栈中
 
  String str3 =new String ("abc");
  String str4 =new String ("abc");
  System.out.println(str3==str4); // false ,此时"abe"放在堆中
  java中堆和栈的区别见http://www.blogjava.net/fullfocus/archive/2007/10/28/156485.html

14,线程池  jdk5自带

http://blog.csdn.net/imicro/archive/2007/08/29/1763955.aspx

当一个Web服务器接受到大量短小线程的请求时,使用线程池技术是非常合适的,它可以大大减少线程的创建和销毁次数,提高服务器的工作效率。但如果线程要 求的运行时间比较长,此时线程的运行时间比创建时间要长得多,单靠减少创建时间对系统效率的提高不明显,此时就不适合应用线程池技术,需要借助其它的技术 来提高服务器的服务效率。


posted @ 2008-06-12 01:19 leekiang 阅读(628) | 评论 (0)编辑 收藏

function中的this在没有调用的时候只是一个符号,不代表任何对象。只有当调用的时候才会产生一个内部对象,然后将内部对象的引用指针传递给对象实例。

http://hi.baidu.com/wyt1213/blog/item/865aa0fd0c55631209244ddd.html

posted @ 2008-06-10 01:53 leekiang 阅读(181) | 评论 (0)编辑 收藏

1,整体结构如下

( function () {
// ……
})();
第一对括号里是一个匿名函数,第一对括号表示执行该函数。
注: js的匿名函数模式   http://www.hedgerwow.com/360/dhtml/js-anonymous-function-patterns.html
非匿名函数的类似写法如下
function test(){alert('test');})();
所有的jquery代码都放在该匿名函数里,避免了命名冲突。但有两个要单独处理:'jQuery'和'$'

// Map over jQuery in case of overwrite
var _jQuery = window.jQuery,
// Map over the $ in case of overwrite
    _$ = window.$;

var jQuery = window.jQuery = window.$ = function( selector, context ) {
    
// The jQuery object is actually just the init constructor 'enhanced'
    return new jQuery.fn.init( selector, context );
};
noConflict: function( deep ) {
        window.$ 
= _$;

        
if ( deep )
            window.jQuery 
= _jQuery;

        
return jQuery;
    },
假如没有执行noConflict,则原来定义的$或jQuery(如果定义了的话)会被一个新函数覆盖,只在内部留一个原来的引用(名叫_$或_jQuery)。
如果要兼容原来的$,则执行jQuery.noConflict(),然后只能用jQuery的写法;
极端情况:"jQuery"也被占用了,又要兼容,那么执行var myJQ =jQuery.noConflict(true),以后全用myJQ的写法。
注意:这时jquery.js要放在其他js的后面。
2,
 定义jQuery的构造和原型函数,这个过程同时定义了prototype的别名为fn:jQuery.prototype=jQuery.fn。 jQuery对象的原型prototype包括了诸多的核心方法和属性:
init
jquery 当前的版本号
size 返回了length属性
length
get
each
...
定义完了以后必须写以下代码,不明白
// Give the init function the jQuery prototype for later instantiation(晚初始化?)
jQuery.fn.init.prototype = jQuery.fn;
http://bbs.blueidea.com/thread-2843388-1-1.html
jQuery.prototype.init( selector, context )是jQuery对象的一个成员函数,但是在jQuery构造函数中总是会执行这个函数,所以说"它是加强的构造函数(init constructor 'enhanced')。因为在执行构造函数jQuery 时总是会执行它。 这也是很多框架的典型做法。
jQuery有3个身份,类,对象,函数(构造函数)。
如果find是对象的方法,即类似于 jQuery.find=function(){}
那么就应该使用jQuery.find();

如果find是类的成员函数,即类似于 jQuery.prototype.find=function(){}
那么必须通过jQuery()返回jQuery实例,再调用find方法,即jQuery().find()。

8,jQuery源码解读---执行过程分析
http://hi.baidu.com/zhuguoneng/blog/item/3d07e9d667e9482b06088b4c.html

posted @ 2008-06-07 02:39 leekiang 阅读(4884) | 评论 (2)编辑 收藏

有人辞官归故里,有人漏夜赶科场

抽丝剥茧:丝得一根一根地抽,茧得一层一层地剥。形容分析事物极为细致,而且一步一步很有层次。

SGML:Sounds Great, Maybe Later.

沦肌浃髓:透入肌肉和骨髓。比喻感受深刻。

其来有自


《诗经》有言:“靡不有初,鲜克有终。”
〖解释〗靡:无;初:开始;鲜:少;克:能。
事情都有个开头,但很少能到终了。多用以告诫人们为人做事要善始善终。



posted @ 2008-06-07 00:48 leekiang 阅读(105) | 评论 (0)编辑 收藏

jquery中AJAX的并发执行问题
关于ajax的应用,异步并发,导致的问题



http://www.blogjava.net/emu/archive/2005/11/22/20888.html
CACHE
如果使用xmlhttp控件,在发起http请求的时候IE会包办cache策略,很多时候更新了数据却无法获得更新后的数据。一开始试图用传统方式在URL后面加随机数来强制更新,但是IE仍然距不发出新的请求。

一个解决方法是在后台写expires: 0或者其他的禁止前台cache的头,但是这样在数据没有更新的时候又会带来不必要的服务器压力、响应延迟和带宽浪费。
一个稍微好一点的解决方法是,前台在提交数据以后,需要强制更新数据的时候:

xmlhttp.setRequestHeader("If-Modified-Since","0");


posted @ 2008-05-27 22:48 leekiang 阅读(413) | 评论 (0)编辑 收藏

1,关于大数据量的业务逻辑是放在数据库中运算还是放在服务器中运算的讨论
      http://www.javaeye.com/topic/185451?page=6
2, 当前Java软件开发中几种认识误区
     http://www.jdon.com/mda/nlayes.html
一个有生命的软件首先必须有一个灵活可扩展的基础架构,其次才是完整的功能。
3,  面向对象的思维方法
     http://hi.baidu.com/arccos0520/blog/item/e6b5a0357a01878aa71e12e3.html
4,  何谓精通
     http://www.blogjava.net/BlueDavy/archive/2008/06/12/207495.html
5,将普通的 JavaBean 类存储在 HttpSession 中是很大的隐患。只有将 JavaBean 存储在会话中之后不再对其进行修改时,这种方法才有效。
     http://www.ibm.com/developerworks/cn/java/j-jtp09238.html
6,老IT人追忆十五年IT从业经历
http://blog.csdn.net/phphot/archive/2008/05/29/2493625.aspx
7,首次敏捷项目开发实践
http://www.blogjava.net/ctguzhupan/archive/2007/04/06/109027.html
8,良葛格BLOG,有一些东西
http://caterpillar.onlyfun.net/Gossip/AlgorithmGossip/QuickSort1.htm
9,这里有java、ruby、python对同一个web api的调用代码
http://www.websequencediagrams.com/embedding.html
10,以下摘自http://www.blogjava.net/wangdei1/archive/2008/10/14/234295.html
在真实世界里,我们可能面对非常原始的环境,苛刻的运行时限制,复杂多变的系统环境,令人窒息的细节魔鬼,要对付这些东 西,需要开发者具有在应对复杂性,自己构造环境,在诸多限制条件下寻找解决方案的能力。而这种能力,被无数人无数次地证明是软件开发、特别是软件创新的核 心能力.
尽管C/C++语言作为教学语言有很多的不足,比如不同环境下开发模式差异大,细节繁多,开发效率低,容易犯错,测试和调 试困难,学习者难以保持动力,等等,但是这些问题都可以解决。而C/C++的关键优点,是能够让学习者在真实的计算机抽象上、在大量的细节和矛盾中学会思 考,学会解决问题,学会了解真实的系统,知轻重,明生死,从而建立核心能力。掌握了C/C++ bt语 言,再去学习和理解Java、C#、Python、Ruby和其它语言,就比较容易达到更高的境界。反之,如果习惯了舒舒服服躺在完美世界里当阔少,那就 很难有勇气面对真实的世界。当然,很多开发者认为,现在更重要的能力是理解业务、整合现有资源的能力,而不是处理底层细节的技术。这种说法放在个人身上没 有问题,但是不能成为整个编程教育的指导思想。我们需要各个层面上的人才,精通业务和设计的架构师固然很重要,但能够在底层作出创新成果的编程高手实际上 更为稀缺和珍贵,很多时候也能够创造更大的价值。而且,更重要的是,一个精通系统知识的开发者在往上走的时候不会遇到大的障碍,而一个只知道拼装组合的“ 高级设计师”,往往连往下看的勇气都没有.
编程教育过程,应当是以C/C++(基本上是C)为主线,贯穿起算法、数据结构、系统原理、编译和数据处理、软件 设计和组件技术等关键知识领域,让学生能够从根本上理解现代软件系统的原理和构造,并通过有效的练习建立正确的软件设计观念和良好的工程实践习惯。在这个 基础上,无论将来是深入学习C++,还是进入Java的繁荣世界,或者拥抱Python、Ruby,甚至于走向Web开发,都会心领神会,势如破竹

11,DDD建模过程中,Evans专门谈了MF的分析模式,MF分析模式是分析中一个经典,其中,有一个模式叫:Inventory and Accounting模式,库存与记帐模式:
很多软件系统主要用于跟踪记录track,比如跟踪钱的流动,从一个企业如何赚到钱到如何花钱,跟踪货物从一个点到另外一个点,从仓库入库,到仓库出库,到 发货到客户等等,这些显然有一个共同的特征,我们可以使用accounting and inventory 分析模式思路来解决.
http://www.jdon.com/jivejdon/thread/32474.html

12,
Spring 1.x刚出来时确实忽悠了大家一把,因为他没有领域对象的生命周期支持,直到Spring 2.0才将如new Bean scope,当初那些疯狂捧Spring 1.x 臭脚的所谓高手是不是还是基于数据库驱动的思维,根本没有真正OO模式思维,当今天JBoss Seam、Scopes等框架开始重视对象生命周期支持
http://www.jdon.com/mda/ddd.html

13,这些道理不懂,你注定就是穷打工的命

posted @ 2008-05-25 22:27 leekiang 阅读(226) | 评论 (0)编辑 收藏

仅列出标题
共54页: First 上一页 35 36 37 38 39 40 41 42 43 下一页 Last