1, 면접 제안
기술 섹션
1) 알고리즘 부분, LeetCode 를 닦으면 됩니다. 이것은 장기적인 과정입니다. 단기 돌격은 효과가 없습니다. 제목이 너무 많기 때문입니다.
2) 언어 기반, 세분화: golang 기초 및 원리, 이것은이 기사의 주요 내용입니다; Mysql 기초 및 원리; Redis 재단 및 원칙; Linux 공통 명령 (예: 스케줄 지정 스크립트), 여러 매개 변수가 나타내는 것, 파일 사용 권한은 명확해야 하며 프로세스 메모리는 명령을 사용합니다. 중소기업은 당신이 모든 것을 이해하기를 원하기 때문에 프런트 엔드 지식을 이해해야합니다.
건의는 Golong 문제 은행을 닦을 수 있고, 총결이 매우 좋고, 출제 품질도 높기 때문에 문법의 기초를 공고히 하기 쉽다. 프런트 엔드 면접 질문 은행에 갈 수도 있습니다. 그 안에는 질문과 답이 가득 들어 있어 프런트 엔드 지식을 쉽고 빠르게 이해할 수 있습니다.
3) 프로젝트 경험, gin 기반 백엔드 서비스를 위한 웹 프레임워크를 구축할 수 있으며, 일반적으로 구현 방법을 묻습니다. 그리고 마이크로 서비스.
비기술적 부분
1)HR 도 질문할 수 있는 질문에 대한 답을 충분히 준비할 수 있다. 당신이 대답하지 않는 것이 아니라, 오히려 당신의 표현을 더 유창하게 만들 수 있다는 것을 의미하지는 않는다. (존 F. 케네디, 언어명언) 둘째, 네가 준비가 되어 있다는 것을 설명한다. 모 회사에서 면접을 볼 때 손해를 보고 기술이 관문을 통과했다. HR 은 내가 표현 능력이 좋지 않다고 말했다. (나 뒤에도 이 템플릿을 공유한다. 며느리가 면접관인 것에 감사하며, 고정사의 HR 질문에 대답하는 방법을 지도한다.)
(2) 자신의 면접 답안을 녹음하고 자신의 말투, 볼륨, 유창함을 볼 수 있다. 만약 네가 듣기 불편하다면 면접관도 불편할 것이다.
1 과 golang 의 make 와 new 의 차이점은 무엇입니까? (기본 문제)
* * * 동일 점: 변수에 메모리를 할당합니다.
차이점:
1) 변수의 유형이 다릅니다. New 는 string, int 및 array 에 메모리를 할당하고 make 는 slice, map 및 channel 에 메모리를 할당합니다.
2) 반환 유형이 다릅니다. New 는 변수에 대한 포인터를 반환하고 make 는 변수 자체를 반환합니다.
3) 3) 새로 할당 된 공간을 비우십시오. Make 가 공간을 할당하면 초기화됩니다.
2, 배열과 슬라이스의 차이점 (기본적으로 물어야 함)
유사점:
1) 같은 유형의 데이터 구조 세트만 저장할 수 있습니다.
2) 모두 아래 첨자를 통해 액세스되며 용량 길이, 길이는 len 을 통해 확보되고 용량은 cap 를 통해 확보됩니다.
차이점:
1) 배열은 고정 길이이므로 액세스 및 복사가 배열에 정의된 길이를 초과할 수 없습니다. 그렇지 않으면 아래 첨자가 초과되고 슬라이스 길이와 용량이 자동으로 확장될 수 있습니다.
2) 배열은 값 유형이고 슬라이스는 참조 유형이며 각 슬라이스는 기본 배열을 참조합니다. 슬라이스 자체는 데이터를 저장할 수 없지만 기본 배열에는 데이터가 저장되므로 슬라이스를 수정하면 기본 배열의 데이터가 수정됩니다. 슬라이스가 확장되고 새 기본 배열을 가리키면 메모리 주소가 그에 따라 변경됩니다.
간결한 대답:
1) 정의가 다릅니다.
2) 초기화 방법이 다릅니다. 배열의 크기를 지정해야 합니다. 크기는 변경되지 않습니다. 3) 함수 전달에서 배열 슬라이스는 값 전달입니다.
3. 그 주소는 범위에 따라 달라질까요?
A: fora 에서 b:=rangec 트래버스, a 와 b 는 메모리에 한 번만 존재합니다. 즉, 각 루프에서 트래버스되는 데이터는 값 덮어쓰기를 통해 a 와 b 에 할당됩니다. a 와 b 의 메모리 주소는 변경되지 않습니다. 이 특성으로 인해 for 루프에서 계약을 여는 경우 a 또는 b 의 주소를 계약에 직접 전달하지 마십시오.
해결 방법: 각 루프에 임시 변수를 만듭니다.
4. 골드버, 여러 차례 연기한 순서. 지연은 언제 반환 값을 수정합니까?
기능: 기능 지연, 자원 여유 확보, 작업 완료 잠금 해제, 파일 닫기, 링크 닫기 등을 예로 들 수 있습니다. 공황을 포착하다.
회피 가이드: defer 함수가 리소스 바로 다음에 열립니다. 그렇지 않으면 defer 가 실행되지 않아 메모리 누수가 발생할 수 있습니다.
여러 defer 호출의 순서는 LIFO (후입선출) 이며 defer 이후의 작업은 defer, return 및 returnvalue (함수 반환 값) 를 스택에 밀어 넣는 것으로 해석할 수 있습니다.
실행 순서: return, returnvalue, defer. Defer 함수의 최종 반환 값을 수정할 수 있습니다.
수정 시기: 반환 값 또는 함수 반환 포인터의 이름을 지정합니다.
5. 룬 유형 좀 소개해 주시겠어요?
Golang 에서 문자열의 기본 구현은 바이트 배열을 통해 구현됩니다. 한자는 유니코드에서 2 바이트, UTF-8 인코딩에서 3 바이트, golang 기본 인코딩은 UTF-8 입니다.
Byte 는 int8 과 동등하며 ascii 문자 처리에 자주 사용됩니다.
Rune 은 int32 에 해당하며 일반적으로 유니코드 또는 UTF-8 문자를 처리하는 데 사용됩니다.