개발자면접질문 110

개발자 면접 질문 - HashMap과 HashTable의 차이

1. HashTable - HashTable 은 key 라는 특별한 인덱스로 자료에 접근하는 배열로 구성되는 자료 구조 - HashTable의 Hash 함수는 Key 값을 받아 그 Key의 Hash Value(해쉬값) 을 리턴한다. - 상수 시간에 탐색이 가능 - Key 값으로 Null 제한 - 멀티쓰레드 환경 지원(Data 무결성을 보장) 2. HashMap - Key 값으로 Null 허용 - 멀티쓰레드 환경 미지원 3. 공통점 - Map 인터페이스를 상속받아 구현되며 데이터를 키와 값으로 관리한다. 4. 차이점 - HashTable 은 Key 값에 NULL을 허용하지 않지만, HashMap은 NULL을 허용한다. - HashTable 은 동기화를 처리하는 비용 때문에 HashMap에 비해 속도가 느리다.

면접 - 자바 2020.12.02

개발자 면접 질문 - 해시(Hash) 기본 개념과 구조

1. 해시(Hash) 정의 - 배열은 검색 속도가 빠르나 데이터 삽입/삭제시 속도가 느리다. - 링크드 리스트는 삽입 삭제시 인근 노드의 참조 값만 수정해서 속도가 빠르나 순회 검색만 가능하여 데이터가 많아질 수록 속도가 느려진다. - 이러한 한계를 극복하기 위해 제시된 방법이 해시(Hash) 2. 특징 - 내부적으로 배열을 사용하여 데이터를 저장하여 검색 속도가 빠르다. - 데이터의 삽입/삭제 시 해시 알고리즘을 이용하여 데이터와 연관된 고유한 숫자를 만들어 인덱스로 사용한다. - 해시가 내부적으로 사용하는 배열을 Hash Table 이라고 하며 크기에 따라서 성능 차이가 난다. 3. 해시 메서드(Hash Method) - 해시는 Hash Table을 사용하여 데이터를 저장한다. - 이때 인덱스를 구하..

면접 - 자바 2020.12.02

개발자 면접 질문 - 접근 제어자 및 접근 권한

1. 접근 제어자 - 멤버 또는 클래스에 사용되어 해당하는 멤버 또는 클래스를 외부에서 접근하지 못하도록 제한하는 역할 2. 접근 권한 1) private - 하위 클래스 X - 클래스 O - 모든 클래스 X - 동일 패키지 X 2) default - 하위 클래스 X - 클래스 O - 모든 클래스 X - 동일 패키지 O 3) protected - 하위 클래스 O - 클래스 O - 모든 클래스 X - 동일 패키지 O 4) public - 하위 클래스 O - 클래스 O - 모든 클래스 O - 동일 패키지 O

면접 - 자바 2020.12.02

개발자 면접 질문 - 자바 상속과 구현의 차이

1. 추상클래스와 인터페이스의 차이 - 추상클래스는 구체화 시킬 구현체를 추상화시키는 기법이고, 인터페이스는 구현할 컴포넌트의 표준을 정하는것 상속 : 부모로부터 상속 구현 : 조언자로부터 상속 - 부모로부터 모든 권한과 재산과 능력을 가져와서 쓸수있는게 상속 - 무언가로부터 상속을 받되, 그 상속 내용이 비어있고 내가 꼭 채워서 써야하는 것은 구현

면접 - 자바 2020.12.02

개발자 면접 질문 - String, StringBuffer, StringBuilder 차이

1. String - 새로운 값을 할당할 때 마다 새로 클래스에 대한 객체가 생성된다. - String 에서 저장되는 문자열은 private final char[] 의 형태이기 때문에 String 값은 변경할 수 없다. - String + String + String은 각각의 String 주소값이 Stack에 쌓이고 GC가 호출되기 전까지 생성된 String 객체들은 Heap에 쌓이기 때문에 메모리 관리에 치명적이다. 2. StringBuffer - 동기화 지원 - 각 메서드 별로 synchronized keyword가 존재한다. 3. StringBuilder - 동기화 미지원 - 동기화를 지원하지 않아 속도가 빠르다.

면접 - 자바 2020.12.02

개발자 면접 질문 - 가비지 컬렉션 정의

1. 가비지 컬렉션(Garbage Collection) - 쓰레기(가비지)를 정리해주는 프로그램 - 시스템에서 더 이상 사용하지 않는 동적 할당된 메모리 블록이나 객체를 찾아 자동적으로 다시 사용 가능한 자원으로 회수 2. 가비지 컬렉션 실행시점 - JVM이 메모리가 부족해지면 OS에 추가로 메모리 요청을 할 때 가비지 컬렉션이 실행된다. 3. 가비지 컬렉션 알고리즘 - 마킹 작업 : 사용중인 메모리와 사용하지 않는 메모리 식별 - 일반 삭제 : 참조되지 않는 객체를 제거하고 빈 공간에 대한 포인터를 남긴다. 4. 가비지 컬렉터(Garbage Collector) 종류 - Serial GC : MinorGC, MajorGC를 순차적으로 진행 - Parallel GC : 여러 CPU를 효과적으로 활용하기 위..

면접 - 자바 2020.12.02