<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-TW">
		<id>https://fgchen.com/wiki/index.php?action=history&amp;feed=atom&amp;title=SCJP_1.6%E7%89%88%E8%80%83%E9%A1%8C_244</id>
		<title>SCJP 1.6版考題 244 - 修訂歷史</title>
		<link rel="self" type="application/atom+xml" href="https://fgchen.com/wiki/index.php?action=history&amp;feed=atom&amp;title=SCJP_1.6%E7%89%88%E8%80%83%E9%A1%8C_244"/>
		<link rel="alternate" type="text/html" href="https://fgchen.com/wiki/index.php?title=SCJP_1.6%E7%89%88%E8%80%83%E9%A1%8C_244&amp;action=history"/>
		<updated>2026-05-04T12:13:09Z</updated>
		<subtitle>本 Wiki 上此頁面的修訂歷史</subtitle>
		<generator>MediaWiki 1.29.0</generator>

	<entry>
		<id>https://fgchen.com/wiki/index.php?title=SCJP_1.6%E7%89%88%E8%80%83%E9%A1%8C_244&amp;diff=1086&amp;oldid=prev</id>
		<title>Ikk：新頁面: Given: &lt;br&gt;1. &amp;nbsp; &amp;nbsp;public class TestSeven extends Thread{ &lt;br&gt;2. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private static int x; &lt;br&gt;3. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp...</title>
		<link rel="alternate" type="text/html" href="https://fgchen.com/wiki/index.php?title=SCJP_1.6%E7%89%88%E8%80%83%E9%A1%8C_244&amp;diff=1086&amp;oldid=prev"/>
				<updated>2013-03-26T07:00:31Z</updated>
		
		<summary type="html">&lt;p&gt;新頁面: Given: &amp;lt;br&amp;gt;1.    public class TestSeven extends Thread{ &amp;lt;br&amp;gt;2.             private static int x; &amp;lt;br&amp;gt;3.           &amp;amp;nbsp...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新頁面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Given:&lt;br /&gt;
&amp;lt;br&amp;gt;1. &amp;amp;nbsp; &amp;amp;nbsp;public class TestSeven extends Thread{&lt;br /&gt;
&amp;lt;br&amp;gt;2. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; private static int x;&lt;br /&gt;
&amp;lt;br&amp;gt;3. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; public synchronized void doThings(){&lt;br /&gt;
&amp;lt;br&amp;gt;4. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; int current = x;&lt;br /&gt;
&amp;lt;br&amp;gt;5. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; current++;&lt;br /&gt;
&amp;lt;br&amp;gt;6. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; x = current;&lt;br /&gt;
&amp;lt;br&amp;gt;7. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; }&lt;br /&gt;
&amp;lt;br&amp;gt;8. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;public void run(){&lt;br /&gt;
&amp;lt;br&amp;gt;9. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; doThings();&lt;br /&gt;
&amp;lt;br&amp;gt;10. &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;}&amp;lt;br&amp;gt;11. &amp;amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Which statement is true?&amp;lt;br&amp;gt;A. Compilation fails.&amp;lt;br&amp;gt;B. An exception is thrown at runtime.&amp;lt;br&amp;gt;C. Synchronizing the run() method would make the class thread-safe.&amp;lt;br&amp;gt;D. The data in variable &amp;quot;x&amp;quot; are protected from concurrent access problems.&amp;lt;br&amp;gt;E. Declaring the doThings() method as static would make the class thread-safe.&amp;lt;br&amp;gt;F. Wrapping the statements within doThings() in a synchronized(new Object()){} block would make the class thread-safe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:medium;&amp;quot;&amp;gt;解答&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: medium;&amp;quot;&amp;gt;Ans: E   &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:medium;&amp;quot;&amp;gt; 解說:&lt;br /&gt;
E是說若宣告doThings方法為靜態的方法將使得該類別為&amp;quot;執行緒安全&amp;quot;。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;thread-safe是說不管執行緒如何執行，都不會破壞掉類別資料完整性。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;若方法是物件的成員，則多個執行緒就可以執行多個版本的doThings方法，好像多人一起操作一個共同的整數資料x(因為x是靜態的/類別的，只有一個)，&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;若是把doThings方法變成類別，那麼也就只有一個版本的doThings方法，加上此方法又是同步的，同一時間只有此方法可以對x進行操作，不會因為多人方法的存取x而造成x的破壞。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/span&amp;gt;	&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{{SCJP 1.6版考題講解}}&lt;/div&gt;</summary>
		<author><name>Ikk</name></author>	</entry>

	</feed>