java基礎(chǔ)實體類和序列化的通俗講解

對java實體類的眾多理解:

A .就是屬性類阶冈,通常定義在model層里面

B. 一般的實體類對應(yīng)一個數(shù)據(jù)表,其中的屬性對應(yīng)數(shù)據(jù)表中的字段。
好處:
1.對對象實體的封裝儡湾,體現(xiàn)OO思想。
2.屬性可以對字段定義和狀態(tài)進(jìn)行判斷和過濾
3.把相關(guān)信息用一個實體類封裝后执俩,我們在程序中可以把實體類作為參數(shù)傳遞徐钠,更加方便。

C. 說白了就是為了讓程序員在對數(shù)據(jù)庫操作的時候不用寫SQL語句

D. 就是一個數(shù)據(jù)庫表生成一個類
這樣做對數(shù)據(jù)庫操作起來方便
編寫代碼較少 提高效率 可以使程序員專注邏輯關(guān)系

E. 實體類就是把對某一個表的操作全寫在一個類中.

F. 在Java開發(fā)中經(jīng)常要定義一些實體類役首,這些類的定義的好壞會直接影響尝丐,編寫代碼的質(zhì)量和難易程度,以下是別人總結(jié)的一些經(jīng)驗衡奥。

一爹袁、實體類的名字盡量和數(shù)據(jù)庫的表的名字對應(yīng)相同。

二矮固、實體類應(yīng)該實現(xiàn)java.io.Serializable接口失息。

三、實體類應(yīng)該有個無參的構(gòu)造方法档址。

四盹兢、實體類應(yīng)該有個有參(所有的參數(shù))的構(gòu)造方法。

五守伸、實體類有屬性和方法绎秒,屬性對應(yīng)數(shù)據(jù)庫中表的字段,主要有g(shù)etter和setter方法尼摹。

六见芹、實體類還應(yīng)該有個屬性serialVersionUID。例如:private static final long serialVersionUID = -6125297654796395674L;

七蠢涝、屬性一般是private類型玄呛,方法位public類型,對于數(shù)據(jù)庫自動生成的ID字段對應(yīng)的屬性的set方法應(yīng)為private和二。

G. 實體類中都是實例對象,實例對象在jvm的堆區(qū)中開辟了一個該對象引用空間徘铝,并且讓該引用指向某個實例,類聲明只是在jvm的棧去中開辟了一個該對象引用,沒有讓該引用做任何指向.

例如 :
1.String str;
2.String str = new String ("dgfgg");
1中的只是一個引用,說明str應(yīng)該指向一個String 類型的實例,但還沒對str和堆區(qū)的實例做具體的指向.也就是說它還沒有指向某個實例.
而2中的即定義了一個引用(str)又對str做了具體的指向,它指向的內(nèi)容就是后面new出來的String 實例.

實體類中的構(gòu)造方法+set方法+get方法:
構(gòu)造函數(shù):初始化成員變量

get,set方法儿咱,獲取和改變成員變量的值庭砍,JavaBean規(guī)范規(guī)定只使用get/set訪問成員變量

構(gòu)造函數(shù):你每次寫一個Java文件,實際上都寫了一個類(創(chuàng)建一個類混埠,jvm就會自動為這個類開辟一塊內(nèi)存空間)怠缸。有了類就需要有類對象,要產(chǎn)生類對象就需要構(gòu)造函數(shù)對這個剛剛申請的內(nèi)存空間做一點事钳宪,賦屬性值之類的工作揭北。當(dāng)然扳炬,如果你不寫,它就默認(rèn)有一個Class(){}的構(gòu)造方法出現(xiàn)搔体,當(dāng)然它什么活也不干恨樟。

你的屬性是什么樣的?public?private疚俱?默認(rèn)劝术?還是protected?這四種你找教材務(wù)必弄懂分清,很有用呆奕。如果是private养晋,這種屬性不許別的對象改和讀,但有時候需要改/讀梁钾,怎么辦绳泉?寫一個public void setAbc(xxx){}和一個public xxx getAbc(){}就實現(xiàn)外部讀寫屬性的功能了。

set 姆泻,get完全是自我規(guī)定的零酪,就是設(shè)置初值和獲得值的意思.你也可以修改成其他字符.但是用set ,get還是要好些拇勃,因為你能通過單詞理解你寫的代碼的意思四苇,方便閱讀而已。

總結(jié):實體是就是Java中的O/R Mapping映射潜秋,即數(shù)據(jù)庫中的一個表映射成對應(yīng)的一個Java類,其中還有一個映射文件蛔琅。給定一個較復(fù)雜的實體關(guān)系(如一對一,一對多峻呛,多對多),應(yīng)該熟練地寫出實體類!!

java 實體類其實就是俗稱的POJO,這種類一般不實現(xiàn)特殊框架下的接口,在程序中僅作為數(shù)據(jù)容器用來持久化存儲數(shù)據(jù)用的辜窑。

POJO(PlainOldJavaObjects)簡單的Java對象

它的一般格式就是

publicclassA{

privateStringid;

publicStringgetId{

returnthis.id;

}

publicvoidsetId(Stringid){

this.id=id;

}

}

其實這樣寫的意義就在于封裝钩述,id作為類A的成員變量,也稱屬性穆碎,一般情況下?lián)碛凶x和寫的能力牙勘,我們將id設(shè)為private,則外部無法對其直接進(jìn)行操作所禀,同時通過set方法提供了外部更改其value的方法方面,又通過get方法使外界能讀取該成員變量的值。

序列化的必要性

Java中色徘,一切都是對象恭金,在分布式環(huán)境中經(jīng)常需要將Object從這一端網(wǎng)絡(luò)或設(shè)備傳遞到另一端。這就需要有一種可以在兩端傳輸數(shù)據(jù)的協(xié)議褂策。Java序列化機(jī)制就是為了解決這個問題而產(chǎn)生横腿。

Java對象序列化不僅保留一個對象的數(shù)據(jù)颓屑,而且遞歸保存對象引用的每個對象的數(shù)據(jù)。

Java串行化技術(shù)可以使你將一個對象的狀態(tài)寫入一個Byte流里耿焊,并且可以從其它地方把該Byte流里的數(shù)據(jù)讀出來揪惦,重新構(gòu)造一個相同的對象。這種機(jī)制允許你將對象通過網(wǎng)絡(luò)進(jìn)行傳播罗侯,并可以隨時把對象持久化到數(shù)據(jù)庫器腋、文件等系統(tǒng)里。Java的串行化機(jī)制是RMI钩杰、EJB等技術(shù)的技術(shù)基礎(chǔ)纫塌。用途:利用對象的串行化實現(xiàn)保存應(yīng)用程序的當(dāng)前工作狀態(tài),下次再啟動的時候?qū)⒆詣拥鼗謴?fù)到上次執(zhí)行的狀態(tài)榜苫。

序列化就是一種用來處理對象流的機(jī)制护戳,所謂對象流也就是將對象的內(nèi)容進(jìn)行流化〈共牵可以對流化后的對象進(jìn)行讀寫操作媳荒,也可將流化后的對象傳輸于網(wǎng)絡(luò)之間。序列化是為了解決在對對象流進(jìn)行讀寫操作時所引發(fā)的問題驹饺。

對于一個存在于Java虛擬機(jī)中的對象來說钳枕,其內(nèi)部的狀態(tài)只保持在內(nèi)存中。JVM停止之后赏壹,這些狀態(tài)就丟失了鱼炒。在很多情況下,對象的內(nèi)部狀態(tài)是需要被持久化下來的蝌借。提到持久化昔瞧,最直接的做法是保存到文件系統(tǒng)或是數(shù)據(jù)庫之中。這種做法一般涉及到自定義存儲格式以及繁瑣的數(shù)據(jù)轉(zhuǎn)換菩佑。對象關(guān)系映射(Object-relationalmapping)是一種典型的用關(guān)系數(shù)據(jù)庫來持久化對象的方式自晰,也存在很多直接存儲對象的對象數(shù)據(jù)庫。對象序列化機(jī)制(objectserialization)是Java語言內(nèi)建的一種對象持久化方式稍坯,可以很容易的在JVM中的活動對象和字節(jié)數(shù)組(流)之間進(jìn)行轉(zhuǎn)換酬荞。除了可以很簡單的實現(xiàn)持久化之外,序列化機(jī)制的另外一個重要用途是在遠(yuǎn)程方法調(diào)用中瞧哟,用來對開發(fā)人員屏蔽底層實現(xiàn)細(xì)節(jié)混巧。
序列化參考文檔:https://www.cnblogs.com/kabi/p/9139228.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市勤揩,隨后出現(xiàn)的幾起案子咧党,更是在濱河造成了極大的恐慌,老刑警劉巖雄可,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凿傅,死亡現(xiàn)場離奇詭異缠犀,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)聪舒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進(jìn)店門辨液,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人箱残,你說我怎么就攤上這事滔迈。” “怎么了被辑?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵燎悍,是天一觀的道長。 經(jīng)常有香客問我盼理,道長谈山,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任宏怔,我火速辦了婚禮奏路,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘臊诊。我一直安慰自己鸽粉,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布抓艳。 她就那樣靜靜地躺著触机,像睡著了一般。 火紅的嫁衣襯著肌膚如雪玷或。 梳的紋絲不亂的頭發(fā)上儡首,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天,我揣著相機(jī)與錄音偏友,去河邊找鬼椒舵。 笑死,一個胖子當(dāng)著我的面吹牛约谈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播犁钟,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼棱诱,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了涝动?” 一聲冷哼從身側(cè)響起迈勋,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎醋粟,沒想到半個月后靡菇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體重归,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年厦凤,在試婚紗的時候發(fā)現(xiàn)自己被綠了鼻吮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡较鼓,死狀恐怖椎木,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情博烂,我是刑警寧澤香椎,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站禽篱,受9級特大地震影響畜伐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜躺率,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一玛界、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧肥照,春花似錦脚仔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至吕朵,卻和暖如春猎醇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背努溃。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工硫嘶, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人梧税。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓沦疾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內(nèi)容

  • JAVA序列化機(jī)制的深入研究 對象序列化的最主要的用處就是在傳遞,和保存對象(object)的時候,保證對象的完整...
    時待吾閱讀 10,872評論 0 24
  • 1.import static是Java 5增加的功能,就是將Import類中的靜態(tài)方法算行,可以作為本類的靜態(tài)方法來...
    XLsn0w閱讀 1,235評論 0 2
  • 面向?qū)ο笾饕槍γ嫦蜻^程雾家。 面向過程的基本單元是函數(shù)。 什么是對象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,059評論 0 4
  • 一、 序列化和反序列化概念 Serialization(序列化)是一種將對象以一連串的字節(jié)描述的過程;反序列化de...
    步積閱讀 1,444評論 0 10
  • 在熱更新方案里面婚夫,阿里巴巴的AndFix因為”立即生效”這樣的特性顯得非常的出眾家凯,但是兼容性一直是它的硬傷缓醋,看到A...
    紅心地瓜閱讀 573評論 0 0