問題1:persistence (持續化)和 serialization(序列化)區別。這是針對這周錯題裏的,單獨分析一下。html
問題1解決方案:java
<span style="color:rgb(51,51,51);">序列化和持久化很類似,有些人甚至混爲一談,其實仍是有區別的,</span><span style="color:#ff0000;">序列化是爲了解決對象的傳輸問題,傳輸能夠在<a href="http://baike.baidu.com/view/1053.htm" style="text-decoration:none;">線程</a>之間、進程之間、內存外存之間、<a href="http://baike.baidu.com/view/23880.htm" style="text-decoration:none;">主機</a>之間進行。</span><span style="color:#333333;">我之因此在這裏提到序列化,是由於咱們能夠利用</span><span style="color:#ff0000;">序列化來輔助持久化</span><span style="color:#333333;">,能夠說凡是能夠持久化的對象均可以序列化,由於序列化相對容易一些(也不是很容易),因此主流的軟件基礎設施,好比.net和java,已經把序列化的框架完成了。</span>git
因此,序列化只是輔助持久化而已,是有必定區別的,換句話說,實現持久化就能夠實現序列化。數據庫
問題2:list下ArrayList和Linked和Vector的區別編程
問題2的解決方案:在list下這幾個有什麼區別。ArrayList咱們都熟悉,是以數組的形式來實現的。數組
<table><tr><td bgcolor=#7FFFD4>參考資料:[Vector,ArrayList, LinkedList的區別](https://www.cnblogs.com/zkk-wust/p/7250776.html) </td></tr></table> 網絡
問題3:**Java集合不能存放基本數據類型,只存放對象的引用。**那麼,爲何ArrayList能夠存放int類型的數據?
數據結構
問題3解決方案:框架
能夠經過包裝類把基本類型轉爲對象類型,存放引用就能夠解決這個問題。更方便的,因爲有了自動拆箱和裝箱功能,基本數據類型和其對應對象(包裝類)之間的轉換變得很方便,想把基本數據類型存入集合中,直接存就能夠了,系統會自動將其裝箱成封裝類,而後加入到集合當中。ide
也就是說,集合類能夠存放基本類型的包裝類。那麼,由於系統能夠自動的裝箱和拆箱,咱們就能夠不用考慮添加的元素是不是基本數據類型了。
<table><tr><td bgcolor=#7FFFD4>參考資料: [Java集合不能存放基本數據類型,只存放對象的引用](https://blog.csdn.net/zm13007310400/article/details/71256507)</td></tr></table>
問題1:在作PP13.3的時候,我想逐個比較列表中的數。結果
問題1解決方案:經過兩次結果的對比,我發現了,這個循環做用是,**前一個和後一個相比較,並非第一個依次與後幾個比較。**這是和題意相悖的。而後,我總結我須要運用兩個循環,因此我定義了兩個指針。讓他們分別去循環。
An exception can produce a "call stack trace" which lists B
A . the active methods in the order that they were invoked
B . the active methods in the opposite order that they were invoked
C . the values of all instance data of the object where the exception was raised
D . the values of all instance data of the object where the exception was raised and all local variables and parameters of the method where the exception was raised
E . the name of the exception thrown
理解:首先,咱們要清楚call stack trace
是什麼意思,在書P344,堆棧蹤影。咱們可能不是很熟悉,可是咱們應該清楚什麼是堆棧。而堆棧是一種以 <span style="color:red">後進先出</span>方式管理數據的線性數據結構。 堆棧跟蹤提供了儲存在運行時堆棧中的發生異常方法、文件和代碼行號。若是是,先進後出,那麼就是反序輸出的。
The idea that an object can exist separate from the executing program that creates it is called C
A . transience
B . static
C . persistence
D . serialization
E . finality
理解:其實我以爲這道題是超綱了。先不說咱們不清楚選項的意思。這裏我惟一看懂的就一個B靜態的。 <span id="jump"> </span>
對象存儲在內存中,當它們再也不被引用時,被垃圾回收器回收。當Java程序終止時,沒有對象被引用,所以全部對象都被回收。可是,能夠保存任何給定的對象以供未來使用。這種特性稱爲持久性,經過將對象的實例數據保存到文件中來實現這一點。這能夠經過將每一個實例數據寫入數據文件來實現,可是使用對象序列化簡化。
持久化(Persistence),即把數據(如內存中的對象)保存到可永久保存的存儲設備中(如磁盤)。持久化的主要應用是將內存中的對象存儲在數據庫中,或者存儲在磁盤文件中、XML數據文件中等等。
序列化是將對象狀態轉換爲可保持或傳輸的格式的過程在MFC中儲存或恢復對象的過程即爲Serialization,也稱爲Persistent(永續生存)。在序列化期間,對象將其當前狀態寫入到臨時或永久性存儲區(存入文件中)。之後,能夠經過從存儲區中讀取或反序列化對象的狀態,從新建立該對象。以此達到面向對象中的永續生存。
不看不知道,一看嚇一跳。序列化也稱爲Persistent(永續生存)。難不成他們還有淵源?爲何不選D而選C呢?
因此,我查到了java中的Serialiazation機制
Serialization是指把類或者基本的數據類型持久化(persistence)到數據流(Stream)中,包括文件、字節流、網絡數據流。
JAVA中主要靠兩個類:ObjectOuputStream和ObjectInputStream。 他們是JAVA IO系統裏的OutputStream和InputStream的子類。
咱們接着查下API加以理解接口Serializable。
其實,我仍是不理解,或者說,使用serialization也必須持久化,因此才選的C,不明白別的同窗怎麼想的吧,對我來講有點難度。
<table><tr><td bgcolor=#7FFFD4>參考資料:
Persistence VS Serialization serialization
持久化
什麼是java persistence </td></tr></table>
Character streams manage C
A . byte-sized data
B . binary data
C . Unicode characters
D . ASCII characters
E . compressed data
理解:字符流用於16位Unicode字符。這與用於管理任何字節大小數據的字節流不一樣,包括ASCII字符和其餘類型的二進制數據。
System.err is a(n) C
A . input stream
B . GUI dialog box that indicates when an error has arisen
C . object
D . Error subclass
E . RuntimeException subclass
理解:這題確實是魯莽了。在書P352:
System類中有三種對象引用變量(in, out, err),分別表明了三種標準I/O流。
<span style="color:red">因此,System.err應該是一個對象,表明的是錯誤流。</span>
Assume infile is a BufferedReader for a textfile and that the textfile is empty. What is returned from the message infile.readLine( ); ? B
A . 0
B . null
C . a special character known as the End-of-file marker (EOF)
D . none of the above, the message causes a NullPointerException to be thrown
E . none of the above, the message causes a EndOfFileException to be thrown
理解:這道題,我選了D。那爲何不會拋出異常呢。咱們須要瞭解空指針異常有哪些。
<table><tr><td bgcolor=#7FFFD4>參考資料:[通常報java.lang.NullPointerException的緣由有如下幾種](https://blog.csdn.net/zwhfyy/article/details/885588/) </td></tr></table> >- 字符串變量未初始化; >- 接口類型的對象沒有用具體的類初始化; >- 當一個對象的值爲空時,你沒有判斷爲空的狀況。
恍然大悟。
編程方面一切如常,可是測試方面卻有了大幅度的下滑。其實,我感受測試難度並不小。而我每次都是掐着時間,30道題大約40分鐘。因此,此次正確率就比較低了。其實,我感受,並非我沒有努力,只是個人進步沒有其餘人大吧。我也注意到此次測試有滿分的,一樣也有30分鐘之內作完題目的。因此,我以爲應該仔細查找一下本身的失誤在哪裏,畢竟你們學的都是一本教材。另外一方面,因爲四則運算項目的緣由,我並無詳細的預習11章,這是應該避免的。調整好本身的狀態,要能承擔的起生活的壓力。不論是學習,仍是其餘。但願本身可以調整好心態,迎接以後的挑戰。
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 122/122 | 1/1 | 20/20 | |
第二週 | 487/609 | 1/2 | 18/38 | |
第三週 | 482/1091 | 1/3 | 22/60 | |
第四周 | 1357/2448 | 1/4 | 20/80 | |
第五週 | 628/3106 | 1/5 | 20/100 | |
第六週 | 566/3672 | 2/7 | 20/120 | |
第七週 | 934/4606 | 1/8 | 25/145 | |
第八週 | 2407/7013 | 1/9 | 30/175 | |
第九周 | 1504/8517 | 1/10 | 20/195 | |
第十週 | 981/9498 | 1/11 | 18/213 |