??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久久久久人妻无码中文字幕爆,精品国产乱码久久久久久郑州公司,精品一二三区久久aaa片http://www.shnenglu.com/jaysoon/zh-cnThu, 08 May 2025 17:58:54 GMTThu, 08 May 2025 17:58:54 GMT60命o行下Java的编译及q行Q?Q?/title><link>http://www.shnenglu.com/jaysoon/archive/2012/09/06/188927.html</link><dc:creator>jaysoon</dc:creator><author>jaysoon</author><pubDate>Thu, 06 Sep 2012 10:56:00 GMT</pubDate><guid>http://www.shnenglu.com/jaysoon/archive/2012/09/06/188927.html</guid><wfw:comment>http://www.shnenglu.com/jaysoon/comments/188927.html</wfw:comment><comments>http://www.shnenglu.com/jaysoon/archive/2012/09/06/188927.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/jaysoon/comments/commentRss/188927.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jaysoon/services/trackbacks/188927.html</trackback:ping><description><![CDATA[<a></a><br />  <a title="上篇博文" href="http://www.shnenglu.com/jaysoon/archive/2012/08/22/187508.html">上篇博文</a>中说明了如何通过命o~译及运行自qJava文g。但是当前都是以目为单位的Q如何组l项目中的文件以及对目的编译运行,是命令行~译主要解决的问题?br /><br />  <strong><span style="font-size: 14pt;">1. 目l织</span></strong><br />  我们以下面的目作ؓ样例来说明:<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000;">Test</span><span style="color: #000000; ">/</span><span style="color: #000000; "><br /></span><span style="color: #000000; ">|--</span><span style="color: #000000; "> Test.jar<br /></span><span style="color: #000000; ">|--</span><span style="color: #000000; "> classes<br /></span><span style="color: #000000; ">|</span><span style="color: #000000; ">   </span><span style="color: #000000; ">|--</span><span style="color: #000000; "> Main.</span><span style="color: #0000FF; ">class</span><span style="color: #000000; "><br /></span><span style="color: #000000; ">|</span><span style="color: #000000; ">   </span><span style="color: #000000; ">|--</span><span style="color: #000000; "> OutterTest.</span><span style="color: #0000FF; ">class</span><span style="color: #000000; "><br /></span><span style="color: #000000; ">|</span><span style="color: #000000; ">   `</span><span style="color: #000000; ">--</span><span style="color: #000000; "> inner<br /></span><span style="color: #000000; ">|</span><span style="color: #000000; ">       `</span><span style="color: #000000; ">--</span><span style="color: #000000; "> InnerTest.</span><span style="color: #0000FF; ">class</span><span style="color: #000000; "><br /></span><span style="color: #000000; ">|--</span><span style="color: #000000; "> run.py<br /></span><span style="color: #000000; ">|--</span><span style="color: #000000; "> run.sh<br />`</span><span style="color: #000000; ">--</span><span style="color: #000000; "> src<br />    </span><span style="color: #000000; ">|--</span><span style="color: #000000; "> Main.java<br />    </span><span style="color: #000000; ">|--</span><span style="color: #000000; "> OutterTest.java<br />    `</span><span style="color: #000000; ">--</span><span style="color: #000000; "> inner<br />        `</span><span style="color: #000000; ">--</span><span style="color: #000000; "> InnerTest.java</span></div><br />  上面是一个项目:Test。其中,有两个文件夹Qsrc用来攄所有的源代码,也就?java文gQclasses用来攄相应?class文g。Test.jar是最l生成的jar文gQrun.py和run.sh是项目的脚本文g。下面列Z?java文gQ只是简单的昄一句话Q?br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">//</span><span style="color: #008000; "> Main.java</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> inner.</span><span style="color: #000000; ">*</span><span style="color: #000000; ">;<br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">class</span><span style="color: #000000; "> Main<br />{<br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> main(String[] args)<br />    {<br />        System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">main: hello word!</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /><br />        OutterTest out1 </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> OutterTest();<br />        out1.hello();<br /><br />        InnerTest in1 </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> InnerTest();<br />        in1.hello();<br />    }<br />}<br /><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; "> OutterTest.java</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">class</span><span style="color: #000000; "> OutterTest<br />{<br />        </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> hello()<br />        {<br />                System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Hello OutterTest!</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />        }<br />}<br /><br /></span><span style="color: #008000; ">//</span><span style="color: #008000; "> InnerTest.java</span><span style="color: #008000;"><br /></span><span style="color: #0000FF; ">package</span><span style="color: #000000; "> inner;<br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">class</span><span style="color: #000000; "> InnerTest<br />{<br />        </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> hello()<br />        {<br />                System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Hello InnerTest!</span><span style="color: #000000; ">"</span><span style="color: #000000;">);<br />        }<br />}</span></div><br />  注意上面的InnerTestc,它在package inner中,所以将InnerTest.java攑֜inner文g夹下Q这样可以保证统一。在Eclipse中,新徏一个类Ӟ会让你填写package名,然后Eclipse会ؓ你新新徏一个相应的文g夏V?br /><br />  <strong><span style="font-size: 14pt;">2. 目~译</span></strong><br />  <br />  <strong>javac -d classes src/*.java src/inner/*.java</strong><br />  <br />  ׃一知道,javac?d表示”指定存放生成的类文g的位|?#8220;Q也是生成的.class文g攑֜-d指定的文件夹中。需要指出的是,classes文gҎ(gu)手动建立的?br />  另外Qjavacq可以批量编?java文gQ上面的命o表示~译src目录下的所?java文g、编译src/inner目录下的所?java文g。这样就可以扚w~译.java文gQƈ生成的.class文g攑֜classes文g夹中。这里同栯指出一点,因ؓpackage inner的关p,会自动徏立inner文g夹,q将所有package inner下的cL?class攑֜classes/inner下?br /><br />  <strong><span style="font-size: 14pt;">3.目打包</span></strong><br />  <br />  <strong>jar -cvf Test.jar -C classes/ .</strong><br /><br />  q个命o会把classes下的所有文Ӟ包括.class和文件夹{)打包为Test.jar文g?br />  上篇博客中,介绍了参?C的意义:-C  更改为指定的目录q包含其中的文gQ如果有M目录文g, 则对其进行递归处理。它相当于?nbsp;cd 命o转指定目录下?br />  注意后面?."的用法,jar可以递归的打包文件夹Q?."表示是当前文件夹。如果执行命?#8220;jar -cvf Test.jar .”Q表C将当前目录下的所有文件及文gҎ(gu)包。所以上面的命o的意思就?#8220;classes下的所有文件打包ؓTest.jar”?br /><br />  <strong><span style="font-size: 14pt;">4.目q行</span></strong><br />  <br />  <strong>java -cp Test.jar Main</strong><br /><br />  通过上面的命令就可以执行Test.jar中的Main.class。其中,cp指定了jar文g的位|?br /><br />  <strong><span style="font-size: 14pt;">5. 脚本文g</span></strong><br />  通过上面的几步,我们可以完成整个项目的~译和运行。而且Q通过src和classes两个文g夹将源文件和目标文g分开Qə目比较整洁。但是如果每ơ编译、运行都要输入上面一pd命oQ还是比较繁琐的Q尤其当目文g较多Ӟq时通过脚本文g理整个目是明智的选择?br />  下面是项目的脚本文grun.py<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">import</span><span style="color: #000000; "> os<br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> sys<br /><br /></span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> </span><span style="color: #800080; ">__name__</span><span style="color: #000000; "> </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #800000; ">"</span><span style="color: #800000; ">__main__</span><span style="color: #800000; ">"</span><span style="color: #000000; ">:<br /><br />        ProjectJar </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #800000; ">"</span><span style="color: #800000; ">Test.jar</span><span style="color: #800000; ">"</span><span style="color: #000000; "><br /><br />        </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> sys.argv[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">] </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #800000; ">"</span><span style="color: #800000; ">c</span><span style="color: #800000; ">"</span><span style="color: #000000; ">:<br />                </span><span style="color: #0000FF; ">print</span><span style="color: #000000; ">(</span><span style="color: #800000; ">"</span><span style="color: #800000; ">Compile program.</span><span style="color: #800000; ">"</span><span style="color: #000000; ">)<br /><br />                src </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #800000; ">"</span><span style="color: #800000; ">src/*.java src/inner/*.java</span><span style="color: #800000; ">"</span><span style="color: #000000; "><br />                os.system(</span><span style="color: #800000; ">"</span><span style="color: #800000; ">javac -d classes </span><span style="color: #800000; ">"</span><span style="color: #000000; "> </span><span style="color: #000000; ">+</span><span style="color: #000000; "> src)<br />                os.system(</span><span style="color: #800000; ">"</span><span style="color: #800000; ">jar -cvf </span><span style="color: #800000; ">"</span><span style="color: #000000; "> </span><span style="color: #000000; ">+</span><span style="color: #000000; "> ProjectJar </span><span style="color: #000000; ">+</span><span style="color: #000000; "> </span><span style="color: #800000; ">"</span><span style="color: #800000; "> -C classes/ .</span><span style="color: #800000; ">"</span><span style="color: #000000; ">)<br /><br />        </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> sys.argv[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">] </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #800000; ">"</span><span style="color: #800000; ">r</span><span style="color: #800000; ">"</span><span style="color: #000000;">:<br />                </span><span style="color: #0000FF; ">print</span><span style="color: #000000; ">(</span><span style="color: #800000; ">"</span><span style="color: #800000; ">Run program.</span><span style="color: #800000; ">"</span><span style="color: #000000; ">)<br />                os.system(</span><span style="color: #800000; ">"</span><span style="color: #800000; ">java -cp </span><span style="color: #800000; ">"</span><span style="color: #000000; "> </span><span style="color: #000000; ">+</span><span style="color: #000000; "> ProjectJar </span><span style="color: #000000; ">+</span><span style="color: #000000; "> </span><span style="color: #800000; ">"</span><span style="color: #800000; "> Main</span><span style="color: #800000; ">"</span><span style="color: #000000; ">)<br /><br />        </span><span style="color: #0000FF; ">print</span><span style="color: #000000; ">(</span><span style="color: #800000; ">"</span><span style="color: #800000; ">Over!</span><span style="color: #800000; ">"</span><span style="color: #000000; ">)<br /></span></div><br />  通过q个脚本文gQ可以?python run.py c"完成目的编译、打包;使用"python run.py r"q行目?br /><br />  通过q篇文章Q我们已l了解了Java目的管理方法,以及~译、打包、运行的命o行,最后介l了使用脚本文g有效理目?br />  附g中包含整个项目,同时q包括一个run.shQ方便不熟?zhn)python的h查看?br />  附gQ <a title="Test.tar" href="http://www.shnenglu.com/Files/jaysoon/Test.tar">Test.tar</a><img src ="http://www.shnenglu.com/jaysoon/aggbug/188927.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jaysoon/" target="_blank">jaysoon</a> 2012-09-06 18:56 <a href="http://www.shnenglu.com/jaysoon/archive/2012/09/06/188927.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>命o行下Java的编译及q行Q?Q?/title><link>http://www.shnenglu.com/jaysoon/archive/2012/08/22/187508.html</link><dc:creator>jaysoon</dc:creator><author>jaysoon</author><pubDate>Wed, 22 Aug 2012 07:45:00 GMT</pubDate><guid>http://www.shnenglu.com/jaysoon/archive/2012/08/22/187508.html</guid><wfw:comment>http://www.shnenglu.com/jaysoon/comments/187508.html</wfw:comment><comments>http://www.shnenglu.com/jaysoon/archive/2012/08/22/187508.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/jaysoon/comments/commentRss/187508.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jaysoon/services/trackbacks/187508.html</trackback:ping><description><![CDATA[<br />  当前大部分开发者在开发JavaE序时用EclipseQ它可以方便的进行程序的~译、打包和q行。但是不使用IDEQ在完全的命令行下进行Java开发者从未用q的。在命o行下q行开发不是用来在展现自己有多牛,而是通过命o行开发,可以对Java的编译、jar包等各个部分有一个深入了解?br />  下面的几博客将会对Java的编译、打包和q行Ҏ(gu)由浅入深的进行介l?br />  在这里用的操作pȝ是LinuxQƈ提供相应的shell和python脚本?br /><br />  首先介绍一下三个常用的命oQjavac、jar、java。每个命令都有不同的参数Q这些参数的用法会详l介l?br /><br />  <strong style="font-size: 14pt;">1. javac</strong><br style="font-size: 14pt;" />  javac的功能是对java源代码进行编译,后~?java的文件编译ؓ.class的文件。javac的一般格式是<br /><div>  javac <选项> <源文?gt;<br />  例如Q?br />  javac Main.java<br />  会生Main.class文g?br />  <br />  javac的常用选项有:<br /><div>  -classpath <路径>      指定查找用户cL件的位置 <br />  -cp <路径>                指定查找用户cL件的位置Q与上面的选项一Pcp是classpath的简写) </div><div>  -d <目录>                指定存放生成的类文g的位|?</div><br />  <strong style="font-size: 14pt;">2.jar</strong><br style="font-size: 14pt;" />  jar的功能是Ҏ(gu)选项指定的一?class文g打包Z个jar包。jar的一般格式是<br /><div>  jar {ctxui}[vfm0Me] [jar-文g] [manifest-文g] [-C 目录] 文g?... </div>  例如Q?br />  jar cvf Test.jar Main.class Bar.class<br />  它将Main.class和Bar.class打包Z个文件Test.jar?br /><br />  jar命o的选项比较多,用到选项包括: <br /><div>  -c  创徏新的归档文g<br />  -t  列出归目录<br />  -x  从档案中提取指定?(或所? 文g<br />  -u  更新现有的归档文?br />  -v  在标准输Z生成详细输出<br />  -f  指定归文g?br />  -m  包含指定清单文g中的清单信息<br />  -e  为捆l到可执?jar 文g的独立应用程序,指定应用E序入口?br />  -C  更改为指定的目录q包含其中的文gQ如果有M目录文g, 则对其进行递归处理?br /><div><br />  例如Q?br />  上例中的cvf参数Q分别表C创建新的jar文g、创建时昄jar包的信息Q可以执行看一下)、指定jar包名为Test.jar?br />  jar tf Test.jar      查看Test.jar的内容,其中t表示列出jar包内容,f指定jar包名<br />  jar xf Test.jar      解压Test.jar文g<br />  jar xf Test.jar Main.class      仅解压Test.jar中的Main.class文g</div>  q里要指出的是,f/m/e都指定一个名Uͼjar包名, 清单文g名和入口点名UͼQ相应的名称序与参数的序要一致?/div><br />  <strong style="font-size: 14pt;">3.java</strong><br style="font-size: 14pt;" />  java的功能是执行应用E序。java的一般格式是<br /><div>  执行一个类Q?nbsp;   java [ options ] class [ argument ... ]<br />  执行一个jar包:java [ options ] -jar file.jar [ argument ... ]</div>  例如Q?br />  java Main<br />  执行Main.classQ注意上面没?class后缀<br />  java Test.jar <br />  执行一个jar包,q个jar包中要指定了E序入口点(通过在MANIFEST.MF文g中指定)?br /><br />  常用的java的选项Q?br />  -classpath<cL索\?gt;    指定用户cL件的位置Q可能ؓ文g夏Vzip、jar文g<br /><br /><br />  ȝ<br />  通过q篇内容Q我们应用学会了如何使用javac~译自己的类Qƈ使用java执行自己的类。但是关于打包的操作及jar的执行比较复杂,在以后l箋介绍?br /><br /><br /></div>  <img src ="http://www.shnenglu.com/jaysoon/aggbug/187508.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jaysoon/" target="_blank">jaysoon</a> 2012-08-22 15:45 <a href="http://www.shnenglu.com/jaysoon/archive/2012/08/22/187508.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java中计中文的MD5?/title><link>http://www.shnenglu.com/jaysoon/archive/2012/08/17/187484.html</link><dc:creator>jaysoon</dc:creator><author>jaysoon</author><pubDate>Fri, 17 Aug 2012 07:32:00 GMT</pubDate><guid>http://www.shnenglu.com/jaysoon/archive/2012/08/17/187484.html</guid><wfw:comment>http://www.shnenglu.com/jaysoon/comments/187484.html</wfw:comment><comments>http://www.shnenglu.com/jaysoon/archive/2012/08/17/187484.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/jaysoon/comments/commentRss/187484.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jaysoon/services/trackbacks/187484.html</trackback:ping><description><![CDATA[<div>Java中计中文的MD5?/div> <div> </div> <div>  前几天的工作中,需要计中文的MD5|计算的函数接口及调用方式如下Q?br /><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> String getMD5(</span><span style="color: #0000FF; ">byte</span><span style="color: #000000; ">[] source);<br />String s </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">中文~码</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br />String md5_value </span><span style="color: #000000; ">=</span><span style="color: #000000; "> getMD5(s.getBytes());</span></div></div></div> <div>  其中getBytes函数使用q_默认的字W集string~码为byte序列。由于^台的中文~码方式可能不同Q所以同一中文l过getBytes得到的二q制是不一L。ؓ保证每次得到的结果一_或者用指定的~码方式得到byte序列Q应该在getBytes中用参数?/div> <div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">String md5_value </span><span style="color: #000000; ">=</span><span style="color: #000000; "> getMD5(s.getBytes(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">utf-8</span><span style="color: #000000; ">"</span><span style="color: #000000; ">));</span></div> </div> <div>  q样得到的值就是一L?/div><img src ="http://www.shnenglu.com/jaysoon/aggbug/187484.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jaysoon/" target="_blank">jaysoon</a> 2012-08-17 15:32 <a href="http://www.shnenglu.com/jaysoon/archive/2012/08/17/187484.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>遇到java与crontab问题http://www.shnenglu.com/jaysoon/archive/2012/05/14/174859.htmljaysoonjaysoonMon, 14 May 2012 07:20:00 GMThttp://www.shnenglu.com/jaysoon/archive/2012/05/14/174859.htmlhttp://www.shnenglu.com/jaysoon/comments/174859.htmlhttp://www.shnenglu.com/jaysoon/archive/2012/05/14/174859.html#Feedback0http://www.shnenglu.com/jaysoon/comments/commentRss/174859.htmlhttp://www.shnenglu.com/jaysoon/services/trackbacks/174859.html  crontab命o?/span>Unix/Linux中的一个常用命令,用于讄周期性被执行的指令。没有用q的可以查一下,在运行服务端E序时会l常用到?/span>

  E序使用Javad一个含有中文的文gQ进行处理后Q将l果写到一个结果文件中。在q行的程序时Q出Cq样一个问题:在本地环境下Q运行正;但是当用crontab定时执行Ӟ得到的却是错误的l果?/span>

  l过一定的调研发现原来是对crontab的机制没有弄明白D的。crontabq行E序Ӟ会用它自己的环境变量,q个环境变量与你本地的环境变量可能会不同。比如,在你本地情况下,环境变量的语a为en_US.UTF-8Q而在crontab中,环境变量可能是zh_CN.GBKQ这样会Dd文g?#8212;—其是读写中文文件时内容~码错误Q进而导致结果出错?/span>

  所以在使用Javad文gӞ一定要指定~码格式Q而不是用环境变量的格式。例如下面的语句用于dutf-8格式的文?/span>Q?br />
String encodeType = "utf-8";
File in_file 
= new File("test.txt");
BufferedReader reader 
= new BufferedReader(new InputStreamReader(new FileInputStream(in_file), encodeType));
  
  |上也有关于修改crontab环境变量的方法,但是我不使用Q因Z个系l可能是很多人共用的Q修改crontab环境变量可能会引起他人程序的问题Q最好修改自qE序Q保证它不依赖具体的环境变量?br />




jaysoon 2012-05-14 15:20 发表评论
]]>
法的态度http://www.shnenglu.com/jaysoon/archive/2011/07/20/151515.htmljaysoonjaysoonWed, 20 Jul 2011 15:59:00 GMThttp://www.shnenglu.com/jaysoon/archive/2011/07/20/151515.htmlhttp://www.shnenglu.com/jaysoon/comments/151515.htmlhttp://www.shnenglu.com/jaysoon/archive/2011/07/20/151515.html#Feedback2http://www.shnenglu.com/jaysoon/comments/commentRss/151515.htmlhttp://www.shnenglu.com/jaysoon/services/trackbacks/151515.html很多同学和朋友经常向我抱怨说Q算法已l成Z们学习和工作中的一个负担。在他们看来Q算法只能应付一下考试Q在学习中没有Q何用处;也有Q求职过E中考算法纯_Ҏ(gu)费_֊Q在实际工作中没有用CQ何算法?/span>

在我的本U四q中Q花了大量时间学习算法,参加法比赛——成W很滥Q朋友们都说Q和我的付出严重不成比例Q但是我一点也不后(zhn)花Ҏ(gu)间学习算法。算法让我在qx的学习中应对各个U目都从容自如,学习h事半功倍?/span>

在^时的学习交流中,有时看其他h的代码相当别扭,不是看不懂(有时真看不懂Q,而是很纳PZ么要q么写呢Q明明有很明昄畅的思\Q干吗要写这么绕呢?我将我觉得正的思\写出来的时候,Ҏ(gu)也会觉得q样写顺畅了很多Q代码也了很多?/span>

在一般应用中Q不会说让你写一?/span>KMP法Q或者给你设计一个动态规划的题目让你来解。但是如果你会这些算法,掌握了这U优化的思想Q在qx的编写中会不知不觉的写出比较高效的代码?/span>

有h_现在中国的Y件现状就是这P不在乎你实现的有多快Q只会在乎你有没有实现所有的功能点,随着g条g的改善,一般情况下都能满要求。这栯也是没错Q如果你甘愿只做一名码工,因ؓ对于相当大的一部分软gQ效率ƈ不是最重要的,甚至W二、第三重要都排不上。但是对于企业的应用和软g的核心部分,往往效率是非帔R要的?/span>

如果编E和写作cL的话Q可以进行这个的比较。编E必M语言C/C++?/span>Java?/span>Python{,写作也一定要会一个语a汉语、英语、法语,当然计算a有效率的优劣以及适合的应用的场景Q而自然语a没有q种属性。算法修M于编E就像文学修M于创作,没有一定的文学修养写不出好的作品Q同h有良好的法修养也创造不出好的代码。数据结构就像写作中的排比句{,它们是骨Ӟl构化编E就像是写作中的D落Q它们得层ơ分明?/span>

在静静的夜晚Q明月透过H子Q照q小屋,时一U异L情怀涌上心头。这时有下面几种人,W一U,嚎啕大哭Q?#8220;妈妈……”Q第二种Q潸然泪下,“我嚓Q想家了是不”Q第三种Q沉思状Q?#8220;有首诗可以表达这个情怀”Q拿起全唐诗Q查找了整晚Q夜天明时Q惊?#8220;扑ֈ了,原来?#8216;丑֤望明月,底头思故?#8217;啊,我记得有的?#8221;Q第四种Q徘徊低?#8220;丑֤望明月,底头思故?#8221;Q第五种Q心中a然而生Q?#8220;独在异乡为异客,明月千里寄乡?#8221;?/span>

同样圎ͼq也反映了一个程序员法修养的几U境界。第一U,菜鸟Q不会表达自q思想Q这U多见于初学语言的hQ只会写hello world之类E序的hQ第二种Q入门,可以表达qxQ但是不懂什么算法,只是凭自己对计算a的理解写E序Q当然写出的E序功能点可能不,但是不完善,潜在?/span>bug很多Q第三种Q有一定的法基础Q但是没有掌握完全,写程序时有高效的意识Q对一些核心程序,看着资料也能写出相应的代码,但是不能zdzȝQ第四种Q有不错的算法修养,写出的代码清晰高效,可胜d键代码的~写Q第五种Q有很高的算法修养,理解了算法的_NQ自己可以得出算法供世h学习Q一般是大师Uh物。国内有相当一部分E序员就是处于第二阶D,他们也有E_的工作,甚至不错的收入,但是L觉遇C瓉Q自q能力t躇不前?/span>

有h_现在各种库都有,那些代码都非帔R效,我只要熟l用这些库p了,不用学习法。可以达到熟l用几个库的程序员也算是第三阶D,但是要想熟练N更多的库Q将库函数熟l的使用Q没有一定的法基础是不行的。比如,如果你想熟练使用STL库,那么对各U容器和法都应该有一定的认识Q什么时候?/span>listQؓ什么快排不能应用于listQ要惛_{这些问题,必须掌握初步的算法?/span>

对于惌在技术上有一定作为的E序员,没有法修养Q就如同金庸说中的学武之h不学习内功,它可以将外功学的炉火U清Q凭着q䆾功力可以走遍半个江湖Q但是一旦遇到高手就挂了Q反之如果有内功修ؓQ学习外功可学一知十Q触cL通,内功修ؓ高来的成p大?/span>

学习法吧!



jaysoon 2011-07-20 23:59 发表评论
]]>
数据挖掘中的指数函数http://www.shnenglu.com/jaysoon/archive/2011/01/21/139062.htmljaysoonjaysoonFri, 21 Jan 2011 15:40:00 GMThttp://www.shnenglu.com/jaysoon/archive/2011/01/21/139062.htmlhttp://www.shnenglu.com/jaysoon/comments/139062.htmlhttp://www.shnenglu.com/jaysoon/archive/2011/01/21/139062.html#Feedback0http://www.shnenglu.com/jaysoon/comments/commentRss/139062.htmlhttp://www.shnenglu.com/jaysoon/services/trackbacks/139062.html            最q做数据Ӟ使用经|络建模。在经|络中,会用到激发函敎ͼactivation functionQ?/font>

        典型的激发函数有Sigmod函数Q?/font>

                  image

        双曲正切函数Q?/font>

                 image

          q两个都涉及到指数函敎ͼ在C中,为求指数函数Q用exp()函数?/font>

      在数ơ出错后扑ֈ问题Q原来是我的指数D大,数据中有时会出现过1000的数字,q导致在求DE中Q即使用double型,也得结果溢出?/font>

      解决Ҏ(gu)是定义一个指数函敎ͼ当指数Dq一定界限便指定一个相Ҏ(gu)I大的|q样也符合数学定义。在我的处理中,界限设定ؓ15Q当该值大?5Ӟq回3000000Q当界限值小?15Ӟq回0?/font>



jaysoon 2011-01-21 23:40 发表评论
]]>
配置本地文g׃nhttp://www.shnenglu.com/jaysoon/archive/2010/04/11/112252.htmljaysoonjaysoonSun, 11 Apr 2010 09:08:00 GMThttp://www.shnenglu.com/jaysoon/archive/2010/04/11/112252.htmlhttp://www.shnenglu.com/jaysoon/comments/112252.htmlhttp://www.shnenglu.com/jaysoon/archive/2010/04/11/112252.html#Feedback0http://www.shnenglu.com/jaysoon/comments/commentRss/112252.htmlhttp://www.shnenglu.com/jaysoon/services/trackbacks/112252.html    在配|文件共享时Q对没有l验的用户会出现很多问题Q这里介l三Ҏ(gu)意事:
    1. 首先打开菜单?#8220;工具”->“文g多w项”->“查看”Q确?#8220;使用单文件共?#8221;没有被选上Q?br>    2. 右键“我的电脑”Q?#8220;理”->“pȝ工具”->“本地用户和组”->“用户”Q右?#8220;Guest”Q?#8220;属?#8221;Q在“常规”选项卡中Q取?#8220;账户已停?#8221;Q?br>    3. 打开“控制面板”->“理工具”->“本地安全{略”Q打开“本地{略”->“用户权利指派”Q双?#8220;拒绝从网l访问这台计机”Q确认其中的“guest”已删除?/span>
    
     本文针对XP用户Q其它用户可参照?br>



jaysoon 2010-04-11 17:08 发表评论
]]>
赋D符和复制构造函?/title><link>http://www.shnenglu.com/jaysoon/archive/2009/04/29/81477.html</link><dc:creator>jaysoon</dc:creator><author>jaysoon</author><pubDate>Wed, 29 Apr 2009 10:32:00 GMT</pubDate><guid>http://www.shnenglu.com/jaysoon/archive/2009/04/29/81477.html</guid><wfw:comment>http://www.shnenglu.com/jaysoon/comments/81477.html</wfw:comment><comments>http://www.shnenglu.com/jaysoon/archive/2009/04/29/81477.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/jaysoon/comments/commentRss/81477.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jaysoon/services/trackbacks/81477.html</trackback:ping><description><![CDATA[<p align=left>     <strong> 赋D符</strong>?strong>复制构造函?/strong>都是用已存在A的对象来创徏另一个对象B。不同之处在于:赋D符处理两个已有对象Q即赋值前B应该是存在的Q复制构造函数是生成一个全新的对象Q即调用复制构造函C前B不存在?nbsp;  <br>      CTemp a(b);      //复制构造函敎ͼC++风格的初始化<br>      CTemp a=b;      //仍然是复制构造函敎ͼ不过q种风格只是Z与C兼容Q与上面的效果一?br>      在这之前a不存在,或者说q未构造好?br><br>      CTemp a;<br>      a=b;               //赋D符<br>      在这之前a已经通过默认构造函数构造完成?br></p>       我觉得将赋D符UCؓ“<strong>赋值构造函?/strong>”是错误的Q构造函数发生在对象创徏时期Q而赋值是q算W,发生?#8220;q算”时期Q赋D前Q对象已l构造完成,所以不能称之ؓ“构造函?#8221;?br>      一家之aQ! <img src ="http://www.shnenglu.com/jaysoon/aggbug/81477.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jaysoon/" target="_blank">jaysoon</a> 2009-04-29 18:32 <a href="http://www.shnenglu.com/jaysoon/archive/2009/04/29/81477.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++是类层次保护?/title><link>http://www.shnenglu.com/jaysoon/archive/2009/04/29/81474.html</link><dc:creator>jaysoon</dc:creator><author>jaysoon</author><pubDate>Wed, 29 Apr 2009 09:57:00 GMT</pubDate><guid>http://www.shnenglu.com/jaysoon/archive/2009/04/29/81474.html</guid><wfw:comment>http://www.shnenglu.com/jaysoon/comments/81474.html</wfw:comment><comments>http://www.shnenglu.com/jaysoon/archive/2009/04/29/81474.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/jaysoon/comments/commentRss/81474.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jaysoon/services/trackbacks/81474.html</trackback:ping><description><![CDATA[<p> </p> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #0000ff">class</span><span style="color: #000000"> CStack<br /><img id="Codehighlighter1_13_197_Open_Image" onclick="this.style.display='none'; Codehighlighter1_13_197_Open_Text.style.display='none'; Codehighlighter1_13_197_Closed_Image.style.display='inline'; Codehighlighter1_13_197_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_13_197_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_13_197_Closed_Text.style.display='none'; Codehighlighter1_13_197_Open_Image.style.display='inline'; Codehighlighter1_13_197_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"></span><span id="Codehighlighter1_13_197_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.shnenglu.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_13_197_Open_Text"><span style="color: #000000">{<br /><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top" alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">:<br /><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top" alt="" />       CStack();  <br /><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top" alt="" />       CStack(</span><span style="color: #0000ff">int</span><span style="color: #000000">  size); <br /><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top" alt="" />       CStack(</span><span style="color: #0000ff">const</span><span style="color: #000000"> CStack</span><span style="color: #000000">&</span><span style="color: #000000"> st);   </span><span style="color: #008000">//</span><span style="color: #008000">复制构造函敎ͼ注意使用引用</span><span style="color: #008000"><br /><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top" alt="" /></span><span style="color: #0000ff">private</span><span style="color: #000000">:    <br /><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top" alt="" />       </span><span style="color: #0000ff">int</span><span style="color: #000000"> _size;<br /><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top" alt="" />       </span><span style="color: #0000ff">int</span><span style="color: #000000"> _count;<br /><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top" alt="" />       </span><span style="color: #0000ff">int</span><span style="color: #000000">*</span><span style="color: #000000"> _s;           <br /><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />}</span></span><span style="color: #000000">;<br /><img src="http://www.shnenglu.com/Images/OutliningIndicators/None.gif" align="top" alt="" />CStack::CStack(</span><span style="color: #0000ff">const</span><span style="color: #000000"> CStack</span><span style="color: #000000">&</span><span style="color: #000000"> st)<br /><img id="Codehighlighter1_233_622_Open_Image" onclick="this.style.display='none'; Codehighlighter1_233_622_Open_Text.style.display='none'; Codehighlighter1_233_622_Closed_Image.style.display='inline'; Codehighlighter1_233_622_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_233_622_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_233_622_Closed_Text.style.display='none'; Codehighlighter1_233_622_Open_Image.style.display='inline'; Codehighlighter1_233_622_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"></span><span id="Codehighlighter1_233_622_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.shnenglu.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_233_622_Open_Text"><span style="color: #000000">{<br /><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top" alt="" />      _size</span><span style="color: #000000">=</span><span style="color: #000000">st._size;<br /><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top" alt="" />      </span><span style="color: #0000ff">if</span><span style="color: #000000">(_size </span><span style="color: #000000">></span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">)<br /><img id="Codehighlighter1_283_488_Open_Image" onclick="this.style.display='none'; Codehighlighter1_283_488_Open_Text.style.display='none'; Codehighlighter1_283_488_Closed_Image.style.display='inline'; Codehighlighter1_283_488_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_283_488_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_283_488_Closed_Text.style.display='none'; Codehighlighter1_283_488_Open_Image.style.display='inline'; Codehighlighter1_283_488_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">      </span><span id="Codehighlighter1_283_488_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.shnenglu.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_283_488_Open_Text"><span style="color: #000000">{<br /><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top" alt="" />               _s </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> </span><span style="color: #0000ff">int</span><span style="color: #000000">[_size];<br /><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top" alt="" />               _count </span><span style="color: #000000">=</span><span style="color: #000000"> st._count;                  </span><span style="color: #008000">//</span><span style="color: #008000">讉Kst的私有数?/span><span style="color: #008000"><br /><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top" alt="" /></span><span style="color: #000000">               </span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000"> i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">; i</span><span style="color: #000000"><</span><span style="color: #000000">_count; </span><span style="color: #000000">++</span><span style="color: #000000">i)<br /><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top" alt="" />                       _s[i] </span><span style="color: #000000">=</span><span style="color: #000000"> st._s[i];             <br /><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />      }</span></span><span style="color: #000000">         <br /><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top" alt="" />      </span><span style="color: #0000ff">else</span><span style="color: #000000"><br /><img id="Codehighlighter1_516_576_Open_Image" onclick="this.style.display='none'; Codehighlighter1_516_576_Open_Text.style.display='none'; Codehighlighter1_516_576_Closed_Image.style.display='inline'; Codehighlighter1_516_576_Closed_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_516_576_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_516_576_Closed_Text.style.display='none'; Codehighlighter1_516_576_Open_Image.style.display='inline'; Codehighlighter1_516_576_Open_Text.style.display='inline';" src="http://www.shnenglu.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">      </span><span id="Codehighlighter1_516_576_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.shnenglu.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_516_576_Open_Text"><span style="color: #000000">{<br /><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top" alt="" />          _s </span><span style="color: #000000">=</span><span style="color: #000000">  </span><span style="color: #000000">0</span><span style="color: #000000">;<br /><img src="http://www.shnenglu.com/Images/OutliningIndicators/InBlock.gif" align="top" alt="" />          _count </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">0</span><span style="color: #000000">;           <br /><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />      }</span></span><span style="color: #000000">                                            <br /><img src="http://www.shnenglu.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />}</span></span></div> <p><strong>      在C++模型中,保护是在cdơ应用的Q而不是在对象层次?br /></strong>      q句话的意思是Q类的Q意一个对象可以访问该cȝ另一个对象的内部的Q何东ѝ在上面的例子中Q复制构造函C的赋D句_size = st._size;讉K了st的私有数据?br />      q说明,C++中的讉K保护是按照层ơ的原则定义的,那么什么事对象层次的保护呢Q?br />      在Smalltalk中,成员函数可以当前对象的私有数据,但不能访问Q何其它对象的U有数据Q即使它们属于相同的cR?br /></p><img src ="http://www.shnenglu.com/jaysoon/aggbug/81474.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jaysoon/" target="_blank">jaysoon</a> 2009-04-29 17:57 <a href="http://www.shnenglu.com/jaysoon/archive/2009/04/29/81474.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++中关于构造函数的几个问题http://www.shnenglu.com/jaysoon/archive/2009/04/29/81470.htmljaysoonjaysoonWed, 29 Apr 2009 09:45:00 GMThttp://www.shnenglu.com/jaysoon/archive/2009/04/29/81470.htmlhttp://www.shnenglu.com/jaysoon/comments/81470.htmlhttp://www.shnenglu.com/jaysoon/archive/2009/04/29/81470.html#Feedback0http://www.shnenglu.com/jaysoon/comments/commentRss/81470.htmlhttp://www.shnenglu.com/jaysoon/services/trackbacks/81470.html首先我们l出一个类的例?br>

class CStack
{
public:
       CStack();  
       CStack(
int  size=100); 
       CStack(
const CStack& st);   //复制构造函敎ͼ注意使用引用
private:    
       
int _size;
       
int _count;
       
int* _s;           
}
;
CStack::CStack(
const CStack& st)
{
      _size
=st._size;
      
if(_size > 0)
      
{
               _s 
= new int[_size];
               _count 
= st._count;         
               
for(int i=0; i<_count; ++i)
                       _s[i] 
= st._s[i];             
      }
         
      
else
      
{
          _s 
=  0;
          _count 
= 0;           
      }
                                            
}


int main()
{
    CStack st;
    
return 0;    
}



一. ?strong>main()中,对象st不知道该调用哪一个构造函敎ͼ因ؓCStack()和CStack(int  size=100)都满xӞ此时正确的编译器会立xCU冲H,实现者解册个问题?/p>

? 假设我们已经有了一个CStack对象s1
CSatck s2=s1;      //q个句子会调用复制构造函?br>CStack s3 = CStack(200);   //q个句子会做什么呢Q?br>
首先Q生一个时CStack对象Q不妨命名ؓsssQƈ调用构造函数CStack::CStack(200)Q随后执行复制构造函数。也是_它相当于

CStack sss(200);
CStack s3(sss);

q很费旉Q不q,大多数编译器q是能优化这U语句。但是我们ؓ什么不L一个好的习惯,直接写成
CStack s3(200)呢?



jaysoon 2009-04-29 17:45 发表评论
]]>
˾þ| þþƷ99þ㽶ɫ| 鶹ƷþþƷɫۺ| ˾þۺ| þݺҹҹ| ۺϾþþ| ƷƷھþø| þþƷƷ| ޹þþþƷ| þù޾Ʒ鶹| þþþþŮ| ڵþ| ԭۺϾþô| VVþþ| ľƷþþþ| ձƷþþþĻ| þþù׮| þøƬ| þþƷӰԺ| TOKYOۺϾþþƷ| ŷѹۿþ| þAV| þþƷ99Ӱ | ƷŮþþþ| ŷҹƷþþþþ˳| þҹɫƷվ| ۺϾþþƷɫ| ޹˾þۺһ77| Ʒ۲ӰԺþ| 99þó18վ| 88þþƷһëƬ | ɫ꼤þۺ| Ůþþùһ| þAAAƬ69| þþþĻɫ| þAV| þù㽶Ƶ| þAVվ| ޾Ʒھþ| ˾þ| ޹Ʒþþ|