자바 면접질문 정리
다형성
객체지향개념에서의 다형성이란 '여러 가지 형태를 가질 수 있는 능력'을 의미하며, 자바에서는 한 타입의 참조변수로 여러 타입의 객 체 를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현하였다
작성중
OverLoading & OverLiding
오버로딩은 기존에 메소드의 인자를 이용하여서 하나의 함수에 여라가지 기능을 만드는 것 입니다.
오버라이딩이란 상위 클래스에 있는 메서드와 똑같은 메서드를 하위 클래스에서 다시 만드는 행위를 말합니다. 즉 하위 클래스에서 메서드를 재정의하는 것을 말합니다.주로 생성자메소드를 정의할 때 많이 사용합니다.
Stack , Q
컴퓨터의 알고리즘에서 가장 흔하게 사용되는 자료 구조가 스택과 큐이다
.... 작성중
JAVA의 특징
Java언어의 특징은 플랫폼에 독립적인 객체지향언어라는 것이 가장 두드러지는 특징입니다.
플랫폼에 독립적이라는 것은 리눅스,윈도우 등과 같은 개발환경에 제약을 받지 않고 어느 플랫폼에서나 코드의 호환성과 재사용이 자유롭다는 것을 의미합니다.
JSP, 모바일, 서버, 네트워크프로그램, 소켓프로그램, . . . . . .
가비지콜렉션 garbage collection
가비지 컬렉션Garbage Collection이란, 시스템에서 더 이상 사용하지 않는 동적 할당된 메모리 블럭 혹은 개체를 찾아 자동적으로 다시 사용 가능한 자원으로 회수하는 것을 말한다. 시스템에서 가비지 컬렉션을 수행하는 부분을 가비지 컬렉터Garbage Collector라고 하며, 가비지 컬렉션은 약자로 GC라고 부르기도 한다.
일반적인 가비지 컬렉터 알고리듬Algorithm은 다음과 같이 동작한다.
1. 더 이상 프로그램에서 사용하지 않을 개체Object를 찾아낸다.
2. 해당 개체가 사용하는 리소스를 회수한다.
기술이론폴더 참조
[DB]Statement와 PreparedStatement의 차이
정적 SQL 문을 실행해, 작성된 결과를 돌려주기 위해서(때문에) 사용되는 객체입니다.
디폴트에서는,Statement객체 마다 1 개의ResultSet객체만이 동시에 오픈할 수 있습니다. 따라서, 1 개의ResultSet객체의 read가, 다른 read에 의해 끼어들어지면(자), 각각은 다른Statement객체에 의해 생성된 것이 됩니다.Statement인터페이스의 모든 execution 메소드는, 문장의 현재의ResultSet객체로 오픈되고 있는 것이 존재하면, 그것을 암묵에 클로즈 합니다.
관련 항목 : Connection.createStatement(),ResultSet
Class diagram
클래스 다이어그램은 "클래스"라고 하는 객체지향 설계단위를 이용하여 시스템의 정적인 구조(모델)를 표현한 것이다. 클래스 다이어그램은 분석, 설계, 구현 등 다양한 상황에서 그 사용목적에 맞게 입도를 조절하여 기술 할 수 있다.
예제 : 스트럿츠의 클래스다이어그램
Sequence diagram
작성중
웹어플리케이션이 동작하는 방식을 설명해라.
EJB?
엔터프라이즈 자바빈즈(Enterprise JavaBeans; EJB)는 기업환경의 시스템을 구현하기 위한 서버측 컴포넌트 모델이다. 즉, EJB는 애플리케이션의 업무 로직을 가지고 있는 서버 애플리케이션이다. EJB 사양은 Java EE의 자바 API 중 하나로, 주로 웹 시스템에서 JSP는 화면 로직을 처리하고, EJB는 업무 로직을 처리하는 역할을 한다.
http://ko.wikipedia.org/wiki/엔터프라이즈_자바빈즈
MVC 패턴이란?
객체지향 설계를 처음 접하기 이전부터 MVC 모델에 대한 개념적인 지식은 한번쯤 접해 보았을 것입니다. 가장 기본적인 정의를 설명하자면 M( Mode )은 Application의 Business Logic , 즉, 객체 또는 데이터의 가공을 책임지는 컴포넌트들의 집합체이고 C ( Control )이란 객체 또는 데이터의 흐름을 책임지는 컴포넌트 , V( View )는 객체 또는 데이터의 생성을 책임지는 컴포넌트로써 일반적으로 Data의 입력 부분과 출력 부분을 담당합니다 참고자료링크
c와 c++의 차이점
클래스 => opp언어
절차지향, OPP(object oriented programming : 객체 지향 언어)
-> 클래스자료형을 이용해 만드는 program
-다형성
객체지향개념에서의 다형성이란 '여러 가지 형태를 가질 수 있는 능력'을 의미하며, 자바에서는 한 타입의 참조변수로 여러 타입의 객 체 를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현하였다
-오버로딩 오버 라이딩
오버로딩은 기존에 메소드의 인자를 이용하여서 하나의 함수에 여라가지 기능을 만드는것 입니다.
오버라이딩이란 상위 클래스에 있는 메서드와 똑같은 메서드를 하위 클래스에서 다시 만드는 행위를 말합니다. 즉 하위 클래스에서 메서드를 재정의하는 것을 말합니다.주로 생성자메소드를 정의할때 많이 사용합니다.
- 정적 변수, 지역변수, 전역변수를 스택과 힙과 관련에서 설명해보세요.
전역변수는 프로그램에서 전반적으로 다 사용이 가능 함수 밖에서 정의해 놓으면 다른 함수에서도 사용할 수 있습니다.
지역변수는 함수 안에서만 사용이 가능한 변수입니다. 다른 함수에서는 사용을 못하죠.
정적변수는 한번 정의 하면 그 값은 계속적으로 메모리에 남아 있는 것입니다.
프로그램이 종료할때 메모리에서 지워집니다.함수안에서 사용해도 함수가 끝날때 지워지지 않습니다.
- OSI 7 Layers에 대한 질문
7계층: 응용 (application layer)
6계층: 표현 (presentation layer)
5계층: 세션 계층(session layer)
4계층: 전송 계층(transport layer)
3계층: 네트워크 계층(network layer)
2계층: 데이터링크 계층(data link layer)
1계층: 물리 계층(physical layer)
- 회사나 그 외 궁금한 점
- 스터디 ONE 이라고 하셨는데 세미나를 해보신적이 있습니까?
- 후배들에게 도움을 주고 계십니까?
- WIPI를 이용한 게임을 제작을 하셨는데 어떤 종류의 게임이며 코드 길이는 얼마정도 입니까?
- 프로그램을 개발하는데 제일 중요한 것이 무엇이라고 생각합니까?
보기 : 기획 설계 코딩
- 학교에서 프로그래밍을 하는데 컴파일러를 어떤 것을 쓰십니까?
- java의 특징에 대해 말하세요.
Java언어의 특징은 플랫폼에 독립적인 객체지향언어라는것이 가장 두드러지는 특징입니다.
플랫폼에 독립적이라는 것은 리눅스,윈도우 등과 같은 개발환경에 제약을 받지 않고 어느 플랫폼에서나 코드의 호환성과 재사용이 자유롭다는 것을 의미합니다.
JSP, 모바일, 서버, 네트워크프로그램, 소켓프로그램,
- stack 과 Q를 설명하세요.
컴퓨터의 알고리즘에서 가장 흔하게 사용되는 자료 구조가 스택과 큐이다.
스택은 모든 작업이 리스트의 한쪽 끝에서만 수행되는 선형 리스트의 한 형태로, 리스트의 한쪽 끝(TOP)에서 원소를 삽입하거나 제거하는데 사용된다. 그러므로 리스트에서 스택에 마지막으로 입력된 원소가 제일 먼저 제거의 대상이 된다. 그래서 스택을 LIFO (Last In First Out) 라고도 한다.
큐에서 삽입은 REAR에서 이루어지고, 제거는 FRONT에서 이루어진다. 그러므로 큐에 A,B,C,D,E순으로 원소가 삽입되었다면, 제일 먼저 제거되는 원소는 A이다.
- DB의 경우 ERD는 그려봤는지? 프로그램은 무엇을 사용하는지? 어느 정도 수준인지?
Entity Relationship Diagram의 약자로 개체관계도
다음 용어들은 자바 기반 업종의 면접시 물어보거나 물어볼만한 질문들입니다.
ERP(Enterprise Resource Planning)
- 전사적 자원 관리 시스템-기업의 모든 자원을 전체적으로 관리하여 최적화된 기업활동을 통합,관리 시스템에 근거하여 스피트경영과 투명경영의 효과를 꾀하는 것
Framework 프레임워크(제가 생각하는 모범 답안은 Framework와 Library를 비교하여 설명하는 것입니다.)
- 특정 형태의 소프트웨어 문제를 해결하기 위해 상호 협력하는 클래스들과 인터페이스의 집합
- 장점 - 재사용성, 단순성, 역할구분, 확장성, 유지보수용이
- 프레임웍과 라이브러리 차이
라이브러리는 어플리케이션에서 호출할 수 있는 함수와 루틴으로 구성되어 있고
프레임워크는 어플리케이션에서 특정 기능들을 제공하기 위해 확장할 수 있는 일반적이고 상호 협력적인 컴포넌 트를 제공
Struts 스트러츠(Struts외에도 Spring, 하이버네이트 등 다양한 프레임워크가 존재하나 예로 든 3가지 정도의 프레임워크에 대한 특징과 MVC 모델에서 커버하는 부분을 키워드로 잡아서 설명하면 될 것 같습니다.
- 컨트롤러에 강점이 있는 프레임워크의 종류
- 단일 진입 서블릿을 사용하여 관리가 용이(커멘드패턴을 생각하면 됨)
- Model 1과 Model 2의 차이점
MVC 모델을 기준으로 설명 EJB
- 최근에는 엔티티빈 대신 POJO를 활용하는 측면이 강한데 이러한 경향은 객체지향적인 프로그램 기법을 적용하기 위한 방편이라는 것을 염두에 두고 세션 빈, 엔티티 빈, 메세지 드리븐 빈 등 특징을 설명- 분산 객체기술에 기반을 둔 컴포넌트 기술
- 처리속도가 느림
- 재사용성이 뛰어남
- 개발 속도가 빠름
- 구성
홈인터페이스(빈의 생성과 소멸관련 작업
리모트 인터페이스(비지니스 메소드 선언)
빈 클래스 - SessionBean(무상태 : 검색,계산 상태유지: 장바구니,회원관리)
- EntityBean: 데이터 처리
- - MessageDrivenBean : 비동기 메시지 통보
- WAS (Web Application Server)
역할과 대표적인 제품들을 나열하고 특징 설명 - SAP
솔루션 제품명이면서 기업명. ERP, CRM관련 전문 업체. 요점 정리. String, StringBuffer, StringBuilder의 차이점
String클래스는 문자열을 추가할 때 내부적으로 StringBuffer클래스로 변환되어 처리됨.
문자열의 변화가 많은 경우는 StringBuffer클래스가 빠름.
StringBuffer를 사용하면 입출력 데이터를 읽는 양이 많고 처리시 속도가 빠름.
StringBuilder는 StringBuffer와 비슷하지만 수정 가능한 문자열을 작성할 때 수 있음.
9. Java Servlet
자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램
10.오라클 인덱스
인덱스- 데이터와 검색의 성능을 향상시키기 위해 만들어짐
예)부산의 위치가 어디있는지 모를경우(인덱스가 없을경우) 다 찾아봐야 되지만 인덱스가 있을 경우
부산시의 위치를 정확히 알게 되고 결국은 데이터 접근이 빠르다.
11. 트랜젝션,롤백,커밋
- 트랜젝션이란? 일련의 작업단위
ACID(원자성,일관성,고립성,영구성)
필요성 - 여러작업이 한 자원에 동시에 변경,참조가 필요한 경우
작업공정이 긴 경우
- 트랜젝션의 시작
첫 DML(데이터조작어)구문이 실행될 때
사용자가 SAVEPOINT를 설정할때
- 트랜젝션의 종료
커밋 수행
롤백 수행
DDL(데이터정의어),DCL(데이터제어어)이 실행될 때 오라클 내부에서 자동 커밋 수정
사용자가 sqlplus를 종료할때
시스템 크래쉬 발생
- 커밋과 롤백 전
롤백으로 데이터 회복가능
현재 유저는 자신이 바꾼 데이터를 확인할 수 있다
다른 유저에게는 바뀐 데이터 내용이 반영되지 않는다
영향을 받은 레코든는 잠금상태
-커밋 후
데이터는 영구적으로 변경
복구 불가능
모든 유저에게 변경 내용이 반영
해당 레코드의 잠금 해제, 다른 유저들이 다룰 수 있다
세이브 포인트가 삭제
-롤백 후
데이터의 변경이 취소
데이터의 이전 상태가 회복
데이터에 대한 잠금이 해제
12 조인문의 종류
equi
non-equi
inner
outer
self