개인공부

면접 예상 질문 2 본문

JAVA 기초복습

면접 예상 질문 2

풀스택개발 2018. 5. 24. 10:22


자바의 메모리 영역(간단하게 설명)


1. 메서드 영역 : static 변수, 전역변수, 코드에서 사용되는 Class 정보 등이 올라간다.


    , 코드에서 사용되는 class들을 로더로 읽어 클래스별로 런타임 필드데이터, 메서드 데이터 등을 분류해 저장한다.


2. 스택(Stack) : 지역변수, 함수(메서드) 등이 할당되는 LIFO(Last In First Out) 방식의 메모리


3. 힙(Heap) : new 연산자를 통한 동작할당된 객체들이 저장되며, 가비지 컬렉션에 의해 메모리가 관리되어 진다.







캐시(Cache)와 세션(Session)의 공통점과 차이점은?


1. 세션


 - 지정한 정보를 서버에 남겨두고 클라이언트에는 세션 정보만을 남겨두어 클라이언트에서 정보가 필요할때 


    저장된 세션정보를 서버에 전달하여 서버에서 해당 세션에 저장된 정보를 가저오는 방식.




2. 캐시


 - 지정항 정보를 클라이언트쪽에 고스란히 남겨두고 필요할때마다 클라이언트에서 바로 사용하는 방식.


   지정된 정보가 클라이언트쪽에 그대로 남아있기때문에 악의적으로 사용될 여지가 있다.




공통점


 - 헤더가 시작하기 전에 사용해야한다.  



차이점


- 캐시 : 캐시는 Client 컴퓨터에 저장했다 서버 요청시 네트워크를 타고 서버로 전달되기 때문에 보안에 취약하다.


- 세션 : 세션은 서버에 저장되고 브라우저 단위로 관리된다. 캐시에 비해 보안성이 좋다. 서버에 과부하가 올 수도 있다.










디자인 패턴 아는 것?


1) 싱글톤(SingleTone Pattern) : 생성하고자 하는 인스턴스의 수를 오직 하나로 제한하는 디자인 패턴입니다.

 전체 코드에서 하나의 객체만 존재할 수 있도록 이미 생성된 객체가 있으면 그 객체를 사용하도록 하는 방식입니다.


2) 팩토리 패턴(Factory pattern) : 객체간 의존성을 줄이기 위해 객체의 생성과 데이터 주입만 담당하는 Factory Class를 정의하고 개발 코드 부분에서는 생성된 객체를 가져다 사용함으로서 의존성을 줄이는 방식입니다.


3) 옵저버 패턴(Observer Pattern) : 한객체의 상태가바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(one-to-many) 의존성을 정의한다.






Servlet vs JSP


- Servlet : 자바 언어로 웹 개발을 위해 만들어진 것으로, Container가 이해할 수 있게 구성된 순수 자바코드로만 이루어진 것


- JSP : html 기반에 JAVA 코드를 블록화하여 삽입한 것으로 Servlet을 좀 더 쉽게 접근할 수 있도록 만들어 진 것






DataBase에서 Index란?


: Table에 대한 동작 속도를 높여주는 자료구조로서 빠른 검색을 가능하게 해준다.





Garbage Collection(가비지 컬렉션)


시스템에서 더이상 사용하지 않는 동적 할당된 메로리 블럭을 찾아 자동으로 다시 사용 가능한 자원으로 회수하는 것으로 


시스템에서 가비지컬렉션을 수행하는 부분을 가비지 컬렉터라 부른다.






Primitive type과 Reference type


Primitive type - 변수에 값 자체를 저장 


정수형 byte, short, int, long


실수형 float, double


문자형 char


논리형 boolean




Reference type - 메모리상에 객체가 있는 위치를 저장


종류 - Class, Interface, Array 등






Stack, Queue


STACK


- LIFO(Last In First Out)의 후입선출 구조


- push();를 이용한 데이터 입력, pop();을 이용한 데이터 출력


- 예) 시스템 스택 : 함수의 호출과 복귀 순서는 스택의 구조를 응용하여 관리


- 역순 문자열 만들기, 수식의 괄호 검사, 수식의 후위 표기법 변환


QUEUE


- FIFO(First In First Out)의 선입선출 구조


- enQueue();를 이용한 데이터 입력, deQueue();를 이용한 데이터 출력


- 예) 우선순위가 같은 작업 예약(인쇄 대기열), 선입선출이 필요한 대기열(티켓 카운터)


* Linear Queue(선형큐)는 메모리 재사용이 불가능 이러한 문제점을 보완하여 Circular Queue(원형 큐)가 나옴






'JAVA 기초복습' 카테고리의 다른 글

Get 과 Post 방식의 차이  (0) 2018.05.30
main에 static이 있는 이유  (0) 2018.05.28
이클립스 단축키 모음  (0) 2018.05.27
자바 면접 예상 질문  (0) 2018.04.29
기초 복습 - 문자열 정렬  (0) 2018.04.27
Comments