2018.03.31 女爷i 2022-05-28 07:07 29阅读 0赞 ### **当编译并运行下面程序时会发生什么结果()** ### <table> <tbody> <tr> <td><p><span style="color:rgb(175,175,175);">1</span></p><p><span style="color:rgb(175,175,175);">2</span></p><p><span style="color:rgb(175,175,175);">3</span></p><p><span style="color:rgb(175,175,175);">4</span></p><p><span style="color:rgb(175,175,175);">5</span></p><p><span style="color:rgb(175,175,175);">6</span></p><p><span style="color:rgb(175,175,175);">7</span></p><p><span style="color:rgb(175,175,175);">8</span></p><p><span style="color:rgb(175,175,175);">9</span></p><p><span style="color:rgb(175,175,175);">10</span></p><p><span style="color:rgb(175,175,175);">11</span></p></td> <td><p><strong><span style="color:rgb(0,102,153);">public</span> <span style="color:rgb(0,102,153);">class</span></strong> <span style="color:rgb(0,0,0);">Bground</span><span style="color:rgb(0,0,0);"> </span><strong><span style="color:rgb(0,102,153);">extends</span></strong> <span style="color:rgb(0,0,0);">Thread{ </span></p><p> <strong><span style="color:rgb(0,102,153);">public</span> <span style="color:rgb(0,102,153);">static</span> <span style="color:rgb(0,102,153);">void</span></strong> <span style="color:rgb(0,0,0);">main(String argv[]){ </span></p><p> <span style="color:rgb(0,0,0);">Bground b =</span><span style="color:rgb(0,0,0);"> </span><strong><span style="color:rgb(0,102,153);">new</span></strong> <span style="color:rgb(0,0,0);">Bground();</span></p><p> <span style="color:rgb(0,0,0);">b.run();</span></p><p> <span style="color:rgb(0,0,0);">}</span></p><p> <strong><span style="color:rgb(0,102,153);">public</span> <span style="color:rgb(0,102,153);">void</span></strong> <span style="color:rgb(0,0,0);">start(){ </span></p><p> <strong><span style="color:rgb(0,102,153);">for</span></strong><span style="color:rgb(0,0,0);">(</span><strong><span style="color:rgb(0,102,153);">int</span></strong> <span style="color:rgb(0,0,0);">i=</span><span style="color:rgb(0,153,0);">0</span><span style="color:rgb(0,0,0);">;i<</span><span style="color:rgb(0,153,0);">10</span><span style="color:rgb(0,0,0);">;i++){ </span></p><p> <span style="color:rgb(0,0,0);">System.out.println(</span><span style="color:rgb(0,0,255);">"Value of i = "</span><span style="color:rgb(0,0,0);">+i);</span></p><p> <span style="color:rgb(0,0,0);">}</span></p><p> <span style="color:rgb(0,0,0);">}</span></p><p><span style="color:rgb(0,0,0);">}</span></p></td> </tr> </tbody> </table> 编译通过,但无输出 首先继承Thread类,但是没有重写父类的run()方法,所以调用的还是父类的run()方法。 public void run() \{ if (target != null) \{ target.run(); \} \} 这是Thread方法中的run()方法,可以看到,需要调用成员变量target的run()方法。 但是明显run()方法没有被初始化。所以是可以编译通过,但是却不会有任何的输出。 ### 2. **关于接口的一些知识** ### 接口中所有的成员变量都是由public static final 进行修饰的,也就是说,这是一个常量。 所有的方法都是默认是public abstract 修饰的。只允许被访问和定义,而不能被修改,因为接口中的方法是一种规范。 ### 3. **String str = new String(“abc”),“abc”在内存中是怎么分配的?** ### “abc”保存在常量池,而str所引用的对象是在堆中的。 ### 4. **java用监视器机制实现了进程之间的同步执行.** ### .What is the result of compiling and executing the following fragment of code: <table> <tbody> <tr> <td><p><span style="color:rgb(175,175,175);">1</span></p><p><span style="color:rgb(175,175,175);">2</span></p><p><span style="color:rgb(175,175,175);">3</span></p><p><span style="color:rgb(175,175,175);">4</span></p><p><span style="color:rgb(175,175,175);">5</span></p><p><span style="color:rgb(175,175,175);">6</span></p><p><span style="color:rgb(175,175,175);">7</span></p><p><span style="color:rgb(175,175,175);">8</span></p><p><span style="color:rgb(175,175,175);">9</span></p></td> <td><p><span style="color:rgb(0,0,0);">Boolean flag =</span><span style="color:rgb(0,0,0);"> </span><strong><span style="color:rgb(0,102,153);">false</span></strong><span style="color:rgb(0,0,0);">;</span></p><p><strong><span style="color:rgb(0,102,153);">if</span></strong> <span style="color:rgb(0,0,0);">(flag =</span><span style="color:rgb(0,0,0);"> </span><strong><span style="color:rgb(0,102,153);">true</span></strong><span style="color:rgb(0,0,0);">)</span></p><p><span style="color:rgb(0,0,0);">{ </span></p><p> <span style="color:rgb(0,0,0);">System.out.println(“</span><strong><span style="color:rgb(0,102,153);">true</span></strong><span style="color:rgb(0,0,0);">”);</span></p><p><span style="color:rgb(0,0,0);">}</span></p><p><strong><span style="color:rgb(0,102,153);">else</span></strong></p><p><span style="color:rgb(0,0,0);">{ </span></p><p> <span style="color:rgb(0,0,0);">System.out.println(“</span><strong><span style="color:rgb(0,102,153);">false</span></strong><span style="color:rgb(0,0,0);">”);</span></p><p><span style="color:rgb(0,0,0);">}</span></p></td> </tr> </tbody> </table> The text“true” is displayed. 我看到的解析是 在**if** (flag = **true**) 这个语句中,先对flag进行了重新赋值 , 令flag的值指向 true 。然后flag的值为true,所以执行的是System.out.println(“**true**”); 这条语句。
还没有评论,来说两句吧...