>  기사  >  2022 Xiaomi 수석 PHP 엔지니어 인터뷰 질문 (모의 시험지)

2022 Xiaomi 수석 PHP 엔지니어 인터뷰 질문 (모의 시험지)

青灯夜游
青灯夜游앞으로
2019-01-11 09:38:0324358검색

면접 전에 회사의 면접 자료에 대해 자세히 읽어보세요. 이후 면접에 많은 도움이 될 것입니다. 오늘은 여러분께 특정 참고 가치가 있는 2022 샤오미 수석 PHP 엔지니어 면접 문제(모의 시험지)를 가져오겠습니다. 모두에게 도움이 되기를 바라면서 지금 공유합니다!

2022 Xiaomi 수석 PHP 엔지니어 인터뷰 질문 (모의 시험지)

관련 추천: "2022 PHP 면접 질문 요약(모음)"

1. 오류를 예외 처리로 변환하는 데 사용할 수 있는 함수는 무엇인가요?

A: set_error_handler
B: error_reporting
C: error2Exception
D: catch

정답: A

답변 분석: set_error_handler()는 호출을 지정할 수 있습니다. 오류 발생시 뒤로가기 기능, 지정된 콜백 함수를 통해 자동으로 처리됩니다. 콜백 함수에서 새로운 예외를 발생시키면 됩니다.

2. 쉘 함수에 대한 다음 설명 중 올바른 것은 무엇입니까?

A: 쉘 함수를 먼저 호출한 다음 정의할 수 있습니다.
B: 쉘 함수는 키워드 함수를 사용하여 정의해야 합니다.
C : 쉘 함수 내의 변수를 선언할 수 있습니다. 로컬 변수의 경우
D: 쉘 함수는 return을 통해서만 값을 반환할 수 있습니다. 1은 성공, 0은 실패입니다.

정답: C

답변 분석: 호출 시 먼저 쉘 함수를 정의해야 합니다. 함수 내 로컬 변수는 로컬을 통해 정의할 수 있습니다. 0은 성공, 0이 아닌 경우 오류입니다. 올바른

3. 전체 텍스트 검색 기술에 대한 다음 설명은 올바르지 않습니다.

A: Solr는 Lucene의 검색보다 훨씬 효율적입니다. PHP에서 Solr를 호출하는 것도 매우 편리합니다.
B: MySQL에서는 필드에 FULLTEXT 인덱스를 설정하여 전체 텍스트 검색을 수행할 수 있습니다. 현재 MyISAM 및 InnoDB 테이블은 모두 FULLTEXT 인덱스를 지원합니다.
C: Sphinx는 SQL 기반의 전체 텍스트 검색 엔진으로 MySQL과 결합하여 전체 텍스트 검색이 가능하며 데이터베이스 자체보다 더 전문적인 검색 기능을 제공할 수 있습니다.
D: Lucene과 함께 제공되는 이진 단어 분할 분석기 CJKAnalyzer는 단어 분할이 매우 빠르며 일반적인 전체 텍스트 검색 요구 사항을 충족할 수 있습니다.

정답: A

답변 분석: Solr는 차세대 전체 텍스트 검색 컴포넌트이므로 Lucene을 기반으로 하기 때문에 Lucene보다 빠르다는 말은 말도 안됩니다 :)

4. 싱글톤에 대하여 모델에 대한 설명 중 틀린 것은 무엇입니까?

A: 싱글톤 모드의 목적은 전역 환경에 클래스의 인스턴스가 하나만 존재할 수 있도록 하는 것입니다.
B: 단일 관심 모드에서는 일반적으로 생성자를 비공개로 설정해야 합니다.
C: 생성자만 필요합니다. 비공개로 설정하면 세상에 하나의 인스턴스만 있다는 것을 확인할 수 있습니다
D: 데이터베이스에 연결하는 기능은 일반적으로 싱글톤 모드에서 구현됩니다

정답: C

답변 분석: 생성자를 비공개로 설정하면 새 인스턴스가 new를 통해 생성될 수 없지만 복제, 역직렬화 등을 통해 여러 인스턴스가 생성될 수는 없습니다.

5. 정규 엔진 표현 중 틀린 것은 무엇인가요?

A 일반 엔진은 크게 두 가지 범주로 나눌 수 있습니다. 하나는 DFA이고 다른 하나는 NFA입니다.
B 일반적으로 NFA 엔진이 검색 속도가 더 빠릅니다. 그러나 DFA는 표현 지향적이고 조작하기 쉽기 때문에 대부분의 프로그래머는 DFA 엔진을 선호합니다!
C NFA 표현이 우세하고 DFA 텍스트가 우세합니다.
D 엔진 유형을 결정하기 위해 우선순위 수량자 무시 및 그룹 캡처 지원 여부를 사용할 수 있습니다. NFA 지원, DFA 지원 안 함

정답:B

답변 분석: 올바른 설명은 다음과 같습니다. 일반적으로 DFA 엔진은 검색 속도가 더 빠릅니다. 그러나 NFA는 표현 지향적이고 조작하기 쉽기 때문에 대부분의 프로그래머는 NFA 엔진을 선호합니다!

6. 다음 옵션 중 상자의 정규식과 일치할 수 있는 것은 무엇입니까?

/.123d/

A.**123
B.****1234
C.1234
D.123

정답: B

답변 분석: 이 질문의 핵심은 이 정규 표현식의 의미를 이해하는 것입니다. 왼쪽에서 오른쪽으로 먼저 0개 이상의 임의 문자(.)가 있고 그 뒤에 별표(), 123, 마지막으로 숫자가 있습니다. 그럼 답은 B입니다.

7. 데이터베이스에 대한 다음 설명 중 잘못된 것은 무엇입니까?

A: 효율성을 위해 데이터베이스에는 여러 개의 읽기 라이브러리가 있을 수 있습니다.
B: 데이터베이스는 상시 대기를 위해 마스터-슬레이브를 사용할 수 있습니다.
C: 데이터베이스는 다중 마스터 및 다중 슬레이브 아키텍처를 제공할 수 없습니다.
D: 데이터베이스 마스터-슬레이브 로그를 통해 동기화됩니다.

정답:C

답변 분석: 데이터베이스는 다중 마스터 및 다중 슬레이브 아키텍처를 제공할 수 있습니다.

8. 다음 중 XSS 취약점을 해결하는 방법이 아닌 것은 무엇입니까?

A: 매개변수에 htmlspecialchas 필터링 수행
B: 매개변수에 화이트리스트 필터링 사용
C: 입력 내용이 브라우저에 표시되는 것을 허용하지 않음
D: js 태그에서 사용자 입력 내용 출력 금지

정답 :A

답변 분석: 이 유형의 필터링은 꺾쇠 괄호 유형을 해결할 수 있습니다

A.ISAPIB.CGIC.FastCGI

D.RESTFUL API



정답:

D

답변 분석: A~C는 가장 일반적으로 사용되는 모드이고, D는 a입니다. 인터페이스가 구성되는 방식.

10. 대용량 파일을 한 줄씩 탐색하려면 다음 중 어떤 방법이 더 높은 성능을 발휘하나요?

A: IteratorAggregate 인터페이스를 구현하는 클래스를 작성하고 이 클래스를 통해 foreach 순회를 사용합니다. B: 파일 내용을 메모리에 한 번에 로드한 다음 한 줄씩 이동하려면 file_get_contents를 사용하세요. C: 쉘 도구를 호출하여 exec 함수를 탐색합니다.

D: 다른 사람이 작성한 클래스 라이브러리를 사용합니다.



정답:

A

답변 분석: IteratorAggregate를 사용하여 파일을 하나씩 엽니다. 포인터 이동 파일 크기와 관계없이 행 순회. 큰 파일을 처리하기 위해 file_get_contents를 사용하면 쉽게 PHP 메모리 오버플로가 발생할 수 있습니다. exec를 호출하면 추가 프로세스가 생성되고 다른 사람이 작성한 클래스 라이브러리의 품질이 높지 않을 수 있습니다.

11. 다음 옵션 중 디자인 패턴이 따라야 할 원칙이 아닌 것은 무엇입니까?

A: 상속보다 구성이 낫다 B: 인터페이스를 위한 프로그래밍 C: 결합을 최대한 줄여라

D: 고성능 구문을 사용해 보세요



정답:

D

답변 분석 : 디자인 패턴 코드의 유지 관리성과 재사용성에 초점이 맞춰져 있으며, 옵션 D는 디자인 패턴의 초점이 아닙니다.
12. 역추적에 대한 다음 표현 중 잘못된 것은 무엇인가요?

A ab.lmn은 abcdeflmnghijklmn의 abcdeflmnghijklmn과 일치합니다. B ab.?lmn은 abcdeflmnghijklmn의 abcdeflmn과 일치합니다. C ab??c는 abcdeflmnghijklmn과 일치합니다.

D .*lmn은 abcdeflmng abcdeflmn과 일치합니다.



hijklmn의 정답 :

D

답변 분석: D는 그리디 매칭이므로 매칭 결과는 abcdeflmnghijklmn

13이어야 합니다. 함수에서 try catch finally 구문 구조를 사용하는 경우 return은 어디에 작성해야 합니까?

A: finally in B: try in C: catch in

D: 임의의 위치



정답:

A

답변 분석: try는 finally로 돌아온 후에도 계속 실행됩니다. finally에도 return이 있는 경우 최종 반환 값은 finally의 return 값입니다.

14. NOSQL에 대한 다음 설명은 올바르지 않습니다.

A: Redis는 문자열, 해시, 목록, 집합 및 순서가 지정된 집합과 같은 데이터 구조를 지원합니다. B: MongoDB는 CAP 정리에서 AP를 지원하고, MySQL은 CAP에서 CA를 지원합니다. 모두 불가능 존재를 지원합니다. C: MongoDB는 먼저 컬렉션 ​​구조를 만들지 않고도 데이터를 직접 삽입할 수 있습니다. 현재 MongoDB는 트랜잭션을 지원하지 않습니다.

D: Memcache는 TCP 프로토콜과 UDP 프로토콜을 모두 지원합니다. Memcache에 PHP 세션을 저장할 수 있습니다.



정답:

A

답변 분석: Redis는 트랜잭션을 지원합니다.

15. Innodb 잠금 메커니즘에 대한 설명 중 잘못된 것은 무엇입니까?

A: Innodb는 테이블 잠금과 행 잠금의 두 가지 잠금 메커니즘을 제공합니다. B: Innodb의 테이블 잠금은 테이블이 변경될 때 트리거됩니다. C: Innodb는 잠금을 업데이트할 때 관련된 행에 자동으로 추가합니다. 미러 복사본을 생성합니다. 이때 선택 시 미러 복사본의 데이터가 쿼리됩니다.

D: Innodb 행 잠금 상태에서는 읽기에는 영향이 없지만 쓰기에는 영향을 받습니다(데이터 관련)



정답 :

A

16. 다음 중 매주 수요일 01:00부터 04:00까지 3분마다 실행되는 crontab 명령을 생성하는 것은 무엇입니까?

A: 1,4 3 /bin/bash /home/sijiaomao/ok.sh
B:/3 1,4 3 /bin/bash /home/sijiaomao/ok.sh
C:/3 1-4 3 / bin/bash /home/sijiaomao/ok.sh
D:/3 1-4 * /bin/bash /home/sijiaomao/ok.sh

정답: C

답변 분석: A : 매주 수요일 1시 4분에 1분마다 실행 B: 매주 수요일 1시 4시에 3분마다 실행 C: 요구 사항 충족 D: 매일 1시 4분에 3분마다 실행

17. 분할하기 전에는 시스템의 많은 목록과 세부 정보 페이지에 필요한 데이터가 SQL 조인을 통해 완성될 수 있었습니다. 분할 후 데이터베이스는 다른 인스턴스와 다른 호스트에 분산될 수 있으며 조인은 매우 번거롭습니다. 다음 중 이 문제에 대한 효과적인 해결책이 아닌 것은 무엇입니까?

글로벌 테이블, 즉 시스템의 모든 모듈이 의존할 수 있는 일부 테이블이 각 라이브러리에 저장됩니다.
B 필드 중복, "주문 테이블"에 "판매자 ID"를 저장하는 동시에 판매자의 "이름" 필드도 중복되므로 주문 세부 정보를 쿼리할 때 "판매자 사용자 테이블"을 쿼리할 필요가 없습니다.
C 마스터-슬레이브 복제는 데이터베이스 읽기와 쓰기를 분리합니다.
D 데이터 동기화, 예약된 A 데이터베이스의 tbl_a 테이블은 B 데이터베이스의 tbl_b와 연결되며 지정된 테이블은 예약된 간격에 따라 마스터에서 슬레이브로 동기화될 수 있습니다.

정답: C

답변 분석: 마스터-슬레이브 복제는 데이터베이스 읽기와 쓰기를 분리합니다. 읽기 동시성을 확장할 수만 있고 데이터베이스 간 조인 문제를 완화할 수는 없습니다.

18. 네트워크 IO 모델과 관련하여 다음 중 올바른 것은 무엇입니까?

A.Select는 Epoll보다 빠릅니다.
B.nginx는 select 모델을 사용합니다.
C.apache는 select와 epoll 간 전환을 지원합니다.
D.epoll은 더 높은 동시성을 지원할 수 있습니다.

정답: D

답변 분석: epoll이 더 빠릅니다. B nginx는 epoll 모델을 사용합니다. C apache는 select

19만 지원합니다. PHP가 실행되면 Scanning(Lexing) - Compilation - Execution - Parsing의 실행 프로세스가 있으며 그 의미는 다음과 같습니다.

A: PHP 코드를 언어 조각으로 변환합니다. (토큰), 토큰을 간단하고 의미 있는 표현식으로 변환, 표현식을 Opocdes로 컴파일, Opcode를 순서대로 실행
B: PHP 코드를 언어 조각(토큰)으로 변환, 토큰을 간단하고 의미 있는 표현식으로 변환 공식, Opcode를 순서대로 실행, 컴파일 표현식을 Opocdes로 변환
C: PHP 코드를 언어 조각(토큰)으로 변환, 표현식을 Opocdes로 컴파일, Opcode를 순서대로 실행하고 토큰을 간단하고 의미 있는 표현식으로 변환
D: PHP 코드를 언어 조각(토큰)으로 변환, 표현식을 Opocdes, 토큰을 간단하고 의미 있는 표현으로 변환하고 Opcode를 순서대로 실행하세요

정답: C

정답 분석: 정답은 C이며, 정답 순서는 Scanning(Lexing), Parsing입니다. , Compilation, Execution

관련 추천:

1, 2018 – 2022 프론트엔드 JavaScript 인터뷰 질문(모음)

2 프런트엔드 인터뷰 Jianghu

위 내용은 전체 내용입니다. 이 기사가 모든 사람의 학습에 도움이 되기를 바랍니다. 더 흥미로운 내용을 보려면 PHP 중국어 웹사이트의 관련 튜토리얼 열을 주의 깊게 살펴보세요! ! !

성명:
이 기사는 微信公众号에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제