Java面试通关秘籍- Java_Useful_8股文_Guide ผู้ที่เห็นถูกกำหนดให้ถูกกำหนดให้ถูกกำหนดให้ถูกกำหนดให้ถูกกำหนดให้ถูกกำหนดให้ถูกกำหนดให้ถูกกำหนดให้ถูกกำหนดให้ถูกกำหนดให้ถูกกำหนดให้ถูกกำหนดให้ถูกกำหนดให้ถูกกำหนดให้ถูกกำหนดให้ถูกกำหนด JavaU8G เป็น Java_Useful_8股_Guide
โครงการนี้
Java_Useful_8股文_Guideมุ่งมั่นที่จะสร้างJava技术与面试指南微服务中间件OSJVM优化สาขาที่หลากหลายตั้งแต่算法Java面试JavaMySQLจนถึง并发编程ใช้งานJavaSESpring全家桶งานได้จริง设计模式
เว็บไซต์ฐานความรู้ของเรามีการบูรณา การฟังก์ชั่นเครื่องเล่นเพลง ที่ไม่เหมือนใคร ทำให้ผู้เรียนสามารถมุ่งเน้นและเป็นหลักของจุดความรู้ Java ภายในเวลาของเพลง รูปแบบการเรียนรู้ที่เป็นนวัตกรรมนี้มีจุดมุ่งหมายเพื่อปรับปรุงประสิทธิภาพการเรียนรู้และความสนุกสนานช่วยให้คุณเข้าใจแนวคิดที่สำคัญของสแต็คเทคโนโลยี Java ในทำนองที่ผ่อนคลาย เริ่มต้นการเดินทางที่มีประสิทธิภาพของ "
听歌学Java"ในขณะที่อ่านเนื้อหาโดยละเอียดของ **
Java_Useful_8股文_Guideมันรวมความรู้เชิงทฤษฎีเข้ากับการฝึกฝนเพื่อให้ได้ประสบการณ์การเรียนรู้ที่ครอบคลุมและหลากหลายทางประสาทสัมผัส ไม่ว่าคุณจะทบทวนพื้นฐานของ Java หรือศึกษารายละเอียดที่ซับซ้อนของการปรับจูน JVM มีเพลงที่เลือกสรรมาเพื่อติดตามเส้นทางการเรียนรู้ของคุณ นักพัฒนาสามารถเข้าร่วมอย่างแข็งขันและมีส่วนร่วมในวิธีการเรียนรู้ใหม่นี้เพื่อร่วมกันสร้างJava面试ที่สดใสและ ใช้งานได้จริง และ ทรัพยากร技术提升!
JavaSE : อธิบายแนวคิดพื้นฐานและคุณสมบัติขั้นสูงของภาษา Java ในลักษณะที่เข้าใจง่ายJUC : รวมรหัสอินสแตนซ์และการวิเคราะห์ที่เกิดขึ้นพร้อมกันจำนวนมากเพื่อช่วยให้คุณมีทักษะการพัฒนาแบบมัลติเธรดมัลติเธรดJVM : ให้คำแนะนำโดยละเอียดเกี่ยวกับหลักการ JVM และกรณีการปรับแต่งที่ใช้งานได้จริงเพื่อช่วยให้คุณเป็นผู้เชี่ยวชาญด้านการปรับแต่ง JVMDesignPatterns : สรุปรูปแบบการออกแบบทั่วไปและสถานการณ์แอปพลิเคชันเพื่อปรับปรุงความสามารถในการออกแบบซอฟต์แวร์ของคุณSpringFrames : การตีความที่ครอบคลุมของส่วนประกอบของตระกูล Spring และการใช้การต่อสู้ที่แท้จริงของพวกเขาเพื่อเพิ่มความสามารถในการแข่งขันของคุณในการพัฒนาระดับองค์กรJavaInterview : สรุปการวิเคราะห์และการอภิปรายของคำถามสัมภาษณ์ Java ต่างๆเพื่อปกป้องคุณจากการสัมภาษณ์ Gitee (ความเร็วเร็ว)Github (คอลเลกชันเสริม) เพื่อให้เนื้อหาที่มีคุณภาพสูงอย่างต่อเนื่องโครงการนี้จะยืนยันในการอัปเดตเป็นประจำทุกวันหรือรายสัปดาห์เพื่อให้ทันกับเทคโนโลยี Java ล่าสุดและแนวโน้มการสัมภาษณ์ในเวลาที่เหมาะสม เราขอเชิญสมาชิกชุมชนอย่างจริงใจให้เข้าร่วมในการบริจาคและแบ่งปันความรู้และประสบการณ์ของคุณผ่าน Pull Request (PR)
นักพัฒนาสามารถติดตามโครงการนี้เช่น Star เพื่อแสดงการสนับสนุนและมีส่วนร่วมอย่างแข็งขันในการอภิปรายและการสร้างร่วม ให้เราทำงานร่วมกันเพื่อสร้างสมุดความรู้ที่มีคุณภาพสูงและได้รับการปรับปรุงอย่างต่อเนื่องสำหรับชุมชนนักพัฒนา Java !
จะเข้าร่วมได้อย่างไร? คลิกปุ่ม Star ที่มุมขวาบนเพื่อติดตามความคืบหน้าของโครงการ คัดลอกโครงการไปยังบัญชี GitHub ของคุณผ่านฟังก์ชั่น Fork แก้ไขเนื้อหาและเริ่ม Pull Request ถามคำถามข้อเสนอแนะหรือแบ่งปันคำถามสัมภาษณ์ใหม่และการวิเคราะห์ใน Issues
เลือกโฟลเดอร์บนคอมพิวเตอร์ท้องถิ่นและโคลนเนื้อหาที่เก็บลงในโฟลเดอร์
# 本处使用 ssh 协议,如未配置,需要先配置本地密钥到GitHub
# 参考链接:https://blog.csdn.net/W_317/article/details/106518894
$ git clone [email protected]:WL2O2O/JavaU8G.gitโพสต์หรืออัปเดตบทความ
SUMMARY.md ในโฟลเดอร์ src และเพิ่มดัชนีบันทึกไปยังตำแหน่งที่สอดคล้องกันREADME.md ในโฟลเดอร์ src และเพิ่มระเบียน TimeLine ที่ตำแหน่งที่สอดคล้องกันไฟล์ติดตามที่เก็บในท้องถิ่น
$ git add . ส่งรหัสไปยังพื้นที่เก็บข้อมูลท้องถิ่น
$ git commit -m "你的提交信息" พุชรหัสไปยังที่เก็บความร่วมมือจากระยะไกล GitHub
$ git push origin master รอให้ CI / CD อัปเดตโดยอัตโนมัติประมาณสามนาที
ไดเรกทอรีรากของคลังสินค้านี้ให้สคริปต์พร้อมคลิกเดียวและอัปโหลดคลิกเดียว เนื่องจากการทำงานร่วมกันแบบหลายคนสะดวกสบายและไม่ได้ตั้งค่าโครงสร้างหลายสาขาสำหรับการจัดการเพื่อป้องกันการลืมที่จะดึงรหัสล่าสุดของคลังสินค้าระยะไกลคุณสามารถใช้ไฟล์สคริปต์สำหรับการดำเนินการคลิกผ่าน
ขั้นตอนในการใช้งาน:
autoPull.batautoUpload.bat ถาม: ทำไมการปฏิเสธรหัสของฉันจึงปรากฏขึ้น?
ตอบ: เนื่องจากเป็นที่เก็บความร่วมมือหลายคนเวอร์ชันท้องถิ่นอาจไม่สอดคล้องกันเมื่อคุณอัปโหลด เพื่อหลีกเลี่ยงความขัดแย้งขั้นตอน 1. 更改已有的文件内容或者新增文件คุณต้องเพิ่มขั้นตอน拉取仓库最新内容เพื่ออำนวยความสะดวกในการดำเนินการนี้คุณสามารถดับเบิลคลิกไฟล์สคริปต์ autoPull.bat โดยตรงสำหรับการดึงแบบคลิกเดียวหรือคำสั่ง:
# 命令解释:拉取 master 分支最新内容 origin:分支标记,master:分支名
$ git pull origin masterตราบใดที่คุณเขียนในเรซูเม่ของคุณโดยทั่วไปคุณจะถามวิธีแก้ไขความขัดแย้งของ GIT ให้ฉันพูดถึงวิธีแก้ปัญหาด้านล่าง?
การวิเคราะห์สาเหตุของความขัดแย้ง:
ให้ความร่วมมือกับ B ในเวลาเดียวกันการอัปเดตไฟล์ Test.md และจากนั้น B ยังอัปเดตไฟล์ Test.md ไฟล์ในเครื่อง ในเวลานี้ A ไม่ทราบว่ามันถูกปฏิเสธเมื่อทำการดำเนินการผลักดัน หมายเหตุ: ไฟล์ใหม่จะไม่ก่อให้เกิดความขัดแย้งเว้นแต่จะซ้ำกันดังนั้นความขัดแย้งจึงเกิดจากการอัปเดตโดยทั่วไป
วิธีแก้ปัญหาเพื่อแก้ไขความขัดแย้ง:
git pull origin master อัปเด git checkout fileName.md แล้ววิธีย้อนกลับรหัส:
วงจรชีวิตของไฟล์ทั่วไป: การปรับเปลี่ยนเนื้อหา -> มุ่งมั่นในสาขาท้องถิ่น -> พุชไปยังคลังสินค้าระยะไกล
สำหรับการย้อนกลับของไฟล์ที่แก้ไข แต่ไม่ได้มุ่งมั่น: คุณสามารถใช้ git checkout fileName.md เพื่อยกเลิกการเปลี่ยนแปลงไฟล์
สำหรับการย้อนกลับของไฟล์ที่ได้รับการแก้ไขมุ่งมั่นหรือพุช:
# 查看 git 日志的提交记录的32位 hash 值
$ git log
# 回退提交,以 hash 值为 1234 为例(正常是32位)
$ git revert 1234 或者 git reset --hard 1234
revert 会保留更改文件的历史记录,创建一条新的记录,reset 是强制回退,彻底的回到指定的版本,reset 有三种模式可以选择:soft、mixed(默认)、hard(常用)
--soft模式会重置指针,但不会修改工作目录或索引。这意味着之前的更改仍
然存在于工作区中,并且可以重新提交。
--mixed模式是默认模式,它重置指针并更新索引以匹配指定的提交。这将取消索引中的所有更改,但工作目录中的更改将保留。
--hard模式会重置指针,索引和工作区。这意味着所有更改都将永久删除,并
且没有办法澈销或恢复这些更改。Github วิธีการใช้งานหากคุณผลักดันการเปลี่ยนแปลงไปยังที่เก็บระยะไกลและต้องการแก้ไขข้อมูลการกระทำคุณสามารถใช้คำสั่ง GIT Rebase เพื่อแก้ไขการกระทำในอดีตแบบโต้ตอบได้ นี่คือขั้นตอนทั่วไป:
ข้อควรระวัง: การปรับเปลี่ยนการกระทำที่ถูกผลักไปยังพื้นที่เก็บข้อมูลระยะไกลเป็นการดำเนินการที่ละเอียดอ่อน หากคุณกำลังทำงานกับคนอื่นหรือที่เก็บของคุณเป็นสาธารณะการปรับเปลี่ยนการส่งทางประวัติศาสตร์อาจทำให้เกิดปัญหากับผู้อื่น ตรวจสอบให้แน่ใจว่าคุณเข้าใจความเสี่ยงที่อาจเกิดขึ้นและแจ้งให้ผู้อื่นทราบว่าทำงานร่วมกับคุณ
ตรวจสอบให้แน่ใจว่าพื้นที่ทำงานของคุณสะอาด: ก่อนที่คุณจะเริ่มตรวจสอบให้แน่ใจว่าพื้นที่ทำงานของคุณไม่มีการเปลี่ยนแปลงที่ไม่มีข้อผูกมัด คุณสามารถใช้สถานะ GIT เพื่อตรวจสอบ หากมีการเปลี่ยนแปลงที่ไม่มีข้อผูกมัดให้กระทำหรือบันทึกไว้ชั่วคราว
ดำเนินการ Rebase แบบโต้ตอบ:
git rebase -i HEAD~n นี่คือจำนวนการกระทำที่คุณต้องการแก้ไข ตัวอย่างเช่นหากคุณต้องการแก้ไข 3 การกระทำล่าสุดคุณสามารถใช้ git rebase -i HEAD~3
git push origin $your -branch-name$ -fแทนที่ชื่อสาขาของคุณด้วยชื่อสาขาที่คุณกำลังทำอยู่
หมายเหตุ: การบังคับให้ผลักดันจะเขียนทับประวัติของที่เก็บระยะไกลดังนั้นให้แน่ใจว่าคุณเข้าใจผลที่ตามมาของการดำเนินการนี้และแจ้งผู้อื่นที่ทำงานกับคุณ
GitHub แต่การส่งนั้นถูกเซ ฉันควรทำอย่างไร? 1. มันง่ายมาก หากคุณไม่สนใจบันทึกการกระทำของ Github คุณสามารถแก้ไขได้โดยตรงและส่งอีกครั้ง 2. คุณไม่ต้องการให้ Remote Commit แสดงระเบียนการส่งหลายรายการดังนั้นคุณสามารถ: ทำตามขั้นตอนต่อไปนี้เพื่อลบรหัสที่ส่งในพื้นที่และกดใหม่: (รีโมตจะลบการส่งพร้อมกัน)
git reset --soft HEAD~1คำสั่งนี้จะย้อนกลับตัวชี้หัวของคุณไปยังการกระทำครั้งสุดท้าย แต่ยังคงการดัดแปลงพื้นที่ทำงาน นั่นคือคุณเพิกถอนการกระทำนี้ แต่รหัสที่แก้ไขยังคงอยู่ในที่เก็บในพื้นที่ของคุณ
git commit git add git add < modified_files >
git commit -m " Fixed issues and re-committed " ที่นี่ <modified_files> เป็นพา ธ ไฟล์หรือชื่อไฟล์ที่คุณแก้ไข ตัวเลือก -m ตามด้วยข้อมูลการส่งคุณสามารถกรอกข้อมูลตามสถานการณ์จริง
git push origin < branch_name > ที่นี่ <branch_name> เป็นชื่อสาขาที่คุณอยู่ในปัจจุบันเช่น main หรือ develop
ด้วยวิธีนี้คุณสามารถลบการกระทำผิดที่ผิดและส่งรหัสที่แก้ไขใหม่ได้ ตรวจสอบให้แน่ใจว่าคุณได้สำรองไฟล์และข้อมูลที่สำคัญก่อนดำเนินการเหล่านี้
commit หลายอย่างของ GitHub ฉันควรทำอย่างไร? หากคุณต้องการแสดงเพียงหนึ่งเดียวใน GitHub คุณสามารถใช้คำสั่ง git rebase เพื่อรวมการกระทำหลายอย่างเข้าด้วยกัน นี่คือขั้นตอนง่ายๆ:
git rebase -i HEAD~ < number_of_commits > ที่นี่ <number_of_commits> คือจำนวนการกระทำที่คุณต้องการรวม ตัวอย่างเช่นหากคุณต้องการรวม 3 commits ล่าสุดคุณสามารถป้อน HEAD~3
pick ก่อนการกระทำที่ต้องเก็บไว้ squash หรือ s รักษาความมุ่งมั่นที่คุณต้องการรวมและรวมการกระทำอื่น ๆ เข้ากับหนึ่งในนั้นgit push origin < branch_name > --force ที่นี่ <branch_name> เป็นชื่อสาขาที่คุณอยู่ในปัจจุบันเช่น main หรือ develop
ผ่านขั้นตอนข้างต้นคุณสามารถรวมการกระทำหลายอย่างเข้าด้วยกันเป็นหนึ่งเดียวแสดงให้เห็นว่ามีการบันทึกเพียงครั้งเดียวใน GitHub ตรวจสอบให้แน่ใจว่าคุณได้สำรองไฟล์และข้อมูลที่สำคัญก่อนดำเนินการเหล่านี้
ข้อมูลอ้างอิง:
Git Command Visual Learning
Git Command Command Summary