Java란
Java는 객체지향 프로그래밍 언어로 기본 자료형들을 제외한 나머지 요소들이 모두 객체로 표현되고,
객체지향 개념의 특징인 캡슐화, 상속, 다형성이 잘 적용된 언어입니다.
Java의 장단점
Java의 장점
JVM 위에서 동작하기 때문에 운영체제에 독립적이고, 가비지 컬렉터를 통한 자동적인 메모리 관리가 가능합니다.
Java의 단점
JVM 위에서 동작하기 때문에 실행속도가 상대적으로 느리며, 다중 상속이나 타입에 엄격하고 제약이 많습니다.
JVM이란
JVM은 자바가상머신으로 스택 기반으로 동작하며, 자바 바이트 코드를 각 운영체제에 맞게 해석해주는 역할을 합니다.
또한 가비지 컬렉션을 통해 자동적인 메모리 관리를 해줍니다.
Java 컴파일 과정
- Java 파일 생성
- build 실행
- 자바 컴파일러의 javac의 명령어를 통해 바이트 코드 생성
- 클래스 로더를 통해 JVM의 메모리 내로 로드시킨다.
- 실행엔진 을 통해 각 운영체제에 맞는 기계어로 번역해준다.
Java의 원시 타입 종류와 크기
종류 | 크기 | |
정수형 | byte | 1 byte |
short | 2 byte | |
int | 4 byte | |
long | 8 byte | |
실수형 | float | 4 byte |
double | 8byte | |
문자형 | char | 2 byte |
논리형 | boolean | 1 byte |
객체지향 프로그래밍(OOP)이란
객체지향 프로그래밍이란 프로그램을 구현하는데 있어 필요한 객체들을 파악하여 상태와 행위를 가진 객체들을 만들고
각각의 객체들의 역할이 무엇인지를 정의하여 객체들간의 상호작용을 통해 프로그램을 만드는는 것을 말합니다.
즉, 기능이 아닌 객체 중심으로, 특징으로는 추상화, 캡슐화, 상속, 다형성 등이 있습니다.
또한 모듈을 재사용함으로써 확장과 유지보수에 용이합니다.
불변객체란
객체가 생성 이후 내부의 상태가 변하지 않는 객체를 불변객체라고 부릅니다.
Java에서는 필드가 원시타입인 경우에 final 키워드를 이용하여 불변객체를 만들 수 있습니다.
try-with-resources란
try-catch-finally의 문제점을 보완하기 위해 나온 개념입니다.
try(..) 안에 자원객체를 전달하면 try문이 종료될 때 자동으로 자원 해제 시켜주는 기능입니다.
따로 finally문이나 모든 catch문에서 종료시키지 않아도 된다는 장점이 있습니다.
오버라이딩과 오버로딩이란
오버라이딩
상위객체에 정의된 메서드를 하위 객체에서 재정의 하는 것을 말합니다.
오버로딩
변수의 타입이나 개수를 다르게 하여 동일한 이름의 메서드를 여러 개 정의하는 것을 말합니다.
참고 블로그
신입 개발자 기술면접 질문 정리 - 자바
💡 Java의 특징을 설명해주세요.Java는 객체지향 프로그래밍 언어입니다. 기본 자료형을 제외한 모든 요소들이 객체로 표현되고, 객체 지향 개념의 특징인 캡슐화, 상속, 다형성이 잘 적용된 언어
dev-coco.tistory.com