首页
/
每日頭條
/
職場
/
面試需要問面試官些什麼問題
面試需要問面試官些什麼問題
更新时间:2025-12-11 15:39:48
一、拷貝的引入(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
推荐阅读
夢見自己工作很忙碌周公解夢(夢見自己在工作)
夢見自己工作很忙碌周公解夢(夢見自己在工作)
  工作在現實生活中是很平常的事情,而在做夢中卻有着不一樣的寓意,有時候是帶來好運的征兆,但是有時候是提醒你應該注意一些意外的征兆,到底該怎麼判斷呢,一起了解一下解夢說裡面對于做夢夢見工作的說法吧。  上班族夢見自己工作,說明你最近工作壓力可能比較大,而且總是不順利,要麼和同事發生争吵,要麼做的事情不如老闆的意,這可就是你自身的問題了,如果再不好好反省,恐怕...
2025-12-11
丈夫徹夜不歸妻子不聞不問(妻子抱怨丈夫不與自己同房)
丈夫徹夜不歸妻子不聞不問(妻子抱怨丈夫不與自己同房)
  導語:妻子抱怨丈夫不與自己同房,總是找借口加班,丈夫卻有難言   夫妻之間和諧、美好、幸福的生活,需要彼此努力的付出,也許要相互的關愛、支持,理解和信任,婚姻并不是愛情的墳墓,但是否能夠經營好,卻很大程度決定定了婚姻的保鮮期。      有這樣一對夫妻因為感情糾紛來到《愛情保衛戰》的舞蹈上,由于他們和其他家庭不一樣,讓很多人這對夫妻生活産生了很大的感慨,...
2025-12-11
好的職場遊戲(一場遊戲一場夢)
好的職場遊戲(一場遊戲一場夢)
  ——人生的底色是悲涼的——   之前一直打算認認真真寫一篇關于職場的勾心鬥角之事,以飨讀者,結果總是忙前忙後抽不開時間去創作,當然我指的創作不是胡編亂造,是真實發生在我身上的事情,感覺自己在職場上也摸爬滾打十餘年了,寫這些是足夠有信服力,再加上自己的文字功底不賴,自然就是信手拈來的事情。   好希望頭條能開通個語音輸入功能,這樣就避免了一個字一個字去打,...
2025-12-11
總裁喜歡上照顧女護士(美女好心為總裁工作)
總裁喜歡上照顧女護士(美女好心為總裁工作)
        顧策出差了,臨走前挑了一把車鑰匙給喬依讓她自己開車上下班,喬依接過來,回頭就擱置在抽屜裡。   賀雅這種年紀的小姑娘最喜歡拉小團體,拜她所賜,現在公司不喜歡喬依的人真不少,不過都是些小姑娘罷了,喬依并沒有放在心上,隻專心做好自己的事。   顧策的車都是百萬級别的,若是喬依真開去公司,指不定又要被怎麼議論,喬依不想惹這些麻煩。   周六晚上,喬...
2025-12-11
職場小白聽不懂領導說什麼(你聽領導說過最無恥的話是什麼)
職場小白聽不懂領導說什麼(你聽領導說過最無恥的話是什麼)
  我相信隻要大家隻要不是初入職場,一看到這個問題,就能瞬間想起什麼來。因為在公司裡,最能扯的也就是我們的領導或是老闆了,這個說實話,他要是不是扯,還怎麼當得了領導呢?      話又說回來,領導也是好的多吧,不過隻要我們身在職場,總會有運氣不好的時候,難免也會碰到一些奇葩的領導。說話前不經過大腦,想到什麼說什麼,言者無意,聽者有心,有些話讓我們下屬聽了就會...
2025-12-11
Copyright 2023-2025 - www.tftnews.com All Rights Reserved