|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
先说优点,首先和C,C++这些语言比起来,java很简单,去掉指针的java,非常好理解,自动垃圾回收机制也很好,自从JDK1.5推出以后,性能上又有了很大提高。
最初,让我们正式编一个程序(正文⑤)。它能打印出与以后运转的体系有关的材料,并使用了来自Java尺度库的System对象的多种办法。注重这里引进了一种分外的正文款式:“//”。它暗示到本行停止前的一切内容都是正文:
- //Property.java
- importjava.util.*;
- publicclassProperty{
- publicstaticvoidmain(String[]args){
- System.out.println(newDate());
- Propertiesp=System.getProperties();
- p.list(System.out);
- System.out.println("---MemoryUsage:");
- Runtimert=Runtime.getRuntime();
- System.out.println("TotalMemory="
- +rt.totalMemory()
- +"FreeMemory="
- +rt.freeMemory());
- }
- }
复制代码
⑤:在某些编程情况里,程序会在屏幕上统统而过,乃至没时机看到了局。可将上面这段代码置于main()的开端,用它停息输入:
try{
Thread.currentThread().sleep(5*1000);
}catch(InterruptedExceptione){}
}
它的感化是停息输入5秒钟。这段代码触及的一些观点要到本书前面才会讲到。以是今朝不用穷究,只晓得它是让程序停息的一个技能即可。
在每一个程叙文件的开首,都必需安排一个import语句,导进谁人文件的代码里要用到的一切分外的类。注重我们说它们是“分外”的,由于一个特别的类库会主动导进每一个Java文件:java.lang。启动您的Web扫瞄器,检察由Sun供应的用户文档(假如还没有从http://www.java.sun.com下载,或用其他体例安装了Java文档,请当即下载)。在packages.html文件里,可找到Java配套供应的一切类库称号。请选择个中的java.lang。在“ClassIndex”上面,可找到属于谁人库的全体类的列表。因为java.lang默许进进每一个Java代码文件,以是这些类在任什么时候候都可间接利用。在这个列内外,可发明System和Runtime,我们在Property.java里用到了它们。java.lang里没有列出Date类,以是必需导进另外一个类库才干利用它。假如不分明一个特定的类在哪一个类库里,大概想检视一切的类,可在Java用户文档里选择“ClassHierarchy”(类分级布局)。在Web扫瞄器中,固然要花不短的工夫来创建这个布局,但可分明找到与Java配套供应的每个类。随后,可用扫瞄器的“查找”(Find)功效搜刮关头字“Date”。经如许处置后,可发明我们的搜刮方针以java.util.Date的情势列出。我们终究晓得它位于util库里,以是必需导进java.util.*;不然便不克不及利用Date。
察看packages.html文档最开首的部分(我已将其设为本人的默许肇端页),请选择java.lang,再选System。这时候可看到System类有几个字段。若选择out,便可晓得它是一个staticPrintStream对象。因为它是“静态”的,以是不必要我们创立任何工具。out对象一定是3,以是只需间接用它便可。我们能对这个out对象做的事变由它的范例决意:PrintStream。PrintStream在申明笔墨中以一个超链接的情势列出,这一点做得十分便利。以是倘使单击谁人链接,便可看到可以为PrintStream挪用的一切办法。办法的数目很多,本书前面会具体先容。就今朝来讲,我们感乐趣的只要println()。它的意义是“把我给你的工具打印到把持台,并用一个新行停止”。以是在任何Java程序中,一旦要把某些内容打印到把持台,便可前提反射地写上System.out.println("内容")。
类名与文件是一样的。若象如今如许创立一个自力的程序,文件中的一个类必需与文件同名(假如没如许做,编译器会实时作出反响)。类里必需包括一个名为main()的办法,情势以下:
publicstaticvoidmain(String[]args){
个中,关头字“public”意味着办法可由内部天下挪用(第5章会具体注释)。main()的自变量是包括了String对象的一个数组。args不会在本程序顶用到,但必要在这个中央列出,由于它们保留了在命令行挪用的自变量。
程序的第一行十分风趣:
System.out.println(newDate());
请察看它的自变量:创立Date对象独一的目标就是将它的值发送给println()。一旦这个语句实行终了,Date就不再必要。随之而来的“渣滓搜集器”会发明这一情形,并在任何大概的时分将其接纳。现实上,我们没太年夜的需要体贴“扫除”的细节。
第二行挪用了System.getProperties()。若用Web扫瞄器检察联机用户文档,便可晓得getProperties()是System类的一个static办法。因为它是“静态”的,以是不用创立任何对象即可挪用该办法。不管是不是存在该类的一个对象,static办法随时都可以使用。挪用getProperties()时,它会将体系属性作为Properties类的一个对象天生(注重Properties是“属性”的意义)。随后的的句柄保留在一个名为p的Properties句柄里。在第三行,人人可看到Properties对象有一个名为list()的办法,它将本人的全体内容都发给一个我们作为自变量传送的PrintStream对象。
main()的第四和第六行是典范的打印语句。注重为了打印多个String值,用加号(+)分开它们便可。但是,也要在这里注重一些奇异的事变。在String对象中利用时,加号其实不代表真实的“相加”。处置字串时,我们一般不用思索“+”的任何特别寄义。可是,Java的String类要受一种名为“运算符过载”的机制的制约。也就是说,只要在伴同String对象利用时,加号才会发生与其他任何中央分歧的体现。关于字串,它的意义是“毗连这两个字串”。
但事变到此并未停止。请察看下述语句:
System.out.println("TotalMemory="
+rt.totalMemory()
+"FreeMemory="
+rt.freeMemory());
个中,totalMemory()和freeMemory()前往的是数值,并不是String对象。假如将一个数值“加”到一个字串身上,会产生甚么情形呢?同我们一样,编译器也会心识到这个成绩,并把戏般地挪用一个办法,将谁人数值(int,float等等)转换成字串。经如许处置后,它们固然能使用加号“加”到一同。这类“主动范例转换”亦划进“运算符过载”处置的范围。
很多Java著作都在强烈热闹地争吵“运算符过载”(C++的一项特征)是不是有效。今朝就是否决它的一个好例子!但是,这最多只能算编译器(程序)的成绩,并且只是对String对象而言。关于本人编写的任何源代码,都不成能使运算符“过载”。
经由过程为Runtime类挪用getRuntime()办法,main()的第五行创立了一个Runtime对象。前往的则是指向一个Runtime对象的句柄。并且,我们不用体贴它是一个静态对象,仍是由new命令创立的一个对象。这是因为我们不用为扫除事情卖力,能够大摇大摆地利用对象。正如显现的那样,Runtime可告知我们与内存利用有关的信息。
不得不提一下的是:.net网页编程是看到java红,而开发出来的工具。 |
|