﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Sky's blog-随笔分类-java</title><link>http://www.blogjava.net/aoxj/category/27871.html</link><description>我和我追逐的梦</description><language>zh-cn</language><lastBuildDate>Sun, 17 Feb 2013 12:50:39 GMT</lastBuildDate><pubDate>Sun, 17 Feb 2013 12:50:39 GMT</pubDate><ttl>60</ttl><item><title>使用javap命令查看编译版本信息</title><link>http://www.blogjava.net/aoxj/archive/2013/02/17/395349.html</link><dc:creator>sky ao</dc:creator><author>sky ao</author><pubDate>Sun, 17 Feb 2013 07:50:00 GMT</pubDate><guid>http://www.blogjava.net/aoxj/archive/2013/02/17/395349.html</guid><wfw:comment>http://www.blogjava.net/aoxj/comments/395349.html</wfw:comment><comments>http://www.blogjava.net/aoxj/archive/2013/02/17/395349.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoxj/comments/commentRss/395349.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoxj/services/trackbacks/395349.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:     之前遇到几次现场故障，都是和class文件有关，比如版本不兼容造成Bad Version错误之类，需要检查class文件的编译版本信息。 今天无意中发现， jdk自带的javap 命令其实可以方便的搞定这个事情&nbsp;&nbsp;<a href='http://www.blogjava.net/aoxj/archive/2013/02/17/395349.html'>阅读全文</a><img src ="http://www.blogjava.net/aoxj/aggbug/395349.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoxj/" target="_blank">sky ao</a> 2013-02-17 15:50 <a href="http://www.blogjava.net/aoxj/archive/2013/02/17/395349.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>编码最佳实践(6)--那些年，我们一起建的索引</title><link>http://www.blogjava.net/aoxj/archive/2013/01/04/393738.html</link><dc:creator>sky ao</dc:creator><author>sky ao</author><pubDate>Fri, 04 Jan 2013 04:08:00 GMT</pubDate><guid>http://www.blogjava.net/aoxj/archive/2013/01/04/393738.html</guid><wfw:comment>http://www.blogjava.net/aoxj/comments/393738.html</wfw:comment><comments>http://www.blogjava.net/aoxj/archive/2013/01/04/393738.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/aoxj/comments/commentRss/393738.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoxj/services/trackbacks/393738.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 前几次的编码最佳实践系列，我们都着眼于Java代码，今天我们换个话题，看看另外一个领域，和Java代码大相径庭的SQL。 &nbsp;&nbsp;<a href='http://www.blogjava.net/aoxj/archive/2013/01/04/393738.html'>阅读全文</a><img src ="http://www.blogjava.net/aoxj/aggbug/393738.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoxj/" target="_blank">sky ao</a> 2013-01-04 12:08 <a href="http://www.blogjava.net/aoxj/archive/2013/01/04/393738.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>编码最佳实践(5)--小心！这只是冰山一角</title><link>http://www.blogjava.net/aoxj/archive/2012/09/06/387170.html</link><dc:creator>sky ao</dc:creator><author>sky ao</author><pubDate>Thu, 06 Sep 2012 07:09:00 GMT</pubDate><guid>http://www.blogjava.net/aoxj/archive/2012/09/06/387170.html</guid><wfw:comment>http://www.blogjava.net/aoxj/comments/387170.html</wfw:comment><comments>http://www.blogjava.net/aoxj/archive/2012/09/06/387170.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/aoxj/comments/commentRss/387170.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoxj/services/trackbacks/387170.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:     本期的案例依然是来自实际项目，很寻常的代码，却意外遭遇传说中的Java"内存溢出"。 &nbsp;&nbsp;<a href='http://www.blogjava.net/aoxj/archive/2012/09/06/387170.html'>阅读全文</a><img src ="http://www.blogjava.net/aoxj/aggbug/387170.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoxj/" target="_blank">sky ao</a> 2012-09-06 15:09 <a href="http://www.blogjava.net/aoxj/archive/2012/09/06/387170.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>编码最佳实践(4)--小心LinkedHashMap的get()方法</title><link>http://www.blogjava.net/aoxj/archive/2012/06/18/381001.html</link><dc:creator>sky ao</dc:creator><author>sky ao</author><pubDate>Mon, 18 Jun 2012 04:31:00 GMT</pubDate><guid>http://www.blogjava.net/aoxj/archive/2012/06/18/381001.html</guid><wfw:comment>http://www.blogjava.net/aoxj/comments/381001.html</wfw:comment><comments>http://www.blogjava.net/aoxj/archive/2012/06/18/381001.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/aoxj/comments/commentRss/381001.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoxj/services/trackbacks/381001.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 这是一个来自实际项目的例子，在这个案例中，有同事基于jdk中的LinkedHashMap设计了一个LRUCache，为了提高性能，使用了 ReentrantReadWriteLock 读写锁：写锁对应put()方法，而读锁对应get()方法，期望通过读写锁来实现并发get()。&nbsp;&nbsp;<a href='http://www.blogjava.net/aoxj/archive/2012/06/18/381001.html'>阅读全文</a><img src ="http://www.blogjava.net/aoxj/aggbug/381001.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoxj/" target="_blank">sky ao</a> 2012-06-18 12:31 <a href="http://www.blogjava.net/aoxj/archive/2012/06/18/381001.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>编码最佳实践(3)--尽量重用昂贵的初始化对象</title><link>http://www.blogjava.net/aoxj/archive/2012/06/17/380974.html</link><dc:creator>sky ao</dc:creator><author>sky ao</author><pubDate>Sun, 17 Jun 2012 15:02:00 GMT</pubDate><guid>http://www.blogjava.net/aoxj/archive/2012/06/17/380974.html</guid><wfw:comment>http://www.blogjava.net/aoxj/comments/380974.html</wfw:comment><comments>http://www.blogjava.net/aoxj/archive/2012/06/17/380974.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoxj/comments/commentRss/380974.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoxj/services/trackbacks/380974.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 这里将要讲述的是一系列的类似案例，都是在各个产品进行performance tuning时被发现的，非常具有普适性。可以说在日常开发中，有非常大的概率遇到相同或者类似的情形，因此需要对其保持警惕以便避免陷入类似的性能问题。  我们从JAXBContext这个对象开始...&nbsp;&nbsp;<a href='http://www.blogjava.net/aoxj/archive/2012/06/17/380974.html'>阅读全文</a><img src ="http://www.blogjava.net/aoxj/aggbug/380974.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoxj/" target="_blank">sky ao</a> 2012-06-17 23:02 <a href="http://www.blogjava.net/aoxj/archive/2012/06/17/380974.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>编码最佳实践(2)--推荐使用concurrent包中的Atomic类</title><link>http://www.blogjava.net/aoxj/archive/2012/06/16/380926.html</link><dc:creator>sky ao</dc:creator><author>sky ao</author><pubDate>Sat, 16 Jun 2012 09:54:00 GMT</pubDate><guid>http://www.blogjava.net/aoxj/archive/2012/06/16/380926.html</guid><wfw:comment>http://www.blogjava.net/aoxj/comments/380926.html</wfw:comment><comments>http://www.blogjava.net/aoxj/archive/2012/06/16/380926.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/aoxj/comments/commentRss/380926.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoxj/services/trackbacks/380926.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 这是一个真实案例，曾经惹出硕大风波，故事的起因却很简单，就是需要实现一个简单的计数器，每次取值然后加1......&nbsp;&nbsp;<a href='http://www.blogjava.net/aoxj/archive/2012/06/16/380926.html'>阅读全文</a><img src ="http://www.blogjava.net/aoxj/aggbug/380926.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoxj/" target="_blank">sky ao</a> 2012-06-16 17:54 <a href="http://www.blogjava.net/aoxj/archive/2012/06/16/380926.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>编码最佳实践(1)--小心"数据溢出"</title><link>http://www.blogjava.net/aoxj/archive/2012/06/09/380425.html</link><dc:creator>sky ao</dc:creator><author>sky ao</author><pubDate>Sat, 09 Jun 2012 15:27:00 GMT</pubDate><guid>http://www.blogjava.net/aoxj/archive/2012/06/09/380425.html</guid><wfw:comment>http://www.blogjava.net/aoxj/comments/380425.html</wfw:comment><comments>http://www.blogjava.net/aoxj/archive/2012/06/09/380425.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/aoxj/comments/commentRss/380425.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoxj/services/trackbacks/380425.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:     最近在公司内部做了一些收集和整理的工作，关于trouble shooting和performace tuning 中遇到并解决的典型问题，做了一些内部分享。我整理了一下，准备陆续放上来分享给大家。<br><br>    这些问题，单个看每个问题都不算复杂或高深，但是都是在实际项目开发中出现并一度造成困扰的，而且带有一定的普适性，具体表现为不知道这些问题的同学很容易在日常开发中中招。因此我们开了一个专题，叫做编码最佳实践，似乎名字起的有点大......<br><br>    先来看看第一个，如何做compare。&nbsp;&nbsp;<a href='http://www.blogjava.net/aoxj/archive/2012/06/09/380425.html'>阅读全文</a><img src ="http://www.blogjava.net/aoxj/aggbug/380425.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoxj/" target="_blank">sky ao</a> 2012-06-09 23:27 <a href="http://www.blogjava.net/aoxj/archive/2012/06/09/380425.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>slf4j1.6.0-RC0和logback的0.9.20版本不兼容</title><link>http://www.blogjava.net/aoxj/archive/2010/04/26/319353.html</link><dc:creator>sky ao</dc:creator><author>sky ao</author><pubDate>Mon, 26 Apr 2010 00:54:00 GMT</pubDate><guid>http://www.blogjava.net/aoxj/archive/2010/04/26/319353.html</guid><wfw:comment>http://www.blogjava.net/aoxj/comments/319353.html</wfw:comment><comments>http://www.blogjava.net/aoxj/archive/2010/04/26/319353.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoxj/comments/commentRss/319353.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoxj/services/trackbacks/319353.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:     今天，尝试使用slf4j + logback的黄金组合，结果发现有点问题，slf4j和logback的最新版本不兼容。当然slf4j是1.6.0-RC0，正式发布时 logback应该会跟进发布新的版本吧。&nbsp;&nbsp;<a href='http://www.blogjava.net/aoxj/archive/2010/04/26/319353.html'>阅读全文</a><img src ="http://www.blogjava.net/aoxj/aggbug/319353.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoxj/" target="_blank">sky ao</a> 2010-04-26 08:54 <a href="http://www.blogjava.net/aoxj/archive/2010/04/26/319353.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux下tomcat6的开机自动启动脚本</title><link>http://www.blogjava.net/aoxj/archive/2010/04/10/317953.html</link><dc:creator>sky ao</dc:creator><author>sky ao</author><pubDate>Sat, 10 Apr 2010 11:02:00 GMT</pubDate><guid>http://www.blogjava.net/aoxj/archive/2010/04/10/317953.html</guid><wfw:comment>http://www.blogjava.net/aoxj/comments/317953.html</wfw:comment><comments>http://www.blogjava.net/aoxj/archive/2010/04/10/317953.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/aoxj/comments/commentRss/317953.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoxj/services/trackbacks/317953.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: <br>    在SUSE SLES11 下安装好tomcat6后，考虑方便需要设置tomcat为开机自动运行。<br><br>    找到tomcat官方的安装文档 http://tomcat.apache.org/tomcat-6.0-doc/setup.html，按照要求安装，中间发现有些问题，记录下来备忘。&nbsp;&nbsp;<a href='http://www.blogjava.net/aoxj/archive/2010/04/10/317953.html'>阅读全文</a><img src ="http://www.blogjava.net/aoxj/aggbug/317953.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoxj/" target="_blank">sky ao</a> 2010-04-10 19:02 <a href="http://www.blogjava.net/aoxj/archive/2010/04/10/317953.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[share]设计模式快速参考</title><link>http://www.blogjava.net/aoxj/archive/2010/03/25/316533.html</link><dc:creator>sky ao</dc:creator><author>sky ao</author><pubDate>Thu, 25 Mar 2010 07:46:00 GMT</pubDate><guid>http://www.blogjava.net/aoxj/archive/2010/03/25/316533.html</guid><wfw:comment>http://www.blogjava.net/aoxj/comments/316533.html</wfw:comment><comments>http://www.blogjava.net/aoxj/archive/2010/03/25/316533.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/aoxj/comments/commentRss/316533.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoxj/services/trackbacks/316533.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:     从网上找到的一个设计模式快速参考，感觉做的非常的好，分享给大家。&nbsp;&nbsp;<a href='http://www.blogjava.net/aoxj/archive/2010/03/25/316533.html'>阅读全文</a><img src ="http://www.blogjava.net/aoxj/aggbug/316533.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoxj/" target="_blank">sky ao</a> 2010-03-25 15:46 <a href="http://www.blogjava.net/aoxj/archive/2010/03/25/316533.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MANIFEST.MF 文件中奇怪的分行和空格要求</title><link>http://www.blogjava.net/aoxj/archive/2009/08/31/293355.html</link><dc:creator>sky ao</dc:creator><author>sky ao</author><pubDate>Mon, 31 Aug 2009 10:37:00 GMT</pubDate><guid>http://www.blogjava.net/aoxj/archive/2009/08/31/293355.html</guid><wfw:comment>http://www.blogjava.net/aoxj/comments/293355.html</wfw:comment><comments>http://www.blogjava.net/aoxj/archive/2009/08/31/293355.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/aoxj/comments/commentRss/293355.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoxj/services/trackbacks/293355.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; 工作中发现的一个非常奇怪也很有趣事情，有关MANIFEST.MF文件中的分行和空格的格式要求，分享给大家。<br />
<br />
&nbsp;&nbsp;&nbsp; 对于通常的MANIFEST.MF文件，一般格式是：<br />
<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">Class</span><span style="color: #000000;">-</span><span style="color: #000000;">Path:&nbsp;lib</span><span style="color: #000000;">/</span><span style="color: #000000;">a.jar&nbsp;lib</span><span style="color: #000000;">/</span><span style="color: #000000;">b.jar&nbsp;lib</span><span style="color: #000000;">/</span><span style="color: #000000;">c.jar&nbsp;lib</span><span style="color: #000000;">/</span><span style="color: #000000;">d.jar&nbsp;lib</span><span style="color: #000000;">/</span><span style="color: #000000;">e.jar&nbsp;lib</span><span style="color: #000000;">/</span><span style="color: #000000;">f.jar</span></div>
&nbsp;&nbsp;&nbsp; 在一行之内将所有的jar包路径写上，空格分隔即可。<br />
<br />
&nbsp;&nbsp;&nbsp; 但是对于一些大型的项目，因为依赖包众多，比如大于30个，那么如果还写在一行内，就会出现一个长度惊人的行。程序运行倒不会有任何问题，但是对于版本控制就很不友好，如增加或者减少一个依赖包，这行就会被改写。以后compare不同版本时，只能知道这行被修改了确无法直接知道是做了什么修改，必须通过其他方式才能对比出来。<br />
<br />
&nbsp;&nbsp;&nbsp; 同样的问题发生在code merge时，如果两个分支都修改了这个文件，就必须通过手工来进行merge，而且要对照出来彼此到底改了什么，很困难而且容易出错。<br />
<br />
&nbsp;&nbsp;&nbsp; 因此一个改进就是将这个文件中的依赖按照一行一个依赖的方式重写，这样以后修改时只会修改改依赖所在的行，很容易就对比出来具体做了哪些感动，code merge时版本控制软件一般也很容易直接自动merge成功。<br />
<br />
&nbsp;&nbsp;&nbsp; 修改后的文件类似如下：<br />
<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">Class</span><span style="color: #000000;">-</span><span style="color: #000000;">Path:&nbsp;lib</span><span style="color: #000000;">/</span><span style="color: #000000;">a.jar<br />
&nbsp;&nbsp;&nbsp;&nbsp;lib</span><span style="color: #000000;">/</span><span style="color: #000000;">b.jar<br />
&nbsp;&nbsp;&nbsp;&nbsp;lib</span><span style="color: #000000;">/</span><span style="color: #000000;">c.jar<br />
&nbsp;&nbsp;&nbsp;&nbsp;lib</span><span style="color: #000000;">/</span><span style="color: #000000;">d.jar<br />
&nbsp;&nbsp;&nbsp;&nbsp;lib</span><span style="color: #000000;">/</span><span style="color: #000000;">e.jar<br />
&nbsp;&nbsp;&nbsp;&nbsp;lib</span><span style="color: #000000;">/</span><span style="color: #000000;">f.jar</span></div>
<br />
&nbsp;&nbsp;&nbsp; 但是在实际操作时发生了意料之外的问题，会出现异常或者类无法找到，经检查发现问题出现在MANIFEST.MF的格式上，MANIFEST.MF对于分行和空格是有特殊要求的：<br />
<br />
1. 每行的最后一个jar的名称后不容许有空格<br />
&nbsp;&nbsp;&nbsp; 即"&nbsp;&nbsp;&nbsp; lib/b.jar"在b.jar后必须回车结束本行，不能有空格，一个都不能<br />
<br />
2. 每行的开头必须有不少于2个空格<br />
&nbsp;&nbsp;&nbsp; 即"&nbsp;&nbsp;&nbsp; lib/b.jar"在b.jar前必须有不下两个空格<br />
<br />
&nbsp;&nbsp;&nbsp; 以上两个条件有一个不满足都会出现问题，有点古怪。<br />
<br />
<img src ="http://www.blogjava.net/aoxj/aggbug/293355.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoxj/" target="_blank">sky ao</a> 2009-08-31 18:37 <a href="http://www.blogjava.net/aoxj/archive/2009/08/31/293355.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转：Google App Engine正式宣布支持Java！</title><link>http://www.blogjava.net/aoxj/archive/2009/04/08/264472.html</link><dc:creator>sky ao</dc:creator><author>sky ao</author><pubDate>Wed, 08 Apr 2009 08:48:00 GMT</pubDate><guid>http://www.blogjava.net/aoxj/archive/2009/04/08/264472.html</guid><wfw:comment>http://www.blogjava.net/aoxj/comments/264472.html</wfw:comment><comments>http://www.blogjava.net/aoxj/archive/2009/04/08/264472.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/aoxj/comments/commentRss/264472.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoxj/services/trackbacks/264472.html</trackback:ping><description><![CDATA[刚得到的消息，实验了一下可以申请成功，有兴趣的兄弟赶紧。<br />
<br />
新闻出处：<br />
http://www.javaeye.com/news/6754-officially-announced-google-app-engine-to-support-java<br />
由于javaeye申明不容许转载，所以我只能贴出来地址，详情请自己过去看。<br />
<br />
简单点说：<br />
<br />
1. Google App Engine正式宣布支持Java！<br />
<br />
2. Google App Engine 提供1万个名额给感兴趣的Java开发者试用，赶紧注册：http://appengine.google.com/promo/java_runtime <br />
<br />
再简单介绍一下申请流程：<br />
<br />
1. 登录google账号，没有的先申请<br />
2. 有一个短信认证的要求，填入自己的手机号码，比如"+8613900000000"，短信很快的，一般10秒就能下来。<br />
3. 申请app的页面，注意先别急着填application的id和tilte，先看上面，有一行简单的提说说要不要试试java版本的GAE，点进去<br />
4. 这里有一个sing up的按钮，点吧，这个才是真正的申请java版本GAE的地方<br />
5. 成功后会告之收到申请，如何如何。等一会去看gmail，如果成功就会收到一封邮件说account actived。大概3-5分钟吧。<br />
6. 再去申请app吧，慢慢来<br />
<br />
<img src ="http://www.blogjava.net/aoxj/aggbug/264472.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoxj/" target="_blank">sky ao</a> 2009-04-08 16:48 <a href="http://www.blogjava.net/aoxj/archive/2009/04/08/264472.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jdk小工具jps介绍</title><link>http://www.blogjava.net/aoxj/archive/2007/12/29/171447.html</link><dc:creator>sky ao</dc:creator><author>sky ao</author><pubDate>Sat, 29 Dec 2007 03:33:00 GMT</pubDate><guid>http://www.blogjava.net/aoxj/archive/2007/12/29/171447.html</guid><wfw:comment>http://www.blogjava.net/aoxj/comments/171447.html</wfw:comment><comments>http://www.blogjava.net/aoxj/archive/2007/12/29/171447.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/aoxj/comments/commentRss/171447.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoxj/services/trackbacks/171447.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令，简单实用，非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。&nbsp;&nbsp;<a href='http://www.blogjava.net/aoxj/archive/2007/12/29/171447.html'>阅读全文</a><img src ="http://www.blogjava.net/aoxj/aggbug/171447.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoxj/" target="_blank">sky ao</a> 2007-12-29 11:33 <a href="http://www.blogjava.net/aoxj/archive/2007/12/29/171447.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sun的java编译器对string常量表达式的处理和优化</title><link>http://www.blogjava.net/aoxj/archive/2007/12/05/165536.html</link><dc:creator>sky ao</dc:creator><author>sky ao</author><pubDate>Wed, 05 Dec 2007 07:42:00 GMT</pubDate><guid>http://www.blogjava.net/aoxj/archive/2007/12/05/165536.html</guid><wfw:comment>http://www.blogjava.net/aoxj/comments/165536.html</wfw:comment><comments>http://www.blogjava.net/aoxj/archive/2007/12/05/165536.html#Feedback</comments><slash:comments>16</slash:comments><wfw:commentRss>http://www.blogjava.net/aoxj/comments/commentRss/165536.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/aoxj/services/trackbacks/165536.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 首先把问题摆出来，看这个代码段<br><br>String a = "ab";<br>String b = "a" + "b";<br>System.out.println((a == b));<br><br>打印结果会是什么？true or false ?&nbsp;&nbsp;<a href='http://www.blogjava.net/aoxj/archive/2007/12/05/165536.html'>阅读全文</a><img src ="http://www.blogjava.net/aoxj/aggbug/165536.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/aoxj/" target="_blank">sky ao</a> 2007-12-05 15:42 <a href="http://www.blogjava.net/aoxj/archive/2007/12/05/165536.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>