분류 전체보기 178

개발자 면접 질문 - HashMap, TreeMap, LinkedHashMap, CuncurrentHashMap 차이

1. HashMap - Hash 알고리즘에 의해 Get이 매우 빠르다. - 시간 복잡도 O(1) 2. TreeMap - Tree 알고리즘에 의해 Key, Value를 저장한다. - 키를 기준으로 오름차순으로 정렬되어 있다. - 시간 복잡도 O(logN) 3. LinkedHashMap - 링크드 리스트로 저장됨 - 입력된 순서대로 Key가 보장된다. - 시간 복잡도 O(n) 4. CuncurrentHashMap - 멀티쓰레드 환경이 지원되는 HashMap * 종합 - 특별한 이유가 없다면 검색 성능이 좋은 HashMap 사용 - 많은 데이터를 넣을 때는 TreeMap 성능이 좋지 않다. - 입력 순서가 의미있다면 LinkedHashMap이 좋지만, 많은 데이터가 입력 될 경우에는 성능이 좋지 않다. - 멀..

면접 - 자바 2020.12.03

개발자 면접 질문 - Call By Reference와 Call By Value

1. Call By Reference - java는 대체적으로 Call By Reference다. - shallow copy(얕은 복사) 라고도 불린다. - a = 10; b = a; 라고 하면 b = 10이 들어가는게 아니라 a의 주소가 복사된다. - b를 수정하면 a에도 영향을 미친다. 2. Call By Value - deep copy(깊은 복사) 라고도 불린다. - a = 10;b = a; 라고 했을 때 b = 10이 된다. - b를 수정해도 a에 영향을 주지 않는다.

면접 - 자바 2020.12.03

개발자 면접 질문 - Singleton 패턴을 쓰는 이유와 문제점

1. 싱글톤 패턴을 쓰는 이유 - 고정된 메모리 영역을 얻으면서 한번의 new로 인스턴스를 사용하기 때문에 메모리 낭비를 방지할 수 있음 2. 싱글톤 패턴의 문제점 - 싱글톤 인스턴스가 너무 많은 일을 하거나 많은 데이터를 공유 시킬 경우 다른 클래스의 인스턴스들 간에 결합도가 높아져 개방 - 폐쇄 원칙을 위배하게 된다. - 수정 및 테스트 하기 어려워진다.

면접 - 자바 2020.12.03

개발자 면접 질문 - 객체 지향 프로그래밍 정의

1. 객체 지향 프로그래밍 - 컴퓨터 프로그램을 명령어의 목록으로 보는 절차지향적 시각에서 벗어나 여러 개의 독립된 단위인 객체들의 모임으로 파악하고자 하는것. 2. 구성요소 - 클래스 : 현실 세계의 객체의 속성과 동작을 필드와 메서드로 정의한 것으로 아직 메모리가 할당되지 않은 상태 - 인스턴스 : 해당 클래스의 구조로 컴퓨터 저장 공간에서 할당된 실체를 의미 - 객체 : Class를 기반으로 실제 메모리가 잡힌 것을 의미하며 이런 객체를 조합해 전체 프로그램을 완성해 나가는 것이 객체 지향 프로그래밍이다. 3. 특징 - 상속 : 부모 Class 를 자식이 접근할 수 있도록 물려받는 방식 - 추상화 : 객체들의 공통된 특성들을 파악하고 불필요한 특성은 제거하는 과정 - 캡슐화 : 필드와 메서드를 하나..

면접 - 자바 2020.12.03

개발자 면접 질문 - 다형성 정의

1. 다형성 - 한 타입의 참조 변수로 여러 타입의 객체를 참조할 수 있어 다양한 결과를 얻어내는 성질 2. 효과 - 하나의 타입으로 다양한 실행 결과를 얻을 수 있다. - 객체를 부품화하여 유지 보수를 편하게 한다. 3. 다형성 성립 조건 - 클래스 계층 구조 (상속 관계) - 메소드 재정의, 동적 바인딩 - 업케스팅 후 재정의 된 메소드 호출

면접 - 자바 2020.12.03