Java面试通关秘籍Java_Useful_8股文_Guide Those who see are destined to be destined to be destined to be destined to be destined to be destined to be destined to be destined to be destined to be destined to be destined to be destined to be destined to be destined to be destined to be destined to be destined to be destined to be destined to be destined to be destin Welcome to our Bagua website JavaU8G ——— Java_Useful_8股_Guide ???
이 프로젝트
Java_Useful_8股文_GuideJava技术与面试指南JavaJava面试算法JVM优化JavaSE并发编程Spring全家桶및微服务设计模式포함한 고급 실제 응용MySQLOS이르기까지中间件이고 실용적인 Java 기술 및 인터뷰 가이드를 만들기 위해 최선을 다하고 있습니다.设计模式.
우리의 Knowledge Base 웹 사이트는 음악 플레이어 기능 의 고유 한 통합을 가지고있어 학습자가 노래 시간 내에 집중하고 Java 지식 지점에 집중하고 마스터 할 수 있습니다 . 이 혁신적인 학습 모델은 학습 효율성과 재미를 향상시키는 것을 목표로하며 편안한 멜로디에서 Java 기술 스택의 주요 개념을 깊이 이해할 수 있습니다. "
听歌学Java"의 효율적인 여행을 시작하십시오.**
Java_Useful_8股文_Guide의 자세한 내용을 읽는 동안 이론적 지식과 연습을 결합하여 포괄적이고 다중 감각 학습 경험을 달성합니다. Java의 기본 사항을 검토하든 JVM 튜닝의 복잡한 세부 사항을 연구하든 학습 경로에 동반되는 선택된 노래가 있습니다. 개발자는 적극적으로 참여 하고이 새로운 학습 방법에 개인적으로 참여하여보다 생생하고 실용적인Java面试및技术提升리소스를 공동으로 만듭니다!
JavaSE : Java 언어의 기본 개념과 고급 기능을 이해하기 쉬운 방식으로 설명하십시오.JUC : 다중 스레드 개발 기술을 마스터하는 데 도움이되는 수많은 동시 인스턴스 코드 및 분석이 포함되어 있습니다.JVM : JVM 튜닝 전문가가 될 수 있도록 JVM 원칙 및 실제 조정 사례에 대한 자세한 소개를 제공합니다.DesignPatterns : 소프트웨어 설계 기능을 향상시키기 위해 일반적인 설계 패턴 및 응용 시나리오를 요약합니다.SpringFrames : Spring 패밀리의 구성 요소에 대한 포괄적 인 해석과 기업 수준 개발에서의 경쟁력을 향상시키기위한 실제 전투 사용.JavaInterview : 인터뷰로부터 귀하를 보호하기 위해 다양한 Java 인터뷰 질문에 대한 분석 및 토론 요약. Gitee (빠른 속도)Github (선택적 컬렉션) 고품질 컨텐츠를 지속적으로 제공하기 위해이 프로젝트는 매일 또는 매주 정기적 인 업데이트를 고집하여 최신 Java 기술 및 인터뷰 트렌드를 적시에 따라 잡을 것입니다. 우리는 진심으로 커뮤니티 회원들에게 기여에 참여하고 PR ( Pull Request )을 통해 지식과 경험을 공유하도록 초대합니다.
개발자는 Star 와 같이이 프로젝트를 따르고 지원을 보여주고 토론과 공동 구성에 적극적으로 참여할 수 있습니다. Java 개발자 커뮤니티를위한 고품질의 지속적으로 업데이트 된 지식 책을 만들기 위해 함께 노력하겠습니다!
참여 방법? 프로젝트 진행 상황을 따르려면 오른쪽 상단의 Star 버튼을 클릭하십시오. Fork 기능을 통해 프로젝트를 GitHub 계정으로 복사하고 컨텐츠를 수정하고 Pull Request 시작하십시오. Issues 영역에서 질문, 제안을하거나 새로운 인터뷰 질문 및 분석을 공유하십시오.
로컬 컴퓨터에서 폴더를 선택하고 저장소 내용을 폴더로 복제하십시오.
# 本处使用 ssh 协议,如未配置,需要先配置本地密钥到GitHub
# 参考链接:https://blog.csdn.net/W_317/article/details/106518894
$ git clone [email protected]:WL2O2O/JavaU8G.git기사 게시 또는 업데이트
src 폴더에서 SUMMARY.md 파일을 찾아 해당 위치에 인덱스 레코드를 추가하십시오.src 폴더에서 README.md 파일을 찾아 해당 위치에 TimeLine 레코드를 추가하십시오.로컬 리포지토리 추적 파일
$ git add . 로컬 저장소에 코드를 제출하십시오
$ git commit -m "你的提交信息" 코드를 원격 GitHub 협업 저장소로 푸시하십시오
$ git push origin master 약 3 분 동안 CI / CD 자동으로 업데이트 될 때까지 기다립니다.
이 창고의 루트 디렉토리는 원 클릭 풀과 원 클릭 업로드가있는 스크립트를 제공합니다. 멀티-개인 협업이 편리하고 관리를위한 다중 브랜치 구조를 설정하지 않기 때문에 원격 창고의 최신 코드를 잊어 버리는 것을 방지하기 위해 클릭으로 스크립트 작업에 스크립트 파일을 사용할 수 있습니다.
사용 단계 :
autoPull.bat 두 번 클릭하십시오autoUpload.bat 두 번 클릭하십시오 Q : 거부 제출 코드가 왜 나타 났습니까?
A : 다원자 협력 저장소이기 때문에 업로드 할 때 로컬 버전이 일치하지 않을 수 있습니다. 충돌을 피하기 위해이 단계 1. 更改已有的文件内容或者新增文件拉取仓库最新内容단계를 추가해야합니다. 이 작업을 용이하게하려면 autoPull.bat 스크립트 파일을 직접 두 번 클릭하거나 One-Click Pull 또는 명령을 클릭 할 수 있습니다.
# 命令解释:拉取 master 分支最新内容 origin:分支标记,master:分支名
$ git pull origin master이력서에 글을 쓰는 한 일반적으로 GIT 충돌을 해결하는 방법을 묻습니다. 아래 솔루션에 대해 이야기하겠습니다.
갈등의 원인 분석 :
A는 B와 동시에 협력하고 A는 파일 Test.md 업데이트 한 다음 B도 로컬로 파일 Test.md 업데이트합니다. 현재 A는 푸시 작업을 수행 할 때 거부되었다는 것을 알지 못합니다. 참고 : 새 파일은 복제되지 않으면 충돌을 일으키지 않으므로 일반적으로 충돌은 업데이트로 인해 발생합니다.
갈등 해결 솔루션 :
git checkout fileName.md 충돌 파일의 변경 사항을 취소 -> git pull origin master -> 파일을 다시 업데이트합니다 -> 푸시 업데이트.코드를 롤백하는 방법 :
일반 파일의 수명주기 : 컨텐츠 수정 -> 지역 지점에 커밋 -> 원격 창고로 밀기
수정되었지만 커밋되지 않은 파일의 롤백의 경우 : 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 상태를 사용하여 확인할 수 있습니다. 커밋되지 않은 변경 사항이있는 경우 일시적으로 커밋하거나 저장하십시오.
대화식 레바이스 실행 :
git rebase -i HEAD~n 여기서 n은 수정하려는 커밋 수입니다. 예를 들어, 가장 최근의 3 개의 커밋을 수정하려면 git rebase -i HEAD~3 사용할 수 있습니다.
git push origin $your -branch-name$ -f브랜치 이름을 작업중인 브랜치 이름으로 바꾸십시오.
참고 : 강제 푸시는 원격 저장소의 기록을 덮어 쓸 것이므로이 작업의 결과를 이해하고 귀하와 함께 일하는 다른 사람들에게 알리십시오.
GitHub 에 제출되었지만 제출물은 비틀 거렸다. 어떻게해야하나요? 1. 매우 간단합니다. Github 의 커밋 레코드에 관심이 없다면 직접 수정하여 다시 제출할 수 있습니다. 2. 원격 커밋이 여러 제출 레코드를 표시하는 것을 원하지 않으므로 다음과 같은 단계를 수행하여 로컬로 제출되고 다시 정리 된 코드를 삭제합니다. (리모컨이 제출물을 동시에 삭제합니다).
git reset --soft HEAD~1이 명령은 헤드 포인터를 마지막 커밋으로 롤백하지만 작업 공간 수정을 유지합니다. 즉, 당신은이 커밋을 취소했지만 수정 된 코드는 로컬 저장소에 남아 있습니다.
git add 명령을 사용하여 수정 된 파일을 임시 저장 영역에 추가 한 다음 git commit 명령을 사용하여 다시 제출할 수 있습니다. git add < modified_files >
git commit -m " Fixed issues and re-committed " 여기 <modified_files> 는 수정 한 파일 경로 또는 파일 이름입니다. -m 옵션은 제출 정보가 이어지며 실제 상황에 따라 채울 수 있습니다.
git push origin < branch_name > 여기 <branch_name> 은 main 또는 develop 과 같이 현재있는 분기 이름입니다.
이런 식으로, 당신은 잘못된 커밋을 성공적으로 삭제하고 수정 된 코드를 다시 제출했습니다. 이러한 작업을 수행하기 전에 중요한 파일과 데이터를 백업했는지 확인하십시오.
GitHub 의 여러 commit 기록을 병합하고 싶습니다. 어떻게해야합니까? GitHub에 하나의 커밋 만 표시하려면 git rebase 명령을 사용하여 여러 커밋을 하나의 커밋으로 병합 할 수 있습니다. 간단한 단계는 다음과 같습니다.
git rebase -i HEAD~ < number_of_commits > 여기 <number_of_commits> 합병하려는 커밋 수입니다. 예를 들어, 가장 최근 3 개의 커밋을 병합하려면 HEAD~3 입력 할 수 있습니다.
squash 또는 s 에 보유 해야하는 커밋 전에 pick 변경하십시오. 병합하려는 커밋을 유지하고 다른 커밋을 그중 하나로 병합하십시오.git push origin < branch_name > --force 여기 <branch_name> 은 main 또는 develop 과 같이 현재있는 분기 이름입니다.
위의 단계를 통해 여러 커밋을 하나의 커밋으로 병합하여 Github에 하나의 커밋 레코드 만 표시 할 수 있습니다. 이러한 작업을 수행하기 전에 중요한 파일과 데이터를 백업했는지 확인하십시오.
참조 :
git 명령 시각 학습
공통 명령 요약