正在加载图片...
"之后的这行文字都是注释。 缩进使得Java的代码更易读。由于Java是一种形式自由的语言,因此 额外的空格,跳格以及回车不会对程序的结构造成任何影响。 注意,虽然在C和C++里这种写法是完全合法的,但是你不能在Java 里这么写: int x=96:// Illegal 编译器会说变量x已经定义过了。于是C和C++的,在更大的作用域里 “隐藏”变量的能力,就被Java给禁了。因为Java的设计者们认为这 会导致令人费解的程序。 对象的作用域 Java对象的生命周期同 primitive的不同。当你用new创建Java对象 之后,它会晃荡到作用域外面。如果你写: string s= new string("a string") 1// End of scope s这个 reference会在作用域结束之后消失。但是s所指的那个 String 仍然还占着内存。在这段代码里,你已经没法访问这个对象了,因为唯 指向它那个的 reference现在已经出了作用域。在后面的章节中你还会 看到,在程序的运行过程中,它是怎样传递和复制对象的 reference 的 只要你还用得着,那些用new创建的对象就不会跑开。看来用了这种方 法之后,C++里面的一大堆问题在Java里面已经不复存在了。C++编 程中最难的问题就是,等你要用对象的时候,你根本没法从语言中获得这 个对象还在不在的信息。而且更重要的是,用C++编程,你得亲自进行 对象的清理。 这就带来了一个有趣的问题。如果java就这样只管造对象,不管清理对 象,那么又是谁在那里阳止对象填满内存进而把程序给搞宕的呢?这确实 是C++所面临的问题。但这里就有点魔法了。Java有一个垃圾回收器 ( gabage collector),它会看着所有用new创建的对象,并且还会知道 第7页共26页shhgs@wgqqh.com ￾ 7 ✁ ✂ 26 ✁ ‘//’ u( &…‰Æµ 6%ç‰ Java (¸€S,) Java 3†7´ý,(ƒ æò 8½(´è 9èE:;<Xº¥âF(4òڎ‡Ÿ  ¹ F C  C+ + Ë †«c( ¡F Java Ë Z« { int x = 12; { int x = 96; // Illegal } } áfº$5ª x ôõO3^,) C  C+ + ( FÂ(1ˆ2Ë Í=>Ï5ª(;ã ¹ Java ¬?,æ™ Java ( š"ٙ º1_@ª-£(âF   Java ¥(0»¼@‡ p ri m iti ve (X‡ ¡ˆ new ~ Java ¥ u AºABg1ˆ2½¶ÄÅ¡« { String s = new String("a string"); } // End of scope s × reference ºF1ˆ24Cu‚6 s DZ(Y× String Û.Ÿ{F ø€Ë ¡ôõœ±² ×¥, 晙3 ZAY×( reference íFôõ!,1ˆ2F¶(ûß*¡º <g FâF(†&^â* AÕ¦DE6¥( reference ( ó%¡ˆ‰. Ÿ new ~(¥XºF<Qˆ, †µ u C+ + ˶(3ÂƲF Java ˶ôõX6{F,C+ + á â*bU(² -¡%ˆ¥(M ¡G œƒ*H‰ ×¥FXF(ƒà%( ˆ C+ + áâ ¡‰Iý%& ¥(&¢ dQ,3×mJ(²ÄÅ Java  ¦óÂÚ¥ XÂ&¢¥  YZüKFYËL+¥MNŸ{%àPâF¬O(VÊ ñ  C+ + D¶P(² ËmCQ,Java m3×RS;Àf (gabage collector) Aº<.Dmˆ new ~(¥ žº½t
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有