﻿<?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-我的JAVA学习笔记-随笔分类-Java基础</title><link>http://www.blogjava.net/EvanLiu/category/27270.html</link><description>休息，休息</description><language>zh-cn</language><lastBuildDate>Tue, 13 May 2008 12:10:43 GMT</lastBuildDate><pubDate>Tue, 13 May 2008 12:10:43 GMT</pubDate><ttl>60</ttl><item><title>String StringBuffer</title><link>http://www.blogjava.net/EvanLiu/archive/2008/04/08/189602.html</link><dc:creator>冬眠的Evan</dc:creator><author>冬眠的Evan</author><pubDate>Tue, 08 Apr 2008 12:59:00 GMT</pubDate><guid>http://www.blogjava.net/EvanLiu/archive/2008/04/08/189602.html</guid><wfw:comment>http://www.blogjava.net/EvanLiu/comments/189602.html</wfw:comment><comments>http://www.blogjava.net/EvanLiu/archive/2008/04/08/189602.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/EvanLiu/comments/commentRss/189602.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/EvanLiu/services/trackbacks/189602.html</trackback:ping><description><![CDATA[<br />
先看一个简单的例子：<br />
public class Test1 {<br />
&nbsp;&nbsp;&nbsp; public static void operateString(String s) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s.replace("j", "i");<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
&nbsp;&nbsp;&nbsp; public static void operateStringBuffer(StringBuffer sb) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sb.append("C");<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
&nbsp;&nbsp;&nbsp; public static void main(String args[]) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; String sa = new String("java");<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; StringBuffer sba = new StringBuffer("java");<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; operateString(sa);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; operateStringBuffer(sba);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; System.out.println(sa);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; System.out.println(sba);<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
答案很简单： <br />
java<br />
javaC<br />
<br />
原则：<br />
1.String是不可变对象：<span class="tpc_content">public final class String extends Object</span><br />
2.java中只有值传递<span class="tpc_content"><br />
<br />
replace函数源码中：<br />
public String replace(char oldChar, char newChar) {<br />
<em>&nbsp;&nbsp;&nbsp;&nbsp; ...<br />
&nbsp;&nbsp;&nbsp;&nbsp; return new String(0, len, buf);<br />
}<br />
返回的是另一个String对象。<br />
而在上面的</em></span>operateString方法中，是无返回值的，新产生的String对象被丢弃了，而sa仍然指向最初的那个String对象。<br />
<br />
<br />
第二个例子：<br />
public class Test2 {<br />
&nbsp;&nbsp;&nbsp; public static void operate(StringBuffer x, StringBuffer y) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; x.append(y);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; y = x;<br />
&nbsp;&nbsp;&nbsp; }<br />
<br />
&nbsp;&nbsp;&nbsp; public static void main(String args[]) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; StringBuffer buffA = new StringBuffer("a");<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; StringBuffer buffB = new StringBuffer("b");<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; operate(buffA, buffB);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; System.out.println(buffA + "," + buffB);&nbsp; <br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
答案是：<br />
ab,b<br />
<br />
开始时a、x指向同一个StringBuffer对象(这里称它为对象1)，它的值是"a"；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b、y指向同一个StringBuffer对象，它的值是"b"。<br />
执行x.append(y)时，对象1的值被改变，变为"ab"；<br />
而执行y=x时，变量y指向被改变，指向了和x同一个StringBuffer对象。但是变量b的指向还是没有改变，所以仍然为"b"<br />
<br />
<br />
<script type="text/JavaScript">
alimama_pid="mm_10891533_910884_1874773";
alimama_titlecolor="0000FF";
alimama_descolor ="000000";
alimama_bgcolor="FFFFFF";
alimama_bordercolor="E6E6E6";
alimama_linkcolor="008000";
alimama_bottomcolor="FFFFFF";
alimama_anglesize="0";
alimama_bgpic="0";
alimama_icon="0";
alimama_sizecode="15";
alimama_width=950;
alimama_height=90;
alimama_type=2;
</script><script src="http://a.alimama.cn/inf.js" type=text/javascript>
</script>
<img src ="http://www.blogjava.net/EvanLiu/aggbug/189602.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/EvanLiu/" target="_blank">冬眠的Evan</a> 2008-04-08 20:59 <a href="http://www.blogjava.net/EvanLiu/archive/2008/04/08/189602.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle分页SQL</title><link>http://www.blogjava.net/EvanLiu/archive/2008/03/23/188042.html</link><dc:creator>冬眠的Evan</dc:creator><author>冬眠的Evan</author><pubDate>Sun, 23 Mar 2008 08:22:00 GMT</pubDate><guid>http://www.blogjava.net/EvanLiu/archive/2008/03/23/188042.html</guid><wfw:comment>http://www.blogjava.net/EvanLiu/comments/188042.html</wfw:comment><comments>http://www.blogjava.net/EvanLiu/archive/2008/03/23/188042.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/EvanLiu/comments/commentRss/188042.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/EvanLiu/services/trackbacks/188042.html</trackback:ping><description><![CDATA[以前记在笔记上的一点东西，贴上来，省得以后丢了笔记,忘记了
<br />
Oracle 分页 <br />
<span style="color: #1852ff;">select a.*, rownum r<br />
&nbsp; from (select * from lg_order o order by o.order_id) a<br />
&nbsp;where rownum &lt;= 20<br />
&nbsp;&nbsp; and rownum &gt;= 10<br />
<br />
select *<br />
&nbsp; from (select a.*, rownum r<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; from (select * from lg_order o order by o.order_id) a<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; where rownum &lt;= 20) b<br />
&nbsp;where r &gt;= 10<br />
<br />
</span><strong><span style="color: #9428ff;">select *<br />
&nbsp; from (select rid<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; from (select rownum rn, rid<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; from (select rowid rid from lg_order o order by o.order_id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; where rownum &lt;= 20)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; where rn &gt;= 10) t1,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lg_order t2<br />
&nbsp;where t2.rowid = t1.rid</span></strong><span style="color: #1852ff;"><br />
</span>
<br />
第一句是错误的 由于rownum是一个总是从1开始的伪列，Oracle 认为这种条件不成立，查不到记录
<br />
执行顺序从内到外，从右到左
<br />
直接取物理地址最快<br />
<br />
之前写错了，也没人指出，真是凄凉
<script type="text/JavaScript">
alimama_pid="mm_10891533_910884_1874773";
alimama_titlecolor="0000FF";
alimama_descolor ="000000";
alimama_bgcolor="FFFFFF";
alimama_bordercolor="E6E6E6";
alimama_linkcolor="008000";
alimama_bottomcolor="FFFFFF";
alimama_anglesize="0";
alimama_bgpic="0";
alimama_icon="0";
alimama_sizecode="15";
alimama_width=950;
alimama_height=90;
alimama_type=2;
</script>
<script src="http://a.alimama.cn/inf.js" type=text/javascript>
</script>
<img src ="http://www.blogjava.net/EvanLiu/aggbug/188042.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/EvanLiu/" target="_blank">冬眠的Evan</a> 2008-03-23 16:22 <a href="http://www.blogjava.net/EvanLiu/archive/2008/03/23/188042.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA集合小结</title><link>http://www.blogjava.net/EvanLiu/archive/2007/11/12/159884.html</link><dc:creator>冬眠的Evan</dc:creator><author>冬眠的Evan</author><pubDate>Mon, 12 Nov 2007 02:06:00 GMT</pubDate><guid>http://www.blogjava.net/EvanLiu/archive/2007/11/12/159884.html</guid><wfw:comment>http://www.blogjava.net/EvanLiu/comments/159884.html</wfw:comment><comments>http://www.blogjava.net/EvanLiu/archive/2007/11/12/159884.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/EvanLiu/comments/commentRss/159884.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/EvanLiu/services/trackbacks/159884.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: JAVA集合小结&nbsp;&nbsp;<a href='http://www.blogjava.net/EvanLiu/archive/2007/11/12/159884.html'>阅读全文</a><img src ="http://www.blogjava.net/EvanLiu/aggbug/159884.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/EvanLiu/" target="_blank">冬眠的Evan</a> 2007-11-12 10:06 <a href="http://www.blogjava.net/EvanLiu/archive/2007/11/12/159884.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>