2005年01月14日

一、从片源分

CAM:通常是用数码摄像机从电影院盗录。有时会使用小三角架,但大多数时候不可能使用,所以摄像机会抖动。同时由于放摄像机的座位并非总是空的,使得有时拍摄不是水平的。如果后期剪裁很好,这很难看出,除非屏幕下方有字幕。由于声音是从摄像机自带的话筒录制,所以经常会录到观众的笑声等声音,尤其是喜剧片。因为这些因素,图象和声音质量通常都很差。但有时很幸运电影院相当空,这样会录到好一些的声音。
TELESYNC(TS):除了使用外置的音源(一般是影院座椅上为听力不好的人设的耳机孔),TELESYSNC(TS)和CAM的标准是相同的。这个直接的音源并不能保证是好的音源,这是它因为受到很多背景噪音的干扰。很多时候TS是在空的影院录制,或是用专业摄像机在投影室录制,所以图象质量可能比CAM好。质量的起伏可能很大,在下载前最好查看SAMPLE。很大比例的TS是从CAM错误标记成。
TELECINE(TC):TELECINE (TC)使用电视电影机从胶片直接数字拷贝,其图象和声音质量应该很好。但由于使用的设备和费用很高,TC很少见。通常会使用正确的高宽比,但有时也有 4:3的 TC。去年的侏罗纪公园III是一个很好的例子。不应将TC和TimeCode(时间码)混淆,时间码是一个在屏幕上可见的计数器。
SCREENER(SCR):是在电影发行VHS录象带之前送到录象出租店及其他地方用做促销目的。SCREENER使用VHS录象带,通常使用4:3(全屏)的高宽比,但有时也会有 LETTERBOXED(1.85:1宽银幕) SCREENER。主要的缺点是有“TICKER”(在屏幕下方滚动的消息,包含版权和反盗版电话号码)。同时,如果录象带包含任何序列号或可以导致查出录象带来源的记号,这些记号必须被遮掉,通常使用一个黑斑遮住上述部位。有时这些记号只出现几秒钟,有时也可能不幸在怎个电影中出现,而且有时会很大。根据使用的设备,SCREENER的质量可能是极好,如果是从原版拷贝;也可能很差,如果是从翻录的拷贝录制,同时又使用很烂的捕捉设备和录象机。大多数的 SCREENER被转制成VCD,现在也出现了SVCD;有些看起来比另一些好。
DVD-SCREENER(DVDscr):和SCREENER相似,但是从DVD转制。通常是1.85:1宽银幕,但是不包括零售版会有的花絮。TICKER经常不在黑边里,所以会影响观看。如果转制者稍有技术,DVDScr应该很好。通常被转制成SVCD或DivX/XviD。
DVDRip:是从最终版的DVD转制。如果可能,应该是使用预售版(比如,星球大战2)。质量应该很好。通常被发布成SVCD或DivX/XviD。
VHSRip:是从零售版VHS录象带转制,主要是滑冰/体育内容和XXX发布。
TVRip:从电视(最好是从数码有线电视/卫星电视捕捉)转制的电视剧,或接收由卫星提前几天向电视网传送的预播节目(不包含加密但有时有雪花)。有些节目,比如 WWF RAW IS WAR包含多余的部分;”DARK MATCHES”和CAMERA/COMMENTARY测试被包含在TVRip里。PDTV是从PCI数码电视卡捕捉,通常效果最好;破解组织倾向于使用 SVCD来发布。VCD/SVCD/DivX/XviD rips也都被用于发布TVRip。
WORKPRITN(WP):是从未完成的电影拷贝转制而成,可能会缺失镜头和音乐。质量可能从最好到很差。有些WP可能和最终版本相差很远。(MEN IN BLACK的WP丢失了所有的外星人,代之以演员);另一些则包括多余的镜头(Jay and Silent Bob)。WPs可以作为有了好质量的最终版本后的附加收藏。

二、从格式分

VCD
SVCD
XVCD/XSVCD
DivX/XviD
CVD: CVD is a combination of VCD and SVCD formats, and is generally supported by a majority of DVD players. Currently no groups release in CVD.
DVD-R
MiniDVD

详细信息看这里

2004年12月20日

给氮分子的电子云照相。成像时间非常之短,使得拍摄电子云成为可能。

Nature, Vol 432, No 7019(16 December 2004)

Henrik Stapelfeldt review了同一期的一篇文章”Tomographic imaging of molecular orbitals

氮气分子的三瓣电子云(轨道)的激光成像。在激光脉冲的一个光学周期(2.7×10-15秒)内,其电场首先沿着极向(图中垂直方向)将一个电子从氮分子上推开,然后迫使它返回与分子碰撞。碰撞将探测到轨道结构和轨道阴影图写入与激光频率高度和谐(调波)的频谱中。(注:调波指一个的频率是另一个的整数倍)经过从分子的不同角度上测量了大量阴影,以断层X光扫描技术重建了电子轨道的三维形状。

2004年12月15日

一个开源的java项目,包含RDF和OWL的JAVA APIs
项目首页:http://jena.sourceforge.net/
Jena is a Java framework for building Semantic Web applications. It provides a programmatic environment for RDF, RDFS and OWL, including a rule-based inference engine.

The Jena Framework includes:



  • A RDF API
  • Reading and writing RDF in RDF/XML, N3 and N-Triples
  • An OWL API
  • In-memory and persistent storage
  • RDQL – a query language for RDF

2004年12月06日

目前经过验证,最简单有效的密码检索式应该是:
“medicine journal password OR pw OR pwd “american heart journal” -telnet -forget -forgot -required”
说明:以上检索在GOOGLE中进行
1. 检索目的在于查找能够提供绝大多数医学杂志的username password的网页,通常医学核心杂志没有不是带有”医学杂志”称谓的,故选择american 和journal.
2. “password OR pw OR pwd” 在于password是password的衍生(当然还有一两个,这里保密),绝大多数不会超过这三个词,不像username 有user name\user login\userlogin\accunt\nickname\userid\user ID…等等衍生.不利于精检.
3. “American Heart Journal”则仁者见仁,智者见智,也可以选其他最知名杂志名称,大大提高检出率,并显著减少工作量.
4 -TELNET 代表删去带有telnet的页面,因为很多医学站点提供的telnet根本永不上,常常与期刊杂志混淆.其他删减原因自明.
5. 当然你还可以增删,包括限定时间,国家,语言,或加入语法.

http://matweb.hcuge.ch/medical_journals/free_medical_journals.htm
http://www.lib.uiowa.edu/hardin/md/ej.html
http://www.freemedicaljournals.com/
http://www.freebooks4doctors.com/
http://www.merck.com/pubs/mmanual/
http://highwire.stanford.edu/lists/freeart.dtl
http://www.health.library.mcgill.ca/ejournal/fulltxt.htm

2004年12月05日




    public Object deepClone()
throws IOException, ClassNotFoundException {
//将对象写入流
ByteArrayOutputStream bo =
new ByteArrayOutputStream();
ObjectOutputStream oo =
new ObjectOutputStream(bo);
oo.writeObject(this);

//从流里读回来
ByteArrayInputStream bi =
new ByteArrayInputStream(bo.toByteArray());
ObjectInputStream oi =
new ObjectInputStream(bi);

return (oi.readObject());
}

这样做的前提条件就是对象以及对象内部所有引用到的对象都是可序列化的(实现java.io.Serializable接口),否则就需要仔细考察那些不可序列化的对象可否设成transient,从而将之排除在复制过程之外。
需要注意的是:如果引用含有循环结构,会造成OutOfMemoryError

通过CSS Validator发现自己写的css中一个错误,就是generic font family是作为关键字的,因此不能用引号。
这几个关键字是 serif, sans-serif, cursive, fantasy, monospace
下面是一个示例:
body {
 font-family: “Geneva”, “Arial”, “Helvetica”, sans-serif;
}

下面引自http://www.w3.org/TR/REC-CSS2/fonts.html#generic-font-families
指出了一些常用的字体属于哪一类。

Generic font families


Generic font families are a fallback mechanism, a means of preserving some of the style sheet author’s intent in the worst case when none of the specified fonts can be selected. For optimum typographic control, particular named fonts should be used in style sheets.


All five generic font families are defined to exist in all CSS implementations (they need not necessarily map to five distinct actual fonts). User agents should provide reasonable default choices for the generic font families, which express the characteristics of each family as well as possible within the limits allowed by the underlying technology.


User agents are encouraged to allow users to select alternative choices for the generic fonts.


serif


Glyphs of serif fonts, as the term is used in CSS, have finishing strokes, flared or tapering ends, or have actual serifed endings (including slab serifs). Serif fonts are typically proportionately-spaced. They often display a greater variation between thick and thin strokes than fonts from the ’sans-serif’ generic font family. CSS uses the term ’serif’ to apply to a font for any script, although other names may be more familiar for particular scripts, such as Mincho (Japanese), Sung or Song (Chinese), Totum or Kodig (Korean). Any font that is so described may be used to represent the generic ’serif’ family.


Examples of fonts that fit this description include:
























Latin fonts Times New Roman, Bodoni, Garamond, Minion Web, ITC Stone Serif, MS Georgia, Bitstream Cyberbit
Greek fonts Bitstream Cyberbit
Cyrillic fonts Adobe Minion Cyrillic, Excelcior Cyrillic Upright, Monotype Albion 70, Bitstream Cyberbit, ER Bukinst
Hebrew fonts New Peninim, Raanana, Bitstream Cyberbit
Japanese fonts Ryumin Light-KL, Kyokasho ICA, Futo Min A101
Arabic fonts Bitstream Cyberbit
Cherokee fonts Lo Cicero Cherokee

sans-serif


Glyphs in sans-serif fonts, as the term is used in CSS, have stroke endings that are plain — without any flaring, cross stroke, or other ornamentation. Sans-serif fonts are typically proportionately-spaced. They often have little variation between thick and thin strokes, compared to fonts from the ’serif’ family. CSS uses the term ’sans-serif’ to apply to a font for any script, although other names may be more familiar for particular scripts, such as Gothic (Japanese), Kai (Chinese), or Pathang (Korean). Any font that is so described may be used to represent the generic ’sans-serif’ family.


Examples of fonts that fit this description include:





















Latin fonts MS Trebuchet, ITC Avant Garde Gothic, MS Arial, MS Verdana, Univers, Futura, ITC Stone Sans, Gill Sans, Akzidenz Grotesk, Helvetica
Greek fonts Attika, Typiko New Era, MS Tahoma, Monotype Gill Sans 571, Helvetica Greek
Cyrillic fonts Helvetica Cyrillic, ER Univers, Lucida Sans Unicode, Bastion
Hebrew fonts Arial Hebrew, MS Tahoma
Japanese fonts Shin Go, Heisei Kaku Gothic W5
Arabic fonts MS Tahoma

cursive


Glyphs in cursive fonts, as the term is used in CSS, generally have either joining strokes or other cursive characteristics beyond those of italic typefaces. The glyphs are partially or completely connected, and the result looks more like handwritten pen or brush writing than printed letterwork. Fonts for some scripts, such as Arabic, are almost always cursive. CSS uses the term ‘cursive’ to apply to a font for any script, although other names such as Chancery, Brush, Swing and Script are also used in font names.


Examples of fonts that fit this description include:















Latin fonts Caflisch Script, Adobe Poetica, Sanvito, Ex Ponto, Snell Roundhand, Zapf-Chancery
Cyrillic fonts ER Architekt
Hebrew fonts Corsiva
Arabic fonts DecoType Naskh, Monotype Urdu 507

fantasy


Fantasy fonts, as used in CSS, are primarily decorative while still containing representations of characters (as opposed to Pi or Picture fonts, which do not represent characters). Examples include:






Latin fonts Alpha Geometrique, Critter, Cottonwood, FB Reactor, Studz

monospace


The sole criterion of a monospace font is that all glyphs have the same fixed width. (This can make some scripts, such as Arabic, look most peculiar.) The effect is similar to a manual typewriter, and is often used to set samples of computer code.


Examples of fonts which fit this description include:

















Latin fonts Courier, MS Courier New, Prestige, Everson Mono
Greek Fonts MS Courier New, Everson Mono
Cyrillic fonts ER Kurier, Everson Mono
Japanese fonts Osaka Monospaced
Cherokee fonts Everson Mono

2004年12月02日






2004年11月30日

    来源:科技日报 
    1953年2月28日,沃森和克里克建立了DNA双螺旋结构,并于4月25日,在英国《自然》杂志发表了文章“核酸的分子结构———脱氧核糖核酸的一个结构模型”。DNA双螺旋结构模型的建立,标志着人类在揭示生命遗传奥秘方面迈出了具有里程碑意义的一步。50年后的2003年也成为全世界科学界庆祝 “DNA双螺旋结构”50周年的国际年:两位科学家当时所在的剑桥大学将主办各种活动;《自然》杂志也将在4月份专门发表祝贺的文章;我国科学家也将在4 月25日举办纪念双螺旋结构建立50周年的学术会议,9月份沃森还将应邀来到中国演讲……
      
    克里克现在身体状况不是很好,在家休养。而沃森长期游历于各国,进行学术交流活动,他参与策划了“人类基因组计划”,并成为美国国家人类基因组研究中心的第一任主任,他长期担任著名的冷泉港实验室的主任。在美国,“冷泉港”被誉为生命科学的圣地,是分子生物学者们神往之处。
   
    沃森和克里克于1953年提出的DNA分子结构模型可以与达尔文的进化论、孟德尔的遗传定律相媲美。这一重大发现为探讨遗传的化学基础开辟了一个新纪元,引起了生物学的一场伟大革命。其结果是在此后不久就完全阐明了遗传密码问题。由于这一伟大科学成果,沃森和克里克获得了诺贝尔奖金。
   
    50年后的今天,以DNA双螺旋结构为基础的生命科学研究仍然如火如荼,但在热闹的背后,人类并没有如两位科学家所预想的那样“揭示生命的奥秘”。在 DNA密码破解半个世纪之际,人们从那以后获取了很多生命科学的相关知识,特别是人类基因组草图宣告完成,表明基因疗法的研究进入新阶段。
   
    但是随着研究的深入,科学家们却面临着越来越多的挑战。基因疗法的疗效问题;出生前基因测试的伦理问题;转基因食品的安全问题等。以DNA双螺旋结构为基础的分子生物学的前途如何?
   
    基因药物和基因疗法受重挫
   
    一些小男孩一出生,他们免疫系统中就缺乏一种重要的基因。这些孩子对一些常见的传染病也特别敏感,甚至会因为普通的感冒而夭折。长期以来科学家对这种病无计可施。几年前,法国科学家通过向孩子的血细胞中植入正常的同类基因,治愈了十来个不满1岁的孩子,使得孩子们可以走出家门,结交自己的朋友。当时,由于这是全世界首例将基因疗法运用于人类,而引起了普遍的关注。
   
    但是科学家们没有想到的是,这种治疗在某些孩子中引起了致命的白血病,在他们的体内被修复过的白细胞无法控制地繁殖,孩子们也不得不重新接受化学治疗来杀死这些白细胞。
   
    这项实验是由法国科学家阿兰·费希尔领导的。接受治疗的孩子都含有与X连锁严重混合免疫缺陷症(X-SCID),患有此病的孩子通常活不了几岁,而且常规的骨髓移植治疗需要精确配型的骨髓,很难找到患者所需的配型,而且骨髓移植的风险较大,效果也不理想。
   
    费希尔的方法是,将孩子们那些有基因缺陷的白细胞移出,并在实验室中将这些白细胞与那些含有男孩所需正常基因的病毒混合,这些病毒会进入白细胞中,将新基因传递给白细胞的DNA;然后医生再将这些修复后的白细胞重新注入孩子们体内。结果非常令人振奋,11个孩子中有9个被治愈。但是去年9月,在接受治疗3 年后,其中一个男孩被诊断为白血病。分子分析表明,一些病毒在错误的位置即LMO2基因处释放了治疗性有效负载,破坏了LMO2基因,从而导致了无法遏止的白细胞分裂。
   
    刚开始,科学家们希望这件事只是运气不好造成的偶然事故,但是,今年1月,同样的问题也在另一个孩子中发现,而且2月初,费希尔的研究小组宣布,对另一个还没表现出症状的孩子的检查发现了同样的分子破坏。现在科学家们认为,其他接受治疗的男孩可能具有同样的危险。病毒将其所负载的基因传递给LMO2基因的几率虽然不到10万分之一,但由于接受转基因治疗的白细胞数量很大,大约有1.5亿个细胞,所以基因错位的细胞还是不少。
   
    现在,是否仅LMO2本身的破坏就足以引起白血病;是否需要其它的破坏才能引发白细胞繁殖过量;还有是否这类破坏只会对还处在免疫系统快速发育期的婴儿产生危险等,这些问题都还不确定。
   
    一些专家认为,类似基因疗法引发白血病的问题在近阶段会增多,因为科学家们在攻克基因疗法长期存在的主要难题方面开始取得重大进展。这些主要难题是:无法使足够多的新基因进入细胞以造成影响,以及无法使被转移的新基因产生效应。
   
    大多数类似的基因疗法实验暂停
   
    由于相关原因还不明确,美国食品和药物管理局(FDA)已经暂停了30多个与费希尔实验小组所用病毒相同的基因疗法实验,该机构也把最新出现的风险告诉了那些参与临床试验的病人。
   
    2月28日,就在DNA双螺旋结构诞生50周年的时候,FDA举行了一次特别会议,会议讨论的主题就是法国研究小组在基因疗法实验中的挫败。这真是惊人的巧合。他们讨论的话题是:如果采取一些安全措施,这些实验是否可以重新恢复。比如,只有当实验中涉及到X-SCID基因(其生物活动总是有助于白细胞的繁殖)时,白血病发生的危险才会比较大。因此,涉及到其它不同基因的类似实验就可以继续进行了。
   
    科学家们表示,一旦能够模拟出人体自身调控基因的复杂方式,基因疗法一定会取得突破。目前该领域的研究方向之一是,放弃法国研究小组在实验中所用的逆转录酶病毒。该病毒曾经因为可以直接将其有效的遗传负载注入细胞的DNA而备受欢迎,但是逆转录酶病毒随机地选择新基因插入细胞DNA的位置,其中一些位置会造成严重的病变。所以研究人员已经开始开发其它的基因传递方式,诸如选择其它种类的病毒作为载体等。
   
    第二个方向是,研究人员正在开发自杀性基因疗法,医生们可以给病人服用一种特殊的药物,从而关闭多余的基因。他们也在开发特殊的基因插入物,这些插入物不仅含有治疗性基因,还携带有能帮助基因识别人体自身信号的DNA,从而随时开启或关闭相关基因。
   
    最后的一个方向是“同源重组”,利用这种方法将不健康的基因移出细胞外,同时将健康的基因和合适的调控物质一起准确注入到相应的位置。今年初,威斯康星州大学的科学家报告他们已经成功地运用“同源重组”的方法培养出人体干细胞。
   
    这些方法虽然距离临床运用还很远,但科学家们坚信,“我们最终会将理想变成现实”。
   
    其实任何技术都有两面性,在基因疗法带来足够疗效的同时,自然也会产生某些副作用。问题是,在此之前,人们对基因疗法的关注总是集中在疗效问题,即是否有足够多的细胞表达有治疗性基因,而现在我们应该换个角度看问题了。
   
    系统生物学将取代以DNA双螺旋为基础的分子生物学
   
    福尔摩斯曾经在“银色马之谜”一案中,成功根据“谋杀之夜看门狗没有狂吠”提供的线索破案。其实遗传学家们所面临的问题与之非常相似,他们可以研究那些携带着病变基因并已发病的病人,但是研究那些携带病变基因却不发病的人们似乎更有意义,通过对这些人的研究,或许我们可以找到预防和治疗疾病的好方法。
   
    自从50年前两位科学家发现DNA分子是一种双螺旋结构后,分子生物学模型的研究占着统治地位,但现在,系统生物学将推翻分子生物学,取代它的统治地位。其实几十年来遗传学家和相关媒体总在告诉人们:DNA决定一个人的命运,事实上情况并不是这样。与分子生物学一次只研究一种基因不同,系统生物学解释生命的奥秘,是综合研究细胞中的所有基因和蛋白质。
   
    系统生物学可以解释为什么那些携带相同致病基因的人们并不都会发病。例如,在携带着BRCA1和BRCA2基因突变(这类基因可以导致乳腺癌和子宫癌)的妇女中,有56%-87%的人会患乳腺癌,28%-44%的人会患上子宫癌;在携带着p16基因的人中,这种基因变异会导致76%的人患上恶性黑色素瘤。一般将一种基因导致某种症状或疾病的可能性称作外显率,不管什么时候,外显率总是不到100%。
   
    曾经因在酵母遗传学领域的发现而荣获2001年诺贝尔医学奖的李·哈特韦尔表示,生物学家们应该通过对“含有相同基因型的生物体”的研究来了解基因的功能,从而解释外显率的问题,但情况往往并非如此。当科学家们认为某个基因是引起家族糖尿病史的原因,但真正的表述应该是,这个基因和家族中成员所共同含有的基因相互作用后才会导致糖尿病。如果把这个基因植入不同遗传背景的100个人中,可能只有几十人会患上糖尿病。哈特韦尔说:“人们普遍认为,自己一出生就拥有与家人一样的基因型,这种基因型的特性很糟,有发病的危险。但是某些人可能在某种基因突变后并不会受到什么影响,而另一些人在遭遇同样的基因突变后却会不幸发病。”
   
    位于纽约的基因网络科学公司(GeneNetworkSciences)正在从事基因相互作用的研究,并已创造了人类癌细胞的模型,这个模型内含有500 多种基因和蛋白质。公司的主席科林·希尔认为,“该模型将以前分别孤立研究的生物过程联系在一起,而事实上这些基因和过程确实是相互关联的,如果不知道这一生物网络,我们就不能真正理解细胞的行为。”
   
    希尔先生还表示,这一模型表明,药物作用于多个靶标,这就是基因药物也会产生副作用的原因。该公司还证明,如果破坏了某个基因或蛋白质,另外的基因将会取而代之,保持细胞的正常活动,细胞也不会因此死亡,“这或许可以解释Erbitux和Iressa等受到争议的抗癌药物为什么只能治疗少数病人。”希尔说。
   
    这些认识可能会对药物开发产生极大的推动作用。长期以来,研究人员只将注意力集中在单靶标药物开发上,但是就像经济学家所说的那样,“只改变一件事是不可能的”。如果只将那些你认为致病的基因破坏,另外的某个基因或蛋白质可能又会呈现相同的功能,病人仍将生病。相反,系统生物学的方法能够识别出那些抑制药物活性或引起副作用的反馈信息。现在,许多从事系统生物学研究的公司也开始开发药物。
   
    系统生物学不只关心那些发生的恶性变异,最不同凡响的是,它能证明良性变异。由美国加州理工大学的艾瑞克·戴卫逊博士领导的研究小组创造了一种“基因调控网络”模型,利用这个模型可以解释海胆的胚胎发育情况。目前为止,该模型整合了55种基因,并证明,当大量分子围绕网络循环流动一周时,这些分子会与 DNA结合,并激活所有的基因。该研究小组还利用这一模型证明了怎样使海胆发育的过程中长出两个内脏。这说明了一个原理:海胆内脏不是单个基因,而是一种基因网络。这一原理同样适用于其它生物,就人类发育而言,这一模型可以解释怎样调控干细胞,使他们分化成人体无数种不同类型的细胞。
   
    系统生物学还处于萌芽阶段,但是已超越了传统的分子生物学,或许分子生物学已经穷途末路。
   
    不管怎样,我们还是应该说:双螺旋,50岁生日快乐!
   

2004年11月28日

Create an Eclipse-based application using the Graphical Editing Framework
Display a UML Diagram using Draw2D
Using Native Drag and Drop with GEF
Graphical Editing Framework (GEF)

2004年11月27日

 “JDK1.5”(开发代号猛虎)的一个重要主题就是通过新增一些特性来简化开发,这些特性包括泛型,for-each 循环,自动装包/拆包,枚举,可变参数, 静态导入 。使用这些特性有助于我们编写更加清晰,精悍,安全的代码。

下面我们简单介绍一下这些新特性。
1.泛型(Generic)
C+ +通过模板技术可以指定集合的元素类型,而Java在1.5之前一直没有相对应的功能。一个集合可以放任何类型的对象,相应地从集合里面拿对象的时候我们也不得不对他们进行强制得类型转换。猛虎引入了泛型,它允许指定集合里元素的类型,这样你可以得到强类型在编译时刻进行类型检查的好处。
Collection<String> c = new ArrayList();
c.add(new Date());
编译器会给出一个错误,
add(java.lang.String) in java.util.Collection<java.lang.String> cannot be applied to (java.util.Date)


2.For-Each循环
For-Each循环得加入简化了集合的遍历。假设我们要遍历一个集合对其中的元素进行一些处理。典型的代码为:
void processAll(Collection c){
    for(Iterator i=c.iterator(); i.hasNext();){
        MyClass myObject = (MyClass)i.next();
        myObject.process();
    }
}
使用For-Each循环,我们可以把代码改写成,
void processAll(Collection<MyClass> c){
    for (MyClass  myObject :c)
        myObject.process();
}
这段代码要比上面清晰许多,并且避免了强制类型转换。


3.自动装包/拆包(Autoboxing/unboxing)
自动装包/拆包大大方便了基本类型数据和它们包装类地使用。
自动装包:基本类型自动转为包装类.(int >> Integer)
自动拆包:包装类自动转为基本类型.(Integer >> int)
在JDK1.5之前,我们总是对集合不能存放基本类型而耿耿于怀,现在自动转换机制解决了我们的问题。
int a = 3;
Collection c = new ArrayList();
c.add(a);//自动转换成Integer.

Integer b = new Integer(2);
c.add(b + 2);
这里Integer先自动转换为int进行加法运算,然后int再次转换为Integer.


4.枚举(Enums)
JDK1.5加入了一个全新类型的“类”-枚举类型。为此JDK1.5引入了一个新关键字enmu. 我们可以这样来定义一个枚举类型。
 
public enum Color
{
   Red,
   White,
   Blue
}
然后可以这样来使用Color myColor = Color.Red.
枚举类型还提供了两个有用的静态方法values()和valueOf(). 我们可以很方便地使用它们,例如
for (Color c : Color.values())
            System.out.println(c);

5.可变参数(Varargs)
可变参数使程序员可以声明一个接受可变数目参数的方法。注意,可变参数必须是函数声明中的最后一个参数。假设我们要写一个简单的方法打印一些对象,
util.write(obj1);
util.write(obj1,obj2);
util.write(obj1,obj2,obj3);

在JDK1.5之前,我们可以用重载来实现,但是这样就需要写很多的重载函数,显得不是很有效。如果使用可变参数的话我们只需要一个函数就行了
public void write(Object… objs) {
   for (Object obj: objs)
      System.out.println(obj);
}
在引入可变参数以后,Java的反射包也更加方便使用了。对于c.getMethod(“test”, new Object[0]).invoke(c.newInstance(), new Object[0])),
现在我们可以这样写了c.getMethod(“test”).invoke(c.newInstance()),这样的代码比原来清楚了很多。 


6.静态导入(Static Imports)
要使用用静态成员(方法和变量)我们必须给出提供这个方法的类。使用静态导入可以使被导入类的所有静态变量和静态方法在当前类直接可见,使用这些静态成员无需再给出他们的类名。
import static java.lang.Math.*;
…….
r = sin(PI * 2); //无需再写r = Math.sin(Math.PI);
不过,过度使用这个特性也会一定程度上降低代码地可读性。