본문 바로가기

Study/JAVA

Java 기술면접 준비

컴포넌트 vs 모듈

-> 컴포넌트 : 런타임 개체를 참조하는 단위로, 실제적으로 동작하는 개체

-> 모듈 : 가장 상위에 위치한 구현의 단위로, 실질적으로 구현이 된 단위


자바란?

: 객체지향 프로그래밍 언어로써, 운영체제에 독립적이고, 자바를 실행하기 위한 가상 머신인 JVM이 있기 때문에 운영체제 종류에 관계없이 실행이 가능함


OOP [ 객체 지향 프로그래밍 | Object Oriented Programming ]

: 오브젝트를 기준으로 코드를 나누어 구현하는 프로그래밍 방법


-> 특징

1. 코드 재사용성이 높다.

2. 코드의 변경이 편하다.

3. 직관적인 코드 분석이 가능하다.

4. 개발 속도가 향상된다.

5. 상속을 통한 장점이 극대화된다.


가비지 컬렉션

: 시스템에서 더 이상 사용하지 않는 동적 할당된 메모리 블럭을 찾아,

자동으로 다시 사용 가능한 자원으로 회수하는 것.


Primitive type(기본형) vs Reference type(참조형)

-> Primitive type : 스택 메모리 영역인 변수에 값 자체를 저장하는 것

    [ 정수형 : byte, short, int, long / 실수형 : float, double / 문자형 : char / 논리형 : boolean ]

-> Reference type : 메모리 상에 객체가 있는 위치에 저장하는 것

    [ Class, Interface, Array ]


Object

: OOP에서 데이터 변수와 그 데이터에 관련되는 동작, 절차 방법 기능을 모두 포함한 개념


Overloading vs Overriding

-> Overloading : 클래스 내에 같은 이름의 메소드를 여러 개 정의하는 것

-> Overriding : 상속에서 나온 개념으로, 부모 클래스의 메소드를 하위 클래스에서 재정의하는 것


상속이란?

: 기존 클래스의 기능을 유지하면서, 추가적인 기능을 추가하여 클래스를 만들고 싶을 때 사용하는 방법


다형성이란?

: 하나의 클래스나 함수가 다양한 방식으로 동작이 가능한 것


캡슐화?

: 관련된 데이터와 메서드를 하나의 단위로 묶는 원리


Servlet

: Container가 이해할 수 있게 구성된 순수 자바 코드로만 이루어진 것


Jsp

: HTML 소스 코드 속에 자바 소스 코드가 들어가는 구조를 갖는 웹 애플리케이션 프로그래밍 기술


GET 방식 vs POST 방식

-> GET 방식 : 클라이언트에서 서버로 데이터를 전달할 때, 주소 뒤에 '주소명'과 '값'이 결합된 스트링 형태로 전달

-> POST 방식 : 일정 크기 이상의 데이터를 보내야 할때


-> 차이

: GET은 주로 웹 브라우저가 웹 서버에 데이터를 요청할때 사용하고,

 POST는 웹 브라우저가 웹 서버에 데이터를 전달하기 위해 사용함


RESTful

: 해당 URL만 보더라도, 바로 어떤 작업을 하는지를 알 수 있도록 하나의 데이터는 하나의 URL을 갖도록 작업하는 방식


MVC 패턴

: Application을 Model, View, Controller 영역을 구분하여 개발하며, 영역간의 결합도를 최소화한 디자인 패턴

-> Model : Application에 비즈니스 로직과 사용되는 데이터를 다루는 영역

-> View : 사용자 인터페이스 내의 구성 요소들을 표현하는 것 (사용자에게 보여지는 화면)

-> Controller : Model과 View를 연결하고 있는 클래스를 대표하며, 클래스들 간 정보 교환에 사용됨


Interface - 메소드 선언만 가능

: 추상 클래스로 오직 추상 메소드와 상수만을 멤버로 갖는다.

[ Implements 키워드 사용 ]


Abstract

: 추상 메소드를 하나 이상 가진 클래스


Call by Reference

: 매개 변수의 원래 주소에 값을 저장하는 방식


Call by Value

: 인수로 기본 데이터형을 사용하고, 주어진 값을 복사하여 처리하는 방식


접근 제한자

- Public : 접근 제한 없음

- Protected : 같은 패키지 내에서, 다른 패키지에서는 상속받아 자식 클래스에서 접근 가능

- Default : 같은 패키지 내에서만 접근 가능

- Private : 같은 클래스 내에서만 접근 가능


정렬

-> 선택 정렬 : 주어진 리스트에 최소값을 찾아 맨 앞에 위치한 값과 교체하며 리스트를 반복해 교체하는 알고리즘

-> 삽입 정렬 : 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘

-> 버블 정렬 : 매번 연속된 두 개 인덱스를 비교하여, 정한 기준의 값을 뒤로 넘겨 정렬하는 알고리즘


인스턴스

: 클래스로부터 객체를 만드는 과정을 인스터화, 클래스로부터 만들어진 객체


클래스

: 객체를 프로그램적으로 만들기 위한 설계 코드 _ 객체들의 집합


객체

: 소프트웨어에 구현할 대상


인덱스란?

: 검색 속도를 높이기 위해 사용하는 기술 ( 찾고자 하는 페이지를 바로 찾을 수 있는 방식 )


세마포어

: 하나의 자원에 두 개 이상의 프로세스 혹은 쓰레드가 접근하는 경우 문제가 발생하는데,

 이를 제어하기 위해 프로세스에서 사용하는 것


교착상태

: 두 개 이상의 프로세스나 쓰레드가 서로 자원을 기다리면서 무한히 기다리게 되는 상태

 

-> 해결 방법

1. 상호 배제

2. 점유와 대기

3. 비선점

4. 환형 대기


equals

: 두개 String에 값만을 비교해서 같으면 true, 다르면 false

 

indexOf

: 지정한 문자가 문자열에 몇번째에 있는지 반환

 

length

: 문자열의 길이 반환

 

split

: 지정한 문자로 문자열로 나눌 수 있음 -> 배열로 반환됨

 

substring

: 문자열에 지정한 범위에 속하는 문자열 반환

 

toString

: 문자열을 그대로 반환

 

toLowerCase

: 문자열에 대문자를 소문자로 반환

 

toUpperCase

: 문자열에 소문자를 대문자로 반환

 

trim

: 문자열에 공백을 없애줌

 

valueOf

: 지정한 개체의 원시값을 반환

 

charAt

: 지정한 index번째에 문자를 반환

 

 

'Study > JAVA' 카테고리의 다른 글

Range-based for  (0) 2021.02.16
var  (0) 2021.02.16
bit operator  (0) 2021.02.16
2-D Array  (0) 2021.02.16
1 - D Array  (0) 2021.02.15