首页
/
每日頭條
/
職場
/
面試需要問面試官些什麼問題
面試需要問面試官些什麼問題
更新时间:2026-02-24 20:42:57
一、拷貝的引入(1)、引用拷貝

創建一個指向對象的引用變量的拷貝。

Teacherteacher=newTeacher("Taylor",26); Teacherotherteacher=teacher; System.out.println(teacher); System.out.println(otherteacher);

輸出結果:

blog.Teacher@355da254 blog.Teacher@355da254

結果分析:由輸出結果可以看出,它們的地址值是相同的,那麼它們肯定是同一個對象。teacher和otherteacher的隻是引用而已,他們都指向了一個相同的對象Teacher(“Taylor”,26)。這就叫做引用拷貝。往期:一百期面試題彙總

面試需要問面試官些什麼問題(面試官問點兒基礎的)1

(2)、對象拷貝

創建對象本身的一個副本。

Teacherteacher=newTeacher("Swift",26); Teacherotherteacher=(Teacher)teacher.clone(); System.out.println(teacher); System.out.println(otherteacher);

輸出結果:

blog.Teacher@355da254 blog.Teacher@4dc63996

結果分析:由輸出結果可以看出,它們的地址是不同的,也就是說創建了新的對象, 而不是把原對象的地址賦給了一個新的引用變量,這就叫做對象拷貝。

面試需要問面試官些什麼問題(面試官問點兒基礎的)2

注:深拷貝和淺拷貝都是對象拷貝

二、淺拷貝(1)、定義

被複制對象的所有變量都含有與原來的對象相同的值,而所有的對其他對象的引用仍然指向原來的對象。即對象的淺拷貝會對“主”對象進行拷貝,但不會複制主對象裡面的對象。”裡面的對象“會在原來的對象和它的副本之間共享。往期:100期面試題彙總

簡而言之,淺拷貝僅僅複制所考慮的對象,而不複制它所引用的對象

(2)、淺拷貝實例

packagecom.test; publicclassShallowCopy{ publicstaticvoidmain(String[]args)throwsCloneNotSupportedException{ Teacherteacher=newTeacher(); teacher.setName("riemann"); teacher.setAge(27); Student2student1=newStudent2(); student1.setName("edgar"); student1.setAge(18); student1.setTeacher(teacher); Student2student2=(Student2)student1.clone(); System.out.println("拷貝後"); System.out.println(student2.getName()); System.out.println(student2.getAge()); System.out.println(student2.getTeacher().getName()); System.out.println(student2.getTeacher().getAge()); System.out.println("修改老師的信息後-------------"); //修改老師的信息 teacher.setName("Games"); System.out.println(student1.getTeacher().getName()); System.out.println(student2.getTeacher().getName()); } } classTeacherimplementsCloneable{ privateStringname; privateintage; publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicintgetAge(){ returnage; } publicvoidsetAge(intage){ this.age=age; } } classStudent2implementsCloneable{ privateStringname; privateintage; privateTeacherteacher; publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicintgetAge(){ returnage; } publicvoidsetAge(intage){ this.age=age; } publicTeachergetTeacher(){ returnteacher; } publicvoidsetTeacher(Teacherteacher){ this.teacher=teacher; } publicobjectclone()throwsCloneNotSupportedException{ Objectobject=super.clone(); returnobject; } }

輸出結果:

拷貝後 edgar 18 riemann 27 修改老師的信息後------------- Games Games

結果分析:兩個引用student1和student2指向不同的兩個對象,但是兩個引用student1和student2中的兩個teacher引用指向的是同一個對象,所以說明是淺拷貝。

面試需要問面試官些什麼問題(面試官問點兒基礎的)3

三、深拷貝(1)、定義

深拷貝是一個整個獨立的對象拷貝,深拷貝會拷貝所有的屬性,并拷貝屬性指向的動态分配的内存。當對象和它所引用的對象一起拷貝時即發生深拷貝。深拷貝相比于淺拷貝速度較慢并且花銷較大。

簡而言之,深拷貝把要複制的對象所引用的對象都複制了一遍。

往期:100期面試題彙總

(2)、深拷貝實例

packagecom.test; publicclassDeepCopy{ publicstaticvoidmain(String[]args)throwsCloneNotSupportedException{ Teacher2teacher=newTeacher2(); teacher.setName("riemann"); teacher.setAge(27); Student3student1=newStudent3(); student1.setName("edgar"); student1.setAge(18); student1.setTeacher(teacher); student3student2=(Student3)student1.clone(); System.out.println("拷貝後"); System.out.println(student2.getName()); System.out.println(student2.getAge()); System.out.println(student2.getTeacher().getName()); System.out.println(student2.getTeacher().getAge()); System.out.println("修改老師的信息後-------------"); //修改老師的信息 teacher.setName("Games"); System.out.println(student1.getTeacher().getName()); System.out.println(student2.getTeacher().getName()); } } classTeacher2implementsCloneable{ privateStringname; privateintage; publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicintgetAge(){ returnage; } publicvoidsetAge(intage){ this.age=age; } publicObjectclone()throwsCloneNotSupportedException{ returnsuper.clone(); } } classStudent3implementsCloneable{ privateStringname; privateintage; privateTeacher2teacher; publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicintgetAge(){ returnage; } publicvoidsetAge(intage){ this.age=age; } publicTeacher2getTeacher(){ returnteacher; } publicvoidsetTeacher(Teacher2teacher){ this.teacher=teacher; } publicObjectclone()throwsCloneNotSupportedException{ //淺複制時: //Objectobject=super.clone(); //returnobject; //改為深複制: Student3student=(Student3)super.clone(); //本來是淺複制,現在将Teacher對象複制一份并重新set進來 student.setTeacher((Teacher2)student.getTeacher().clone()); returnstudent; } }

輸出結果:

拷貝後 edgar 18 riemann 27 修改老師的信息後------------- Games riemann

結果分析:

兩個引用student1和student2指向不同的兩個對象,兩個引用student1和student2中的兩個teacher引用指向的是兩個對象,但對teacher對象的修改隻能影響student1對象,所以說是深拷貝。

面試需要問面試官些什麼問題(面試官問點兒基礎的)4

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
禁毒示範學校鞏固材料(毒品預防教育示範校)
禁毒示範學校鞏固材料(毒品預防教育示範校)
     健康人生 綠色無毒   ——XX學校創建“毒品預防教育示範校”工作彙報   自從上級部門倡導開展“毒品預防教育工作”以來,我校始終以學生發展為根本,紮實開展毒品預防教育,做到全校學生接受禁毒知識教育面達100%,開展禁毒宣傳教育面達100%。   我們一直都把毒品預防教育作為學校安全工作、德育和法制教育工作的一項重要内容來抓,圍繞“遠離毒品珍愛生命...
2026-02-24
園區孵化器招商崗位能做嗎(如何做好園區招商工作)
園區孵化器招商崗位能做嗎(如何做好園區招商工作)
     園區招商就是一場企業資源的争奪戰,決定這場戰争勝負的因素很多,其中,招商人員在招商引資工作中起着關鍵的作用,其能力和素質的高低對于園區招商成功與否至關重要。那麼,園區招商人員要如何做好園區招商工作呢?   1、具有敏銳的信息捕捉嗅覺   招商的第一步,就是獲取招商信息,所以,捕捉項目信息至關重要,其次,還要學會對獲取來的信息進行分類和篩選,做到憑感...
2026-02-24
爐石傳說牧師拿什麼職業好打(還記得牧師英雄傳嗎)
爐石傳說牧師拿什麼職業好打(還記得牧師英雄傳嗎)
  本文由17173爐石傳說專區特約作者[生命的火花]原創提供,未經許可禁止轉載   新版本安戈洛上線已久,各職業出場率和勝率幾度沉浮後現在已經趨于穩定,除了術士第一次成為隐藏職業外,并沒有出現其他明顯強勢的職業。回想起以往的版本,卻常常出現一家獨大的局面,可能那時候并不能稱之為爐石傳說,換一個名字更好一些。   1、上古時代——牧師傳說,北郡英雄傳    ...
2026-02-24
萬茜劉敏濤 女士的品格(劉敏濤女士的品格)
萬茜劉敏濤 女士的品格(劉敏濤女士的品格)
  又一部女性職場劇開播了   這部《女士的品格》   和之前那部《女士的法則》   不知道有沒有什麼關系   感覺可以湊個女士三部曲之類的了         畢竟流水的女主   鐵打的劉敏濤嘛         劇中主要講述了三位女士所面臨的職場困境   萬茜飾演的女主姚薇   是一名商務總監   看似風光   但背後是一片刀光劍影      要想在公司立足...
2026-02-24
為什麼說建築師是個新鮮的職業(建築師是一個令人絕望的職業嗎)
為什麼說建築師是個新鮮的職業(建築師是一個令人絕望的職業嗎)
  當然不是。   下面是一個真實的故事      20年前的一個午夜,建築系館燈火通明,那是《新建築》住宅設計競賽的截稿前夜,專教裡彌漫着緊張的趕圖氣氛。   忽然,角落裡傳來了一片歡聲笑語,是四位一年級學生——小衛、小何、小羅、小多(姑且這麼叫他們)。他們終于完成了合作作品,互相慶賀着。當時,已經是淩晨2點。   “太好了,居然沒用整晚搭這個模型。”  ...
2026-02-24
Copyright 2023-2026 - www.tftnews.com All Rights Reserved