1. 程式人生 > >面試題:Java中物件序列化介面(Serializable)的意義

面試題:Java中物件序列化介面(Serializable)的意義

Serializable介面是一個裡面什麼都沒有的介面
它的原始碼是public interface Serializable{},即什麼都沒有。
如果一個接口裡面什麼內容都沒有,那麼這個介面是一個標識介面,比如,一個學生遇到一個問題,排錯排了幾天也沒解決,此時,她舉手了(示意我去幫他解決),然後我過去,幫他解決了,那麼這個舉手其實就是一個標識,自己不能解決的問題標示我去幫他解決,在Java中的這個Serializable介面是給JVM看的,告訴JVM,我不做這個類的序列化了,你(JVM)給我序列化,序列化就是變成二進位制流,比如雲計算、Hadoop,特別是Hadoop完全就是分散式環境,那麼就要涉及到物件要在網路中傳輸,裡面的全是二進位制流,當然你來做這個序列化操作也可以,但是這個類裡面可能還有一個類,如果你把外面的類物件Person變成二進位制,那麼裡面也要序列化(這要用到深度遍歷,很麻煩),乾脆告訴JVM,讓他來幫你做。

相關推薦

試題Java物件序列介面(Serializable)的意義

Serializable介面是一個裡面什麼都沒有的介面 它的原始碼是public interface Serializable{},即什麼都沒有。 如果一個接口裡面什麼內容都沒有,那麼這個介面是一個標識介面,比如,一個學生遇到一個問題,排錯排了幾天也沒解決,此時,她舉手了(示意我去幫他解決),然後我過去,幫他

java實現序列介面意義

1.一個物件有對應的一些屬性,把這個物件儲存在硬碟上的過程叫做”持久化“。 2.物件的預設序列化機制寫入的內容是:物件的類,類簽名,以及非瞬態和非靜態欄位的的值。 3.序列化能把堆記憶體中的物件的宣告週期延長,做持久化操作,當下次再需要這個物件的時候,我們不用new了,直

java試題java的單例設計模式及兩種實現方法的程式碼舉例

java面試時經常會問到關於單例設計模式,因為它能考察的知識點較多且在開發中經常用到。那我就來說一說我對於單例設計模式的一些淺見。首先,在Java中,什麼是單例呢?就是保證類在記憶體中只有一個物件。那麼

有關java物件序列與反序列的亂碼問題

在一開始學習java流操作中的有關物件序列化與非序列化的時候,很多初學者會糾結於寫出的檔案出現亂碼的問題。 以下是有關序列化與反序列化的相關程式碼。 第一步:先建立相關的物件。package day02; import java.io.Serializable; impo

java試題spring的BeanFactory與ApplicationContext的作用和區別?

          2. ApplicationContext除了提供上述BeanFactory所能提供的功能之外,還提供了更完整的框架功能:                  a. 國際化支援                        b. 資源訪問:Resource rs = ctx. getR

Java試題面試遇到的問題總結

面試總結 jQuery中的$是什麼意思及 $. 和 $().的區別 $就是jQuery的別稱 而jQuery就是jQuery庫提供的一個函式.(好像也不僅僅只是函式, 因為還有 $.ajax(options) 這樣的使用,等同 jQuery.ajax(options))

Java執行緒試題(01) Java如何檢查一個執行緒是否擁特定物件的鎖

本文為本博主翻譯,未經允許,嚴禁轉載 簡介 考慮一個場景,在執行時你必須確認一個Java執行緒是否持有特定物件的鎖,例如,確認NewsReader執行緒是否持有NewsPaper物件的鎖?如果這個問題出現在任何核心的Java面試中,那麼我會自動假設可能有至少兩個答案,一個是

java序列和反序列學習筆記

文件 track 反序列化 out val nts 鼠標 main version 須要序列化的Person類: package cn.itcast_07; import java.io.Serializable; /* * NotSerializableE

java序列問題

有序 存儲設備 except 相同 對象引用 程序員 存儲類型 puts 存儲 序列化就是一種用來處理對象流的機制,所謂對象流也就是將對象的內容進行流化,將數據分解成字節流,以便存儲在文件中或在網絡上傳輸。可以對流化後的對象進行讀寫操作,也可將流化後的對象傳輸於網絡之間。序

試題應用很多jar包,比如spring、mybatis、redis等等,各自用的日誌系統各異,怎麼用slf4j統一輸出?

一、問題概述 如題所說,後端應用(非spring boot專案)通常用到了很多jar包,比如spring系列、mybatis、hibernate、各類連線資料庫的客戶端的jar包。可能這個jar包用的是logback、那個用的是log4j、那個又是log4j2, 這時候,怎麼才能保證各jar包的日誌都能輸

試題應用很多jar包,比如spring、mybatis、redis等等,各自用的日誌系統各異,怎麽用slf4j統一輸出?

相同 如何 align 等等 version 試題 ava body jakarta 一、問題概述 如題所說,後端應用(非spring boot項目)通常用到了很多jar包,比如spring系列、mybatis、hibernate、各類連接數據庫的客戶端的jar包。可能這

試題判斷一個物件是不是陣列型別

<script> //判斷一個物件是不是陣列型別 typeof不能檢視所有型別 var obj1={x:1,y:2}, obj2=[1,2,3], obj3=new Date(); //1.判斷爹(原型物件)

Java序列Serialable高階詳解

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

美團試題Java-執行緒池 ThreadPool 專題詳解

去美團面試,問到了什麼是執行緒池,如何使用,為什麼要用,以下做個總結。關於執行緒之前也寫過一篇文章《高階面試題總結—執行緒池還能這麼玩?》 1、什麼是執行緒池:  java.util.concurrent.Executors提供了一個 java.util.conc

java序列

序列化 物件序列化的目標是將物件儲存到磁碟中,或者允許在網路中直接傳輸物件。物件序列化機制允許把記憶體中的JAVA物件轉換成跟平臺無關的二進位制流,從而允許將這種二進位制流持久地儲存在磁碟上,通過網路將這種二進位制流傳輸到另一個網路節點,其他程式一旦獲得了這種二進位制流,都

Java進行序列和反序列

物件序列化的目標是將物件儲存在磁碟中,或者允許在網路中直接傳輸物件。     物件序列化允許把記憶體中的Java物件轉換成平臺無關的二進位制流,從而允許把這種二進位制流持久儲存在磁碟上或者通過網路將這種二進位制流傳輸到另外一個網路節點。     其他程式一旦

java序列與反序列

序列化與反序列化 一 、什麼是序列化與反序列化 把物件轉換為位元組序列的過程稱為物件的序列化。 把位元組序列恢復為物件的過程稱為物件的反序列化 一個物件只要實現了Serilizable介面,這個物件就可以被序列化,java的這種序列化模式為開發者提供了很多便利

試題陣列唯一隻出現一次的數字

在一個數組中除一個數字只出現一次之外,其他數字都出現了三次。請找出那個只出現一次的數字。 思路:我們把陣列中所有數字的二進位制表示的每一位都加起來。如果某一位的和能被3整除,那麼那個只出現一次的數字二進位制表示中對應的那一位是0;否則就是1。 程式碼如下: int Find

C#試題字串字元出現的次數

尋找字串中出現次數最少,位置靠前的字元。 需要引用:using System.Collections.Generic; void FindChar(string str){     //使用字典Dictionary<key,value>來儲存字元,出現次數。

java序列(Serializable)和反序列

由於JDK提供的這種預設的序列化機制是簡單的將物件變成位元組流, 有時候並不滿足我們的要求, 比如考慮到加密, 或者在反序列化完了後需要呼叫某個方法來初始化transient的屬性等等, JDK提供了一種擴充套件的方法來增加對序列化和反序列化的控制. 那就是可以讓序列化的物件實現下面兩個固定的方法(注意修