객체지향이란?
프로그래밍에 필요한 데이터를 추상화시켜 객체를 만들고 만들어진 객체들 간의 상호작용을 통해 로직을 구성하는 방법
객체 지향 프로그램의 장/단점
장점
-코드 재사용 용이 : 남이 만든 클래스를 가져와서 이용할 수 있고 상속을 통해 확장해서 사용할 수 있다.
-유지보수가 쉬움 : 절차 지향 프로그래밍과 달리 객체 지향 프로그래밍은 클래스안에 메서드나 맴버변수로 존재하기 때문에 해당 부분만 수정하면 된다.
-대형 프로젝트에 적합 : 클래스 단위로 모듈화시켜서 개발할 수 있으므로 업무 분담하기 편하다.
단점
처리속도가 느리다.
객체가 많아지면 용량이 커진다.
설계시 많은 시간과 노력이 필요
JVM이란?
Java Virtual Machine. 자바 프로그램을 운영체제, 하드웨어 상관없이 실행할 수 있게 해주고, 프로그램 메모리를 관리하고 최적화해준다. 자바 바이트 코드(.class)를 운영체제에 맞는 시스템 명령어로 번역하여 실행
컴파일이란?
컴파일은 사람이 이해하는 언어를 기계어로 바꾸는 과정이다. 다시 말해 원시코드에서 목적 코드로 바꾸는 과정이다. 자바에서의 컴파일은 자바 소스코드(.java)를 읽어 자바 바이트코드(.class)로 변경하는 것이다. javac(자바 컴파일러)를 통해 컴파일한다.
가비지 컬렉션이란?
Heap 메모리에 할당되었으나 참조되지 않는 대상을 탐지하여 메모리에서 해제하는 JVM의 기능
자바 메모리 영역
Class
-static 변수, 전역변수, 코드에서 사용하는 클래스 정보들이 올라간다. 코드에서 사용하는 클래스들을 로더가 읽고 클래스 별로 분류해서 저장된다.
Stack
-heap 영역에 생성된 Object 타입의 데이터들에 대한 참조를 위한 값들이 할당된다.
-8가지 원시타입 (byte,short,char,int,double,long,float,boolean)의 데이터들이 할당된다. 이때, 실제 값을 stack에 직접 저장하게 된다.
heap
-모든 메모리 중 stack에 있는 데이터를 제외한 부분
-모든 Object(Integer,String,ArrayList...)은 heap 영역에 생성
배열 안 중복제거를 위한 방법은?
중복을 제거하는 Set의 성질을 이용하여 중복을 제거한다.
전역변수와 지역변수의 차이점은?
전역변수
-함수 밖에 선언하여 클래스 전체에서 사용이 가능한 변수.
지역변수
-함수 안에서 선언하며 해당 메소드가 호출되고 종료되면 다시 사용할 수 없다.
Array(배열) vs List의 차이점
Array
-인덱스가 존재
-선언과 동시에 크기를 정해야 한다. (정적)
List
-크기가 동적이다.
인터페이스란?
인터페이스는 모든 메서드가 추상 메서드로 이루어진 클래스이다. 특징으로는 따로 abstract를 쓰지 않아도 모두 추상 메서드로 정의가 된다.
JDBC란?
자바에서 데이터베이스를 접속할 수 있도록 해주는 자바 API
제너릭이란?
데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입을들 가질 수 있도록 하는 방법
박싱과 언박싱이란?
박싱
-원시형 -> Wrapper Class
언박싱
-Wrapper Class -> 원시형
접근제어자
-private : 해당 클래스만 가능
-default : 패키지 안에서 가능
-protected : 같은 패키지 클래스/ 클래스를 상속받으면 사용가능
-public : 어떤 클래스에서라도 접근 가능
'Etc. > Job Preparation' 카테고리의 다른 글
Technical Interview in CS (0) | 2022.07.06 |
---|---|
Technical Interview in Spring (0) | 2022.07.06 |