序列化介面的id有什麼用?—— Java經典面試題系列
物件經常要通過IO進行傳送,讓你寫程式傳遞物件,你會怎麼做?把物件的狀態資料用某種格式寫入到硬碟,Person->“zxx,male,28,30000”àPerson,既然大家都要這麼幹,並且沒有個統一的幹法,於是,sun公司就提出一種統一的解決方案,它會把物件變成某個格式進行輸入和輸出,這種格式對程式設計師來說是透明(transparent)的,但是,我們的某個類要想能被sun的這種方案處理,必須實現Serializable介面。
ObjectOutputStream.writeObject(obj);
Object obj = ObjectInputStream.readObject();
假設兩年前我儲存了某個類的一個物件,這兩年來,我修改該類,刪除了某個屬性和增加了另外一個屬性,兩年後,我又去讀取那個儲存的物件,或有什麼結果?未知!sun的jdk就會蒙了。為此,一個解決辦法就是在類中增加版本後,每一次類的屬性修改,都應該把版本號升級一下,這樣,在讀取時,比較儲存物件時的版本號與當前類的版本號,如果不一致,則直接報版本號不同的錯!
相關推薦
序列化介面的id有什麼用?—— Java經典面試題系列
我: 物件經常要通過IO進行傳送,讓你寫程式傳遞物件,你會怎麼做?把物件的狀態資料用某種格式寫入到硬碟,Person->“zxx,male,28,30000”àPerson,既然大家都要這麼幹,並且沒有個統一的幹法,於是,sun公司就提出一種統一的解決方案,它會把物件變成某個格式進行輸入和輸出,這種格式
免費視頻教程:java經典面試題深度解析
免費視頻教程:java經典面試題深度解析 對於很多初學者來說,學好java在後期面試的階段都沒什麽經驗,為了讓大家更好的了解面試相關知識,今天在這裏給大家分享了一個java經典面試題深度解析的免費視頻教程,需要的朋友可以看看,作為參考! 課程簡介:精選多年來名企在各地的Jav
java經典面試題深度解析免費視頻教程分享
java經典面試題深度解析免費視頻教程分享 對於很多初學者來說,學好java在後期面試的階段都沒什麽經驗,為了讓大家更好的了解面試相關知識,今天在這裏給大家分享了一個java經典面試題深度解析的免費視頻教程,需要的朋友可以看看,作為參考! 課程簡介:精選多年來名企在各地的Java
java經典面試題---2----->Spring框架的相關介紹
原來 配置 主動 效果好 xml配置 優點 持久層 關系 文件 Spring是一個開源輕量級的框架,它的核心是控制反轉(IOC)和面向切面編程(AOP)。 作為業務層框架的spring能夠很好地整合表現層跟持久層。 IOC:將類的創建和依賴關系寫到配置文件裏,可以讓一個
java經典面試題總結(一)
Java經典面試題總結繼續更新,有需要的小夥伴可以路過不要錯過了!看上一篇面試題總結的反響還是很不錯的,就繼續更新了,也非常感謝各位小夥伴的持續關注…… 這次更偏基礎一些! 1、String 和StringBuffer 的區別? 答:JAVA 平臺提供了兩個類:String 和StringBuffer,
java經典面試題總結(二)
上一次更新的java面試題,很多小夥伴反應很簡單,其實上一期更新的就是更偏基礎的面試題,但這並不意味著,面試就這麼簡單,在java的學習中,有從Java基礎、框架、設計模式等等都是重點學習的點。在本文的面試題分享中,我們循序漸進,儘量挑一些重點的內容來分享! 1、當一個物件被當作引數傳遞到一個方法後,此方法
Java經典面試題總結(三)
本期的java面試題是偏向資料庫方面的,對相關技術知識匱乏的,或者對這方面不大自信的同學,面試之前可以參考一下這套題,這只是節選,試運營一下,如果不能滿足你們的需求,可以直接評論留言! 1、檢視的優缺點答:優點: 1)對資料庫的訪問,因為檢視可以有選擇性的選取資料庫裡的一部分。 2 )使用者通過簡單的查詢可
java經典面試題:單鏈表反轉問題詳解(含遞迴法)
java經典面試題:單鏈表反轉問題,有兩種方法,一種為迴圈遍歷法,一種遞迴法。 1、迴圈遍歷法 首先設定三個節點,把當前節點的下一節點指向它前面的節點,此時你會發現指標鏈會斷,所以要先把它後面一個節點用nextNode儲存下來,之後把節點向後移動遍歷即可。 程式碼如下: //
MongoDB與Java 經典面試題、課程,好資源值得收藏
如何學習好Java、Spring Boot、如果學習好MongoDB?如何拿高薪?阿里巴巴雲棲社群整理了MongoDB與Java 經典面試題、課程,好資源值得收藏,陸續更新中。 【MongoDB面試題】[@徐雷frank]MongoDB如果有效應對單節點故障? https://yq.aliyun.com
Java經典面試題總結(六)
本次的面試題:多執行緒知識的面試解答題。 1. 有T1、T2、T3三個執行緒,如何怎樣保證T2在T1執行完後執行,T3在T2執行完後執行? 答:使用join方法。 join方法的功能是使非同步執行的執行緒變成同步執行。即呼叫執行緒例項的start方法後,該方法會立即返回,如果呼叫start方法後
100道Java經典面試題及答案解析
作用域public,private,protected,以及不寫時的區別 答:區別如下: 作用域 當前類 同一package 子孫類 其他package public √ √ √ √ protected √ √ √ × friendly √ √ ×
java經典面試題(1)
1、 面向物件的特徵有哪些方面 1.抽象: 抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。
Java經典面試題(N人迴圈報M個數出列)實現
面試題: 設有N個人依次圍成一圈,從第1個人開始報數,第M個人出列,然後從出列的下一個人開始報數,數到第M個人又出列,...,如此反覆到所有的人全部出列為止,設N個人的編號分別為1,2,...,N,打印出出列的順序,要求用java實現。 參考程式碼: package
java經典面試題
Java基礎方面:0、作用域public,private,protected,以及不寫時的區別答:區別如下:作用域 當前類 同一package 子孫類 其他packagepublic √ √ √ √protected √ √ √ ×friendly √ √ × ×private √ × × ×不寫時預設為f
JAVA經典面試題(二)--如何體現JavaScript的繼承關係?
js裡常用的如下兩種繼承方式: 原型鏈繼承(物件間的繼承) 類式繼承(建構函式間的繼承) 由於js不像java那樣是真正面向物件的語言,js是基於物件的,它沒有類的概念。所以,要想實現繼承,可以用js的原型prototype機制或者用apply和call方
JAVA經典面試題(一)-- 判斷以及防止SQL注入
SQL注入是目前黑客最常用的攻擊手段,它的原理是利用資料庫對特殊識別符號的解析強行從頁面向後臺傳入。改變SQL語句結構,達到擴充套件許可權、建立高等級使用者、強行修改使用者資料等等操作。 那怎麼判斷是否被SQL注入了呢? 通過SQL注入的原理我們知道,判斷S
2019年19道java經典面試題(附答案)
可變對象 caption 反射 進制 不可 tostring 靈活性 clear 散列表 1.不可變對象 指對象一旦被創建狀態不能再改變。任何修改都會創建一個新的對象,如 String、Integer及其它包裝類。 2.能否創建一個包含可變對象的不可變
Java 經典面試題:聊一聊 JUC 下的 CopyOnWriteArrayList
ArrayList 是我們常用的工具類之一,但是在多執行緒的情況下,ArrayList 作為共享變數時,並不是執行緒安全的。主要有以下兩個原因: - 1、 ArrayList 自身的 elementData、size、modCount 在進行操作的時候,都沒有加鎖; - 2、這些變數沒有被 volatil
Java 經典面試題:聊一聊 JUC 下的 LinkedBlockingQueue
本文聊一下 JUC 下的 LinkedBlockingQueue 佇列,先說說 LinkedBlockingQueue 佇列的特點,然後再從原始碼的角度聊一聊 LinkedBlockingQueue 的主要實現~ LinkedBlockingQueue 有以下特點: - **LinkedBlockingQu
JAVA筆試面試題系列之----①多執行緒
1. 程序和執行緒: 程序:正在進行的程式。每一個程序執行都有一個執行順序,該順序是一個執行路徑,或者叫一個控制單元。 執行緒:程序內部的一條執行路徑或者一個控制單元。 兩者的區別: 一個程序至少有一個執行緒 程序在執行過程中擁有獨立的記憶體單元,而多個執行緒共享