﻿<?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-风萧萧兮~~易水寒~~~</title><link>http://www.blogjava.net/xjacker/</link><description>互联网大杂烩</description><language>zh-cn</language><lastBuildDate>Sun, 03 May 2026 08:12:00 GMT</lastBuildDate><pubDate>Sun, 03 May 2026 08:12:00 GMT</pubDate><ttl>60</ttl><item><title>发一则公司的招聘启示，招数仓工程师</title><link>http://www.blogjava.net/xjacker/archive/2010/10/27/336250.html</link><dc:creator>风萧萧兮</dc:creator><author>风萧萧兮</author><pubDate>Wed, 27 Oct 2010 01:49:00 GMT</pubDate><guid>http://www.blogjava.net/xjacker/archive/2010/10/27/336250.html</guid><wfw:comment>http://www.blogjava.net/xjacker/comments/336250.html</wfw:comment><comments>http://www.blogjava.net/xjacker/archive/2010/10/27/336250.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xjacker/comments/commentRss/336250.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xjacker/services/trackbacks/336250.html</trackback:ping><description><![CDATA[<font style="font-size: 10.5pt;" color="#000000" face="微软雅黑"><br />
岗位职责：&nbsp;<br />
<br />
1.对业务数据进行分析、建模，为业务部门的数据化运营提供技术支持；<br />
2.参与数据仓库平台设计。&nbsp;</font><font style="font-size: 10.5pt;" color="#000000" face="Microsoft YaHei Western">&nbsp;</font><font style="font-size: 10.5pt;" color="#000000" face="微软雅黑"><br />
<br />
岗位要求：<br />
1.计算机、数据、统计等相关专业本科及以上学历；<br />
2.精通</font><strong><font style="font-size: 10.5pt;" color="#ff0000" face="微软雅黑">C/C++</font></strong><font style="font-size: 10.5pt;" color="#000000" face="微软雅黑">编程，熟悉脚本语言BASH或PHP/Perl/Python等编程；&nbsp;<br />
3.精通数据仓库方法论和常规ETL构架,至少精通一种数据库（ORACLE更佳），有丰富的SQL性能调优经验；&nbsp;<br />
4.3年以上C/C++编程经验；大型数据仓库实施经验，有分布式计算机平台经验者优先；<br />
5.具备良好的逻辑分析、沟通能力；对商业和业务逻辑敏感。<br />
6.性格积极乐观，诚信，能承受较大的工作压力。<br />
<br />
有意可联系我，联系方式：<br />
email：xjacker@126.com<br />
QQ：397557846<br />
<br />
公司是杭州的一家电子商务公司，你懂得。<br />
<br />
</font>
<img src ="http://www.blogjava.net/xjacker/aggbug/336250.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xjacker/" target="_blank">风萧萧兮</a> 2010-10-27 09:49 <a href="http://www.blogjava.net/xjacker/archive/2010/10/27/336250.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JQuery的强大筛选器</title><link>http://www.blogjava.net/xjacker/articles/335717.html</link><dc:creator>风萧萧兮</dc:creator><author>风萧萧兮</author><pubDate>Wed, 20 Oct 2010 11:10:00 GMT</pubDate><guid>http://www.blogjava.net/xjacker/articles/335717.html</guid><wfw:comment>http://www.blogjava.net/xjacker/comments/335717.html</wfw:comment><comments>http://www.blogjava.net/xjacker/articles/335717.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xjacker/comments/commentRss/335717.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xjacker/services/trackbacks/335717.html</trackback:ping><description><![CDATA[<div id="blog_text" class="cnt"><font size="3">在Web应用程序中，大部分的客
户端操作都是基于对象的操作，要操作对象就必须先获取对象，jQuery(v1.3.2)提供了强大的选择器让我们获取对
象。在这边，我人为地将jQuery选择器分为两大部分：选择对象和筛选条件。选择对象表示要获取什么对象，筛选条件是对获取的对象进行筛选，最终留下符
合某些特征的对象。<br />
<br />
<strong>1.选择对象</strong><br />
<br />
<span style="color: brown;">1).基本</span><br />
<br />
&#183;<span style="color: green;">#id</span> </font>
<font size="3">根据给定的ID匹配一个元素。例如：$("#id")<br />
&#183;<span style="color: green;">element</span> 根据给定的元素名匹配所有元素。例如：$("div")<br />
&#183;<span style="color: green;">.class</span> 根据给定的类匹配元素。例如：$(".style1");<br />
&#183;<span style="color: green;">*</span> 匹配所有元素。例如：$("*")<br />
&#183;<span style="color: green;">selector1,selector2,selectorN</span> 将每一个选择器匹配到的元素合并后一起返回。例如：$("#id,div,.style1")<br />
<br />
<span style="color: brown;">2).表单</span><br />
<br />
&#183;<span style="color: green;">:button</span> 匹配所有按钮。例如：$(":button")<br />
&#183;<span style="color: green;">:checkbox</span> 匹配所有复选框。例如：$(":checkbox")<br />
&#183;<span style="color: green;">:file</span> 匹配所有文件域。例如：$(":file")<br />
&#183;<span style="color: green;">:hidden</span> 匹配所有不可见元素，或者type为hidden的元素。例如：$("input:hidden")<br />
&#183;<span style="color: green;">:image</span> 匹配所有图像域。例如：$(":image")<br />
&#183;<span style="color: green;">:input</span> 匹配所有 input, textarea, select 和 button 元素。例如：$(":input")<br />
&#183;<span style="color: green;">:password</span> 匹配所有密码框。例如：$(":password")<br />
&#183;<span style="color: green;">:radio</span> 匹配所有单选按钮。例如：$(":radio")<br />
&#183;<span style="color: green;">:reset</span> 匹配所有重置按钮。例如：$(":reset")<br />
&#183;<span style="color: green;">:submit</span> 匹配所有提交按钮。例如：$(":submit")<br />
&#183;<span style="color: green;">:text</span> 匹配所有的单行文本框。例如：$(":text")<br />
&#183;<span style="color: green;">:header</span> 匹配如 h1, h2, h3之类的标题元素。例如：$(":header").css("background", "#EEE");<br />
<br />
<strong>2.筛选条件</strong><br />
<br />
<span style="color: brown;">1).属性筛选</span><br />
<br />
&#183;<span style="color: green;">[attribute*=value]</span> 匹配给定的属性是以包含某些值的元素。例如：$("input[name*='man'")<br />
&#183;<span style="color: green;">[attribute!=value]</span> 匹配所有含有指定的属性，但属性不等于特定值的元素。例如：$(input[name!='man');<br />
&#183;<span style="color: green;">[attribute$=value]</span> 匹配给定的属性是以某些值结尾的元素。例如：$("input[name$='man']")<br />
&#183;<span style="color: green;">[attribute=value]</span> 匹配给定的属性是某个特定值的元素。例如：$("input[name='man']");<br />
&#183;<span style="color: green;">[attribute]</span> 匹配包含给定属性的元素。例如：$("div[id]")<br />
&#183;<span style="color: green;">[attribute^=value]</span> 匹配给定的属性是以某些值开始的元素。例如：$("input[name^='man']")<br />
&#183;<span style="color: green;">[selector1][selector2][selectorN]</span> 同时满足多个条件。例如：$("input[id][name$='man']")<br />
&#183;<span style="color: green;">:hidden</span> 匹配所有的不可见元素。例如：$("tr:hidden")<br />
&#183;<span style="color: green;">:visible</span> 匹配所有的可见元素。例如：$("tr:visible")<br />
&#183;<span style="color: green;">:checked</span> 匹配所有选中的被选中元素(复选框、单选框等，不包括select中的option)。例如：$("input:checked")<br />
&#183;<span style="color: green;">:disabled</span> 匹配所有不可用元素。例如：$("input:disabled")<br />
&#183;<span style="color: green;">:enabled</span> 匹配所有可用元素。例如：$("input:enabled")<br />
&#183;<span style="color: green;">:selected</span> 匹配所有选中的option元素。例如：$("select option:selected")<br />
<br />
<span style="color: brown;">2).内容筛选</span><br />
<br />
&#183;<span style="color: green;">:contains(text)</span> 匹配包含给定文本的元素。例如：$("div:contains('John')")<br />
&#183;<span style="color: green;">:empty</span> 匹配所有不包含子元素或者文本的空元素。例如：$("td:empty")<br />
&#183;<span style="color: green;">:has(selector)</span> 匹配含有选择器所匹配的元素的元素。例如：$("div:has(p)");<br />
&#183;<span style="color: green;">:parent</span> 匹配含有子元素或者文本的元素。例如：$("td:parent")<br />
<br />
<span style="color: brown;">3).层级筛选</span><br />
<br />
&#183;<span style="color: green;">ancestor descendant</span> 在给定的祖先元素下匹配所有的后代元素。例如：$("form input")<br />
&#183;<span style="color: green;">parent &gt; child</span> 在给定的父元素下匹配所有的子元素。例如：$("form &gt; input")<br />
&#183;<span style="color: green;">prev + next</span> 匹配所有紧接在 prev 元素后的 next 元素。例如：$("label + input")<br />
&#183;<span style="color: green;">prev ~ siblings</span> 匹配 prev 元素之后的所有 siblings 元素。例如：$("form ~ input")<br />
&#183;<span style="color: green;">:first-child</span> 匹配第一个子元素。例如：$("ul li:first-child")<br />
&#183;<span style="color: green;">:last-child</span> 匹配最后一个子元素。例如：$("ul li:last-child")<br />
&#183;<span style="color: green;">:nth-child(index/even/odd/equation)</span> 匹配其父元素下的第N个子或奇偶元素。例如：$("ul li:nth-child(2)")<br />
&#183;<span style="color: green;">:only-child</span> 如果某个元素是父元素中唯一的子元素，那将会被匹配。例如：$("ul li:only-child")<br />
<br />
<span style="color: brown;">4).方法筛选</span><br />
<br />
&#183;<span style="color: green;">:animated</span> 匹配所有正在执行动画效果的元素。例如：$("div:animated");<br />
&#183;<span style="color: green;">:eq(index)</span> 匹配一个给定索引值的元素。例如：$("tr:eq(1)")<br />
&#183;<span style="color: green;">:even</span> 匹配所有索引值为偶数的元素，从 0 开始计数。例如：$("tr:even")<br />
&#183;<span style="color: green;">:first</span> 匹配找到的第一个元素。例如：$("tr:first")<br />
&#183;<span style="color: green;">:gt(index)</span> 匹配所有大于给定索引值的元素，从 0 开始计数。例如：$("tr:gt(0)")<br />
&#183;<span style="color: green;">:last</span> 匹配找到的最后一个元素。例如：$("tr:last")<br />
&#183;<span style="color: green;">:lt(index)</span> 匹配所有小于给定索引值的元素。例如：$("tr:lt(2)")<br />
&#183;<span style="color: green;">:not(selector)</span> 去除所有与给定选择器匹配的元素。例如：$("input:not(:checked)")<br />
&#183;<span style="color: green;">:odd</span> 匹配所有索引值为奇数的元素，从 0 开始计数。例如：$("tr:odd")<br />
<br />
<br />
</font><font size="3">转自：</font>http://hi.baidu.com/%BA%EB%D3%EE%D8%BC/blog/item/1ec289664995c22fab184cab.html<br />
</div>
<img src ="http://www.blogjava.net/xjacker/aggbug/335717.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xjacker/" target="_blank">风萧萧兮</a> 2010-10-20 19:10 <a href="http://www.blogjava.net/xjacker/articles/335717.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTTP长连接</title><link>http://www.blogjava.net/xjacker/articles/334709.html</link><dc:creator>风萧萧兮</dc:creator><author>风萧萧兮</author><pubDate>Tue, 12 Oct 2010 20:23:00 GMT</pubDate><guid>http://www.blogjava.net/xjacker/articles/334709.html</guid><wfw:comment>http://www.blogjava.net/xjacker/comments/334709.html</wfw:comment><comments>http://www.blogjava.net/xjacker/articles/334709.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/xjacker/comments/commentRss/334709.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xjacker/services/trackbacks/334709.html</trackback:ping><description><![CDATA[<p>尝试翻译片技术文章。<br />
<br />
What is HTTP Persistent Connections?<br />
HTTP persistent connections, also called HTTP keep-alive, or HTTP connection reuse, is the idea of using the same TCP connection to send and receive multiple HTTP requests/responses, as opposed to opening a new one for every single request/response pair. Using persistent connections is very important for improving HTTP performance. <br />
<br />
什么是HTTP长连接？<br />
HTTP长连接，与一般每次发起http请求或响应都要建立一个tcp连接不同，http长连接利用同一个tcp连接处理多个http请求和响应，也叫HTTP keep-alive，或者http连接重用。使用http长连接可以提高http请求/响应的性能。</p>
<p>There are several advantages of using persistent connections, including:</p>
Network friendly. Less network traffic due to fewer setting up and tearing down of TCP connections. <br />
Reduced latency on subsequent request. Due to avoidance of initial TCP handshake <br />
Long lasting connections allowing TCP sufficient time to determine the congestion state of the network, thus to react appropriately. <br />
<br />
使用http长连接有很多好处，包括：<br />
<br />
更少的建立和关闭tcp连接，可以减少网络流量。<br />
因为已建立的tcp握手，减少后续请求的延时。<br />
长时间的连接让tcp有充足的时间判断网络的拥塞情况，方便做出下步操作。<br />
<br />
The advantages are even more obvious with HTTPS or HTTP over SSL/TLS. There, persistent connections may reduce the number of costly SSL/TLS handshake to establish security associations, in addition to the initial TCP connection set up.<br />
In HTTP/1.1, persistent connections are the default behavior of any connection. That is, unless otherwise indicated, the client SHOULD assume that the server will maintain a persistent connection, even after error responses from the server. However, the protocol provides means for a client and a server to signal the closing of a TCP connection.<br />
<br />
这些优点在使用https连接时更显著。可以减少多次建立高消耗的SSL/TLS握手。<br />
在HTTP/1.1中，默认使用的是长连接方式。客户端默认服务端会保持长连接，即便返回错误响应；除非明确指示不使用长连接。同时，协议中也指定了客户端可以发送关闭信号到服务端来关闭TCP连接。<br />
<br />
What makes a connection reusable?<br />
Since TCP by its nature is a stream based protocol, in order to reuse an existing connection, the HTTP protocol has to have a way to indicate the end of the previous response and the beginning of the next one. Thus, it is required that all messages on the connection MUST have a self-defined message length (i.e., one not defined by closure of the connection). Self demarcation is achieved by either setting the Content-Length header, or in the case of chunked transfer encoded entity body, each chunk starts with a size, and the response body ends with a special last chunk.<br />
<br />
怎样是连接可以重用？<br />
因为TCP是基于流的协议，所以HTTP协议需要有一种方式来指示前一个响应的结束和后一个响应的开始来重用已建立的连接。所以，它要求连接中传输的信息必须有自定义的消息长度。自定义消息长度可以通过设置&nbsp;Content-Length 消息头，若传输编码的实体内容块，则每个数据块的标明数据块的大小，而且响应体也是以一个特殊的数据块结束。<br />
<br />
What happens if there are proxy servers in between?<br />
Since persistent connections applies to only one transport link, it is important that proxy servers correctly signal persistent/or-non-persistent connections separately with its clients and the origin servers (or to other proxy servers). From a HTTP client or server's perspective, as far as persistence connection is concerned, the presence or absence of proxy servers is transparent.<br />
<br />
若中间存在代理服务器将会如何?<br />
因为长连接仅占用一条传输链路，所以代理服务器能否正确得与客户端和服务器端（或者其他代理服务器）发送长连接或非长连接的信号尤为重要。但是HTTP的客户端或服务器端来看，代理服务器对他们来说是透明的，即便长连接是需要关注的。<br />
<br />
<p>What does the current JDK do for Keep-Alive?<br />
The JDK supports both HTTP/1.1 and HTTP/1.0 persistent connections.<br />
</p>
<p>When the application finishes reading the response body or when the application calls close() on the InputStream returned by URLConnection.getInputStream(), the JDK's HTTP protocol handler will try to clean up the connection and if successful, put the connection into a connection cache for reuse by future HTTP requests.</p>
<p>The support for HTTP keep-Alive is done transparently. However, it can be controlled by system properties http.keepAlive, and http.maxConnections, as well as by HTTP/1.1 specified request and response headers.<br />
<br />
</p>
当前的JDK如何处理Keep-Alive？<br />
JDK同时支持HTTP/1.1&nbsp;和 HTTP/1.0。<br />
当应用程序读取完响应体内容后或者调用&nbsp;close() 关闭了URLConnection.getInputStream()返回的流，JDK中的HTTP协议句柄将关闭连接，并将连接放到连接缓存中，以便后面的HTTP请求使用。<br />
对HTTP keep-Alive 的支持是透明的。但是，你也可以通过系统属性http.keepAlive和http.maxConnections以及HTTP/1.1协议中的特定的请求响应头来控制。<br />
<br />
<p>The system properties that control the behavior of Keep-Alive are:<br />
http.keepAlive=&lt;boolean&gt;<br />
default: true</p>
<p>Indicates if keep alive (persistent) connections should be supported. <br />
http.maxConnections=&lt;int&gt;<br />
default: 5</p>
<p>Indicates the maximum number of connections per destination to be kept alive at any given time</p>
<p>HTTP header that influences connection persistence is:<br />
Connection: close</p>
<p>If the "Connection" header is specified with the value "close" in either the request or the response header fields, it indicates that the connection should not be considered 'persistent' after the current request/response is complete.<br />
<br />
控制Keep-Alive表现的系统属性有：<br />
<br />
http.keepAlive=&lt;布尔值&gt;<br />
默认: true<br />
指定长连接是否支持<br />
<br />
http.maxConnections=&lt;整数&gt;<br />
默认: 5<br />
指定对同一个服务器保持的长连接的最大个数。<br />
<br />
影响长连接的HTTP header是：<br />
Connection: close<br />
如果请求或响应中的Connection header被指定为close，表示在当前请求或响应完成后将关闭TCP连接。<br />
<br />
The current implementation doesn't buffer the response body. Which means that the application has to finish reading the response body or call close() to abandon the rest of the response body, in order for that connection to be reused. Furthermore, current implementation will not try block-reading when cleaning up the connection, meaning if the whole response body is not available, the connection will not be reused.<br />
<br />
JDK中的当前实现不支持缓存响应体，所以应用程序必须读取完响应体内容或者调用close()关闭流并丢弃未读内容来重用连接。此外，当前实现在清理连接时并未使用阻塞读，这就意味这如果响应体不可用，连接将不能被重用。<br />
<br />
</p>
<p>What's new in Tiger?<br />
When the application encounters a HTTP 400 or 500 response, it may ignore the IOException and then may issue another HTTP request. In this case, the underlying TCP connection won't be Kept-Alive because the response body is still there to be consumed, so the socket connection is not cleared, therefore not available for reuse. What the application needs to do is call HttpURLConnection.getErrorStream() after catching the IOException , read the response body, then close the stream. However, some existing applications are not doing this. As a result, they do not benefit from persistent connections. To address this problem, we have introduced a workaround.</p>
<p>The workaround involves buffering the response body if the response is &gt;=400, up to a certain amount and within a time limit, thus freeing up the underlying socket connection for reuse. The rationale behind this is that when the server responds with a &gt;=400 error (client error or server error. One example is "404: File Not Found" error), the server usually sends a small response body to explain whom to contact and what to do to recover.<br />
<br />
JDK1.5中的新特性<br />
当应用接收到400或500的HTTP响应时，它将忽略IOException 而另发一个HTTP 请求。这种情况下，底层的TCP连接将不会再保持，因为响应内容还在等待被读取，socket 连接未清理，不能被重用。应用可以在捕获IOException 以后调用HttpURLConnection.getErrorStream() ，读取响应内容然后关闭流。但是现存的应用没有这么做，不能体现出长连接的优势。为了解决这个问题，介绍下workaround。<br />
<br />
当响应体的状态码大于或等于400的时候，workaround 将在一定时间内缓存一定数量的响应内容，释放底层的socket连接来重用。基本原理是当响应状态码大于或等于400时，服务器端会发送一个简短的响应体来指明连接谁以及如何恢复连接。<br />
<br />
</p>
<p>Several new Sun implementation specific properties are introduced to help clean up the connections after error response from the server.</p>
<p>The major one is:</p>
<p>sun.net.http.errorstream.enableBuffering=&lt;boolean&gt;<br />
default: false</p>
<p>With the above system property set to true (default is false), when the response code is &gt;=400, the HTTP handler will try to buffer the response body. Thus freeing up the underlying socket connection for reuse. Thus, even if the application doesn't call getErrorStream(), read the response body, and then call close(), the underlying socket connection may still be kept-alive and reused.</p>
<p>The following two system properties provide further control to the error stream buffering behavior:</p>
<p>sun.net.http.errorstream.timeout=&lt;int&gt; in millisecond<br />
default: 300 millisecond</p>
<p>sun.net.http.errorstream.bufferSize=&lt;int&gt; in bytes<br />
default: 4096 bytes</p>
<p>下面介绍一些SUN实现中的特定属性来帮助接收到错误响应体后清理连接：<br />
主要的一个是：<br />
sun.net.http.errorstream.enableBuffering=&lt;布尔值&gt;<br />
默认: false<br />
</p>
<p>当上面属性设置为true后，在接收到响应码大于或等于400是，HTTP 句柄将尝试缓存响应内容。释放底层的socket连接来重用。所以，即便应用不调用getErrorStream()来读取响应内容，或者调用close()关闭流，底层的socket连接也将保持连接状态。<br />
<br />
下面的两个系统属性是为了更进一步控制错误流的缓存行为：<br />
sun.net.http.errorstream.timeout=&lt;int&gt; in 毫秒<br />
默认: 300 毫秒</p>
<p>sun.net.http.errorstream.bufferSize=&lt;int&gt; in bytes<br />
默认: 4096 bytes<br />
<br />
What can you do to help with Keep-Alive?<br />
Do not abandon a connection by ignoring the response body. Doing so may results in idle TCP connections. That needs to be garbage collected when they are no longer referenced.<br />
</p>
<p>If getInputStream() successfully returns, read the entire response body.</p>
<p>When calling getInputStream() from HttpURLConnection, if an IOException occurs, catch the exception and call getErrorStream() to get the response body (if there is any).</p>
<p>Reading the response body cleans up the connection even if you are not interested in the response content itself. But if the response body is long and you are not interested in the rest of it after seeing the beginning, you can close the InputStream. But you need to be aware that more data could be on its way. Thus the connection may not be cleared for reuse.<br />
</p>
<p>Here's a code example that complies to the above recommendation:</p>
<p>你如何做可以保持连接为连接状态呢？<br />
不要忽略响应体而丢弃连接。这样会是TCP连接闲置，当不再被引用后将会被垃圾回收器回收。<br />
如果getInputStream()返回成功，读取全部响应内容。如果抛出IOException ，捕获异常并调用getErrorStream() 读取响应内容（如果存在响应内容）。<br />
<br />
即便你对响应内容不感兴趣，也要读取它，以便清理连接。但是，如果响应内容很长，你读取到开始部分后就不感兴趣了，可以调用close()来关闭流。值得注意的是，其他部分的数据已在读取中，所以连接将不能被清理进而被重用。<br />
<br />
下面是一个基于上面建议的代码样例：<br />
</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span><img id="Codehighlighter1_4_216_Open_Image" onclick="this.style.display='none'; Codehighlighter1_4_216_Open_Text.style.display='none'; Codehighlighter1_4_216_Closed_Image.style.display='inline'; Codehighlighter1_4_216_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="display: none" id="Codehighlighter1_4_216_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_4_216_Closed_Text.style.display='none'; Codehighlighter1_4_216_Open_Image.style.display='inline'; Codehighlighter1_4_216_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" /><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_4_216_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_4_216_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;URL&nbsp;a&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;URL(args[</span><span style="color: #000000">0</span><span style="color: #000000">]);<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;URLConnection&nbsp;urlc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;a.openConnection();<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;conn.getInputStream();<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;ret&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img id="Codehighlighter1_152_175_Open_Image" onclick="this.style.display='none'; Codehighlighter1_152_175_Open_Text.style.display='none'; Codehighlighter1_152_175_Closed_Image.style.display='inline'; Codehighlighter1_152_175_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_152_175_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_152_175_Closed_Text.style.display='none'; Codehighlighter1_152_175_Open_Image.style.display='inline'; Codehighlighter1_152_175_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;((ret&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;is.read(buf))&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_152_175_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_152_175_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;processBuf(buf);<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;close&nbsp;the&nbsp;inputstream</span><span style="color: #008000"><br />
</span><span style="color: #008080">10</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;is.close();<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img id="Codehighlighter1_240_562_Open_Image" onclick="this.style.display='none'; Codehighlighter1_240_562_Open_Text.style.display='none'; Codehighlighter1_240_562_Closed_Image.style.display='inline'; Codehighlighter1_240_562_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="display: none" id="Codehighlighter1_240_562_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_240_562_Closed_Text.style.display='none'; Codehighlighter1_240_562_Open_Image.style.display='inline'; Codehighlighter1_240_562_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" />}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(IOException&nbsp;e)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_240_562_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_240_562_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img id="Codehighlighter1_247_504_Open_Image" onclick="this.style.display='none'; Codehighlighter1_247_504_Open_Text.style.display='none'; Codehighlighter1_247_504_Closed_Image.style.display='inline'; Codehighlighter1_247_504_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_247_504_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_247_504_Closed_Text.style.display='none'; Codehighlighter1_247_504_Open_Image.style.display='inline'; Codehighlighter1_247_504_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_247_504_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_247_504_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;respCode&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;((HttpURLConnection)conn).getResponseCode();<br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;es&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;((HttpURLConnection)conn).getErrorStream();<br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;ret&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;read&nbsp;the&nbsp;response&nbsp;body</span><span style="color: #008000"><br />
</span><span style="color: #008080">17</span><span style="color: #008000"><img id="Codehighlighter1_436_460_Open_Image" onclick="this.style.display='none'; Codehighlighter1_436_460_Open_Text.style.display='none'; Codehighlighter1_436_460_Closed_Image.style.display='inline'; Codehighlighter1_436_460_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_436_460_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_436_460_Closed_Text.style.display='none'; Codehighlighter1_436_460_Open_Image.style.display='inline'; Codehighlighter1_436_460_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;((ret&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;es.read(buf))&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_436_460_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_436_460_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;processBuf(buf);<br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;close&nbsp;the&nbsp;errorstream</span><span style="color: #008000"><br />
</span><span style="color: #008080">21</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;es.close();<br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img id="Codehighlighter1_528_560_Open_Image" onclick="this.style.display='none'; Codehighlighter1_528_560_Open_Text.style.display='none'; Codehighlighter1_528_560_Closed_Image.style.display='inline'; Codehighlighter1_528_560_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_528_560_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_528_560_Closed_Text.style.display='none'; Codehighlighter1_528_560_Open_Image.style.display='inline'; Codehighlighter1_528_560_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">(IOException&nbsp;ex)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_528_560_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_528_560_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;deal&nbsp;with&nbsp;the&nbsp;exception</span><span style="color: #008000"><br />
</span><span style="color: #008080">24</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span></div>
<p><br />
If you know ahead of time that you won't be interested in the response body, you should issue a HEAD request instead of a GET request. For example when you are only interested in the meta info of the web resource or when testing for its validity, accessibility and recent modification. Here's a code snippet:<br />
<br />
如果你预先就对响应内容不感兴趣，你可以使用HEAD 请求来代替GET 请求。例如，获取web资源的meta信息或者测试它的有效性，可访问性以及最近的修改。下面是代码片段：<br />
</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">1</span><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: #000000">URL&nbsp;a&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;URL(args[</span><span style="color: #000000">0</span><span style="color: #000000">]);<br />
</span><span style="color: #008080">2</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />URLConnection&nbsp;urlc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;a.openConnection();<br />
</span><span style="color: #008080">3</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />HttpURLConnection&nbsp;httpc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(HttpURLConnection)urlc;<br />
</span><span style="color: #008080">4</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;only&nbsp;interested&nbsp;in&nbsp;the&nbsp;length&nbsp;of&nbsp;the&nbsp;resource</span><span style="color: #008000"><br />
</span><span style="color: #008080">5</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">httpc.setRequestMethod(</span><span style="color: #000000">"</span><span style="color: #000000">HEAD</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">6</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;len&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;httpc.getContentLength();</span></div>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/xjacker/aggbug/334709.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xjacker/" target="_blank">风萧萧兮</a> 2010-10-13 04:23 <a href="http://www.blogjava.net/xjacker/articles/334709.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>iBike来了，苹果申请自行车配件专利</title><link>http://www.blogjava.net/xjacker/archive/2010/09/08/331370.html</link><dc:creator>风萧萧兮</dc:creator><author>风萧萧兮</author><pubDate>Wed, 08 Sep 2010 01:48:00 GMT</pubDate><guid>http://www.blogjava.net/xjacker/archive/2010/09/08/331370.html</guid><wfw:comment>http://www.blogjava.net/xjacker/comments/331370.html</wfw:comment><comments>http://www.blogjava.net/xjacker/archive/2010/09/08/331370.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xjacker/comments/commentRss/331370.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xjacker/services/trackbacks/331370.html</trackback:ping><description><![CDATA[苹果要销售自行车了？这太疯狂了，对不对？嗯，它将是什么样的自行车还不清楚，但它是不是会拥有一个漂亮的iPod或iPad吗？
<p>
</p>
<p>是的，你没有看错。苹果公司已经申请了专利的概念自行车配件。
</p>
<p>
</p>
<p>该项专利申请，是由美国专利和商标局8月5日公布的，其中突出了苹果公司所倡导的&#8220;智能自行车&#8221;概念。这个自行车专利申请系统允许自行车骑手记录和无线分享单车路线的信息。而对于自行车骑手来说，自行车的专利申请就像是耐克+一样。
</p>
<p>
</p>
<p>苹果的智能自行车专利，最初提出是在2009年第一季度，当时就非常强调一个可分享一大堆的数据信息的单车。此信息将包括骑自行车的速度、距离、时间、高度、坡度等。同时，用户心率也将被采集。
</p>
<p>
</p>
<p>根据专利，这些信息收集将通过连接iPod或iPhone进行收集，并通过传感器建立。大家都在猜想究是什么综合技术来测量这些自行车信息。但是，车把中准确的心率传感器、加速计和车载GPS看起来都是相当安全的设计。</p>
<p><img src="http://www.blogjava.net/images/blogjava_net/xjacker/eetc_0819_nt_pic3.jpg" alt="" border="0" height="200" width="350" /><br />
</p>
<p>正如众所周知的所有专用自行车，这类信息已问世多年——这都要感谢与袖珍电脑的连接技术。这些小型友好电脑的价格范围比较宽泛，从简单配置的10美元至20美元开始，到与其他更高科技的套件配合使用，比如iPhone应用程序，其价格就可以升至200美元。
</p>
<p>
</p>
<p>那么，究竟是什么原因使得苹果的方式与现有的显得那么不同？无论专利申请中的细节多么详细，这都很难从专利申请方面来说清楚，但是，设备到设备的无缝连接，然后到终端记录软件的整体丰富的经验，都毫无疑问地让苹果与众不同</p>
<img src ="http://www.blogjava.net/xjacker/aggbug/331370.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xjacker/" target="_blank">风萧萧兮</a> 2010-09-08 09:48 <a href="http://www.blogjava.net/xjacker/archive/2010/09/08/331370.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java中的Integer的==和equal()</title><link>http://www.blogjava.net/xjacker/articles/330349.html</link><dc:creator>风萧萧兮</dc:creator><author>风萧萧兮</author><pubDate>Tue, 31 Aug 2010 00:31:00 GMT</pubDate><guid>http://www.blogjava.net/xjacker/articles/330349.html</guid><wfw:comment>http://www.blogjava.net/xjacker/comments/330349.html</wfw:comment><comments>http://www.blogjava.net/xjacker/articles/330349.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xjacker/comments/commentRss/330349.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xjacker/services/trackbacks/330349.html</trackback:ping><description><![CDATA[<p>昨晚在review一些新人写的代码的时候，发现了下面的代码：<br />
</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">1</span><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Integer&nbsp;a&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Integer.valueOf(</span><span style="color: #000000">"</span><span style="color: #000000">var1</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">2</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;Integer&nbsp;b&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Integer.valueOf(</span><span style="color: #000000">"</span><span style="color: #000000">var2</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">3</span><span style="color: #000000"><img id="Codehighlighter1_89_97_Open_Image" onclick="this.style.display='none'; Codehighlighter1_89_97_Open_Text.style.display='none'; Codehighlighter1_89_97_Closed_Image.style.display='inline'; Codehighlighter1_89_97_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" />&nbsp;&nbsp; &nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(a&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;b)</span><span id="Codehighlighter1_89_97_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">4</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">5</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<br />
当然，关于==和equals()的区别这个是每个java程序员都清楚的了。<br />
但是这位新人却写出了上面这样的代码，着实让人恼火。<br />
在我的追问下，哥们确实知道这个区别。汗，这不是明知故犯嘛，罪加一等。<br />
&#8220;我试了var1，var2同时为1时，a==b为true &#8221;。OK，我清楚了，哥们是一知半解了。<br />
<br />
于是我便写了下面这段代码给他：<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer&nbsp;a&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Integer.valueOf(</span><span style="color: #000000">1</span><span style="color: #000000">);<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer&nbsp;b&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Integer.valueOf(</span><span style="color: #000000">1</span><span style="color: #000000">);<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(a&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;b);<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(a.equals(b));<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">================================</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer&nbsp;c&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Integer.valueOf(</span><span style="color: #000000">128</span><span style="color: #000000">);<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer&nbsp;d&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Integer.valueOf(</span><span style="color: #000000">128</span><span style="color: #000000">);<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(c&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;d);<br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(c.equals(d));<br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">================================</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer&nbsp;e&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Integer(</span><span style="color: #000000">1</span><span style="color: #000000">);<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer&nbsp;f&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Integer(</span><span style="color: #000000">1</span><span style="color: #000000">);<br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(e&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;f);<br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(e.equals(f));<br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">================================</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer&nbsp;g&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Integer(</span><span style="color: #000000">128</span><span style="color: #000000">);<br />
</span><span style="color: #008080">27</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer&nbsp;h&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Integer(</span><span style="color: #000000">128</span><span style="color: #000000">);<br />
</span><span style="color: #008080">28</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
</span><span style="color: #008080">29</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(g&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;h);<br />
</span><span style="color: #008080">30</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(g.equals(h));</span></div>
<br />
他看了结果后，很是不解。<br />
无奈，jdk开源是干吗的？看源码啊：<br />
<br />
在JDK中的Integer类中有这么一段代码：<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span><img id="Codehighlighter1_38_927_Open_Image" onclick="this.style.display='none'; Codehighlighter1_38_927_Open_Text.style.display='none'; Codehighlighter1_38_927_Closed_Image.style.display='inline'; Codehighlighter1_38_927_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="display: none" id="Codehighlighter1_38_927_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_38_927_Closed_Text.style.display='none'; Codehighlighter1_38_927_Open_Image.style.display='inline'; Codehighlighter1_38_927_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;IntegerCache&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_38_927_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_38_927_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;high;<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;Integer&nbsp;cache[];<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img id="Codehighlighter1_125_886_Open_Image" onclick="this.style.display='none'; Codehighlighter1_125_886_Open_Text.style.display='none'; Codehighlighter1_125_886_Closed_Image.style.display='inline'; Codehighlighter1_125_886_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_125_886_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_125_886_Closed_Text.style.display='none'; Codehighlighter1_125_886_Open_Image.style.display='inline'; Codehighlighter1_125_886_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_125_886_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_125_886_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;low&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">128</span><span style="color: #000000">;<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;high&nbsp;value&nbsp;may&nbsp;be&nbsp;configured&nbsp;by&nbsp;property</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;h&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">127</span><span style="color: #000000">;<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img id="Codehighlighter1_294_682_Open_Image" onclick="this.style.display='none'; Codehighlighter1_294_682_Open_Text.style.display='none'; Codehighlighter1_294_682_Closed_Image.style.display='inline'; Codehighlighter1_294_682_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_294_682_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_294_682_Closed_Text.style.display='none'; Codehighlighter1_294_682_Open_Image.style.display='inline'; Codehighlighter1_294_682_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(integerCacheHighPropValue&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_294_682_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_294_682_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;Use&nbsp;Long.decode&nbsp;here&nbsp;to&nbsp;avoid&nbsp;invoking&nbsp;methods&nbsp;that<br />
</span><span style="color: #008080">12</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;require&nbsp;Integer's&nbsp;autoboxing&nbsp;cache&nbsp;to&nbsp;be&nbsp;initialized</span><span style="color: #008000"><br />
</span><span style="color: #008080">13</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Long.decode(integerCacheHighPropValue).intValue();<br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Math.max(i,&nbsp;</span><span style="color: #000000">127</span><span style="color: #000000">);<br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;Maximum&nbsp;array&nbsp;size&nbsp;is&nbsp;Integer.MAX_VALUE</span><span style="color: #008000"><br />
</span><span style="color: #008080">16</span><span style="color: #008000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Math.min(i,&nbsp;Integer.MAX_VALUE&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">low);<br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;high&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;h;<br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cache&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Integer[(high&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;low)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">];<br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;j&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;low;<br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;k&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;k&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;cache.length;&nbsp;k</span><span style="color: #000000">++</span><span style="color: #000000">)<br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cache[k]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Integer(j</span><span style="color: #000000">++</span><span style="color: #000000">);<br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" /><br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img id="Codehighlighter1_920_921_Open_Image" onclick="this.style.display='none'; Codehighlighter1_920_921_Open_Text.style.display='none'; Codehighlighter1_920_921_Closed_Image.style.display='inline'; Codehighlighter1_920_921_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_920_921_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_920_921_Closed_Text.style.display='none'; Codehighlighter1_920_921_Open_Image.style.display='inline'; Codehighlighter1_920_921_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;IntegerCache()&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_920_921_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_920_921_Open_Text"><span style="color: #000000">{}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">27</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">28</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
</span><span style="color: #008080">29</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" /><br />
</span><span style="color: #008080">30</span><span style="color: #000000"><img id="Codehighlighter1_972_1122_Open_Image" onclick="this.style.display='none'; Codehighlighter1_972_1122_Open_Text.style.display='none'; Codehighlighter1_972_1122_Closed_Image.style.display='inline'; Codehighlighter1_972_1122_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="display: none" id="Codehighlighter1_972_1122_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_972_1122_Closed_Text.style.display='none'; Codehighlighter1_972_1122_Open_Image.style.display='inline'; Codehighlighter1_972_1122_Open_Text.style.display='inline';" alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;Integer&nbsp;valueOf(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_972_1122_Closed_Text"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_972_1122_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">31</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(i&nbsp;</span><span style="color: #000000">&gt;=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">128</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">&lt;=</span><span style="color: #000000">&nbsp;IntegerCache.high)<br />
</span><span style="color: #008080">32</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;IntegerCache.cache[i&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">128</span><span style="color: #000000">];<br />
</span><span style="color: #008080">33</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
</span><span style="color: #008080">34</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Integer(i);<br />
</span><span style="color: #008080">35</span><span style="color: #000000"><img alt="" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<br />
看见上面的代码后，&#8220;原来这样的啊！！&#8221;。<br />
在Integer内中有块缓存，默认保存-128~127之间的Integer 对象，<br />
当你使用Integer.valueOf()静态方法来生成Integer对象时，<br />
会先判断这个数字的大小，若在-128~127之间的话，将直接使用缓存中的对象；<br />
若不是介于这个范围，将新生成对象。但是这个限于Integer.valueOf()静态方法，<br />
若使用构造函数来生成Integer对象时，情况又是不同的。<br />
<img src ="http://www.blogjava.net/xjacker/aggbug/330349.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xjacker/" target="_blank">风萧萧兮</a> 2010-08-31 08:31 <a href="http://www.blogjava.net/xjacker/articles/330349.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>增加网站流量的一些办法</title><link>http://www.blogjava.net/xjacker/articles/330330.html</link><dc:creator>风萧萧兮</dc:creator><author>风萧萧兮</author><pubDate>Mon, 30 Aug 2010 12:13:00 GMT</pubDate><guid>http://www.blogjava.net/xjacker/articles/330330.html</guid><wfw:comment>http://www.blogjava.net/xjacker/comments/330330.html</wfw:comment><comments>http://www.blogjava.net/xjacker/articles/330330.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xjacker/comments/commentRss/330330.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xjacker/services/trackbacks/330330.html</trackback:ping><description><![CDATA[<span style="font-family: 宋体; color: #333333">一：网站提交。新上线的站刚刚做好最好去各大搜索引擎提交网站，这样做等于告诉各大搜索引擎一个新网站出现了。<br />
</span><span style="font-family: 'Arial','sans-serif'; color: #333333"><br />
</span><span style="font-family: 宋体; color: #333333">二：网站查询收录。这一招也是很多新站站长用来增加外链常用的手法。<br />
其原理为每天一次到各大网站查询站查询自己的网站收录，查询过后会在网站留下一个页面的缓存，<br />
搜索引擎的蜘蛛们每天爬过来时候如果抓取到缓存，顺便就可以为网站增加外链，而新站就会被收录了。<br />
</span><span style="font-family: 'Arial','sans-serif'; color: #333333"><br />
</span><span style="font-family: 宋体; color: #333333">三：去问答类平台回答问题自带网站链接。这也是短平快的方法，去百度知道，<br />
搜搜问问等问答平台多回答一些与网站类型或者网站内容相关的问题，回答中带上网站链接，<br />
这样不仅会很快的被百度收录，而且甚至会给网站带来很好的流量。<br />
</span><span style="font-family: 'Arial','sans-serif'; color: #333333"><br />
</span><span style="font-family: 宋体; color: #333333">四：论坛发帖。去各大门户论坛发帖宣传自己网站，发帖要注意方法，软点为好。</span><img src ="http://www.blogjava.net/xjacker/aggbug/330330.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xjacker/" target="_blank">风萧萧兮</a> 2010-08-30 20:13 <a href="http://www.blogjava.net/xjacker/articles/330330.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>网络营销的几种收费模式介绍</title><link>http://www.blogjava.net/xjacker/articles/CPM_CPA_CPI_CPC_CPS_CPV.html</link><dc:creator>风萧萧兮</dc:creator><author>风萧萧兮</author><pubDate>Mon, 30 Aug 2010 12:02:00 GMT</pubDate><guid>http://www.blogjava.net/xjacker/articles/CPM_CPA_CPI_CPC_CPS_CPV.html</guid><wfw:comment>http://www.blogjava.net/xjacker/comments/330327.html</wfw:comment><comments>http://www.blogjava.net/xjacker/articles/CPM_CPA_CPI_CPC_CPS_CPV.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xjacker/comments/commentRss/330327.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xjacker/services/trackbacks/330327.html</trackback:ping><description><![CDATA[&nbsp;
<p style="text-align: left; line-height: 16.5pt; margin: 7.5pt 0cm" class="MsoNormal" align="left"><strong><span style="font-family: 'Arial','sans-serif'; color: black">CPM&nbsp; </span></strong><strong><span style="font-family: 宋体; color: black">弹出窗口</span></strong></p>
<p style="text-align: left; line-height: 16.5pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: black; font-size: 9pt">以</span><span style="font-family: 'Arial','sans-serif'; color: black; font-size: 9pt">24</span><span style="font-family: 宋体; color: black; font-size: 9pt">个小时内唯一</span><span style="font-family: 'Arial','sans-serif'; color: black; font-size: 9pt">IP</span><span style="font-family: 宋体; color: black; font-size: 9pt">弹出窗口为准，即当用户访问会员站点的时候，会员站点自动将广告主的站点指定宣传页面弹出来。</span><span style="font-family: 'Arial','sans-serif'; color: black; font-size: 9pt"> CPM</span><span style="font-family: 宋体; color: black; font-size: 9pt">包括普弹（进入站点即弹出宣传页面）、退弹（访问者进入后，关闭访问页面后弹出宣传页面）、隐弹等。</span></p>
<p style="text-align: left; line-height: 16.5pt; margin-top: 7.5pt" class="MsoNormal" align="left"><strong><span style="font-family: 宋体; color: #ff5300; font-size: 9pt">模式特点：</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt">此模式的主要优势是能快速地拉升网站的</span><span style="font-family: 'Arial','sans-serif'; color: black; font-size: 9pt">alexa</span><span style="font-family: 宋体; color: black; font-size: 9pt">排名，并且给访问者一定的印象数，价格也相对实惠。</span></p>
<p style="text-align: left; line-height: 16.5pt; margin: 7.5pt 0cm" class="MsoNormal" align="left"><strong><span style="font-family: 'Arial','sans-serif'; color: black">CPC&nbsp; </span></strong><strong><span style="font-family: 宋体; color: black">点击广告</span></strong></p>
<p style="text-align: left; line-height: 16.5pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: black; font-size: 9pt">将广告图片以各种方式投放到会员站点上面去，当访问者对广告图片或文字产生兴趣并点击了才计算费用。点击以</span><span style="font-family: 'Arial','sans-serif'; color: black; font-size: 9pt">24</span><span style="font-family: 宋体; color: black; font-size: 9pt">个小时唯一点击</span><span style="font-family: 'Arial','sans-serif'; color: black; font-size: 9pt">IP</span><span style="font-family: 宋体; color: black; font-size: 9pt">计算，同一个用户重复点击算一个</span><span style="font-family: 'Arial','sans-serif'; color: black; font-size: 9pt">IP</span><span style="font-family: 宋体; color: black; font-size: 9pt">。</span><span style="font-family: 'Arial','sans-serif'; color: black; font-size: 9pt"> CPC</span><span style="font-family: 宋体; color: black; font-size: 9pt">广告主要包括：图片、网摘、主题广告三类。</span></p>
<p style="text-align: left; line-height: 16.5pt; margin-top: 7.5pt" class="MsoNormal" align="left"><strong><span style="font-family: 宋体; color: #ff5300; font-size: 9pt">模式特点：</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt">表现形式丰富，有效传达产品及形象，并带来超值的广告效果</span></p>
<p style="text-align: left; line-height: 16.5pt; margin: 7.5pt 0cm" class="MsoNormal" align="left"><strong><span style="font-family: 'Arial','sans-serif'; color: black">CPA&nbsp; </span></strong><strong><span style="font-family: 宋体; color: black">注册广告</span></strong></p>
<p style="text-align: left; line-height: 16.5pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: black; font-size: 9pt">是指将广告以弹窗、图片等各类广告模式投放到会员站点，而按广告投放实际效果，即按回应的有效注册数来计费的广告模式。</span><span style="font-family: 宋体; color: black; font-size: 9pt">根据有效回应的要求不同，每</span><span style="font-family: 'Arial','sans-serif'; color: black; font-size: 9pt">CPA</span><span style="font-family: 宋体; color: black; font-size: 9pt">单价略有区别。</span></p>
<p style="text-align: left; line-height: 16.5pt; margin-top: 7.5pt" class="MsoNormal" align="left"><strong><span style="font-family: 宋体; color: #ff5300; font-size: 9pt">模式特点：</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt">能更好的实现广告主广告的定向传播，大大提高有效注册量，为广告主带去量和质的回报</span></p>
<p style="text-align: left; line-height: 16.5pt; margin: 7.5pt 0cm" class="MsoNormal" align="left"><strong><span style="font-family: 'Arial','sans-serif'; color: black">CPS&nbsp;&nbsp; </span></strong><strong><span style="font-family: 宋体; color: black">销售广告</span></strong></p>
<p style="text-align: left; line-height: 16.5pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: black; font-size: 9pt">是指用户通过广告图片访问后，对客户的产品产生消费后，广告主按比例于联盟、站长分成的一种广告行为。</span></p>
<p style="text-align: left; line-height: 16.5pt; margin-top: 7.5pt" class="MsoNormal" align="left"><strong><span style="font-family: 宋体; color: #ff5300; font-size: 9pt">模式特点：</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt">有利于更好的实现广告主的广告成本控制、实现回报大于投入。本类广告形式，对广告主的品牌、诚信度、技术等各个方面要求较高。</span></p>
<p style="text-align: left; line-height: 16.5pt; margin: 7.5pt 0cm" class="MsoNormal" align="left"><strong><span style="font-family: 'Arial','sans-serif'; color: black">CPV&nbsp; </span></strong><strong><span style="font-family: 宋体; color: black">展示广告</span></strong></p>
<p style="text-align: left; line-height: 16.5pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: black; font-size: 9pt">是一种按照实际广告显示量来计费的广告模式，即当用户访问了会员站点，广告主的广告就被展示出来，此广告就按此收费。</span><span style="font-family: 'Arial','sans-serif'; color: black; font-size: 9pt"> CPV</span><span style="font-family: 宋体; color: black; font-size: 9pt">可投放图片，图文、</span><span style="font-family: 'Arial','sans-serif'; color: black; font-size: 9pt">Flash</span><span style="font-family: 宋体; color: black; font-size: 9pt">、视频等。</span></p>
<p style="text-align: left; line-height: 16.5pt; margin-top: 7.5pt" class="MsoNormal" align="left"><strong><span style="font-family: 宋体; color: #ff5300; font-size: 9pt">模式特点：</span></strong><span style="font-family: 'Arial','sans-serif'; color: black; font-size: 9pt">CPV</span><span style="font-family: 宋体; color: black; font-size: 9pt">又叫富媒体，本形式价格低、效果丰富，满足不同广告需求。实现音频、视频广告的流畅播放效果，并可实现互动游戏、互动调研、互动演示等多种互动广告需求。<br />
</p>
<p style="text-align: left; line-height: 16.5pt; margin: 7.5pt 0cm" class="MsoNormal" align="left"><strong><span style="font-family: 宋体; color: black">网摘主题</span></strong></p>
<p style="text-align: left; line-height: 16.5pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: black; font-size: 9pt">把图片和文字组合设计，生成各个大小的广告条，通过</span><span style="font-family: 'Arial','sans-serif'; color: black; font-size: 9pt">CPC</span><span style="font-family: 宋体; color: black; font-size: 9pt">的计费方式，实现广告的轮播投放，本广告以</span><span style="font-family: 'Arial','sans-serif'; color: black; font-size: 9pt">24</span><span style="font-family: 宋体; color: black; font-size: 9pt">个小时唯一点击</span><span style="font-family: 'Arial','sans-serif'; color: black; font-size: 9pt">IP</span><span style="font-family: 宋体; color: black; font-size: 9pt">计算，同一个用户重复点击算一个</span><span style="font-family: 'Arial','sans-serif'; color: black; font-size: 9pt">IP</span><span style="font-family: 宋体; color: black; font-size: 9pt">。</span></p>
<p style="text-align: left; line-height: 16.5pt; margin-top: 7.5pt" class="MsoNormal" align="left"><strong><span style="font-family: 宋体; color: #ff5300; font-size: 9pt">模式特点：</span></strong><span style="font-family: 宋体; color: black; font-size: 9pt">图文并茂，更好的和网站内容吻合，吸引更多的潜在客户点击广告，单价比图片</span><span style="font-family: 'Arial','sans-serif'; color: black; font-size: 9pt">CPC</span><span style="font-family: 宋体; color: black; font-size: 9pt">略低，是</span><span style="font-family: 'Arial','sans-serif'; color: black; font-size: 9pt">CPC</span><span style="font-family: 宋体; color: black; font-size: 9pt">广告形式的重要形式之一。</span></p>
</span>
 <img src ="http://www.blogjava.net/xjacker/aggbug/330327.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xjacker/" target="_blank">风萧萧兮</a> 2010-08-30 20:02 <a href="http://www.blogjava.net/xjacker/articles/CPM_CPA_CPI_CPC_CPS_CPV.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>