반응형
면접 볼때 받았던 질문인데 정확하게 답을 알수 없어서 한번 책을 보면서 조사해봤다
그전에 프로그래밍 언어가 어떤 언어 인지 부터 알아봐야한다
일반적으로 프로그래밍 언어라고 하면 고급 언어를 말하는데, 대표적으로 프로그래밍 언어인 C , C++,JAVA 는 모두 고급언에 속한다. 이언어들로 작성된 내용을 소스 라고 부르고 이소스는 커파일러 라는 소프트웨어에 의해 기계어로 변환된 후 컴퓨터에서 실행할 수 있게 된다.
우리가 은히 말하는 프로그램이란 컴퓨터에서 특정 목적을 수행 하기 위해 프로그래밍 언어로 작성된 소스를 기계어로 번역한것이다.
자바란?
1999년도부터 인터넷이 횔성화되면서 웹 애플리케이션 구축용 언어로 자바가 급부상 했다. 그 이유는 기업체 및 공공기관의 다양한 서버 운영 체제에서 단 한 번의 작성으로 모든 곳에서 실행 가능한 언어는 자바뿐이었기 때문이다.
자바의 특징은 이식성이 높은 언어이다.
- 자바언어로 개발된 프로그램은 소스 파일은 다시 수정하지 않아도 자바 실행 환경(JRE : Java RuntimeEnvironment)이 설치되어 있는 모든 운영체제 에서 실행 가능하다. 따라서 자바 언어는 이식성이 높은 프로그래밍 언어라고 볼 수 있다.
- 객체 지향 언어이다. 프로 그램을 개발하는 기법으로 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법을 객체지향 언어(OOP)라고 한다 이때 사용되는 언어를 객체 지향언어라고 한다.
- 함수적 스타일 코딩을 지원한다. 자바는 함수적 프로그래밍을 위해 람다식을 자바 8부터 지원하게 된다. 람가식를 사용하면 컬렉션의 요소를 필터링 매핑 집계 처리하는데 쉬워지고 코드가 매우 간결해진다.
- 메모리를 자동으로 관리한다 메모리에 생성된 객체를 제거 하기위애 개발자가 직접 코드를 작성해야 했지만 자바는 쓰레기 수집기(GarbageCollector)를 실행시켜 자동적으로 사용하지 않는 객체를 제거시켜준다. 따라서 개발자는 메모리 관리의 수고스러움을 덜고, 핵심기능 코드 작성에 집중할수 있다.
- 다양한 어플리케이션을 개발할수 있다. 운영 체제 상관업이 실행되는 프로그램을 만들수 있다.
- 멀티스레드를 쉽게 구현할수 있다. 자바는 스레드 생성 및 제어와 관련된 라이브러리 API를 제공하고 있기 때문에 실행되는 운영체제에 상관없이 멀티 스레드를 쉽게 구현할 수 있다.
- 동적로딩을 지원한다. 객체가 필요한 시점에만 클래스를 동적으로 로딩해서 객체를 생성한다. 개발 완료후 유지보수가 발생허다라도 해당 클래스만 수정하면 되므로 전체 애플리케이션을 다시 컴파일할 필요가 없다.
자바 가상 기계(JVM)
- 자바는 완전한 기계어가 아닌 중간 단계의 바이트코드이기 때문에 이것을 해석하고 실행할 수 있는 가상 운영체제가 필요하다. 이것이 자바 가상기계(JVM: Java Virtual Machine)이다 운영체제를 대신해서 자바 프로그램을 실행하는 가상의 운영체제 역활을 한다. 운영체제 별로 프로그램 실행과 관리가 다르기 떄문에 JVM을 두어 자바 프로그램이 여러 운영체제에서 동일한 실행 결과가 나오도록 설게한것이다.
반응형
'JAVA' 카테고리의 다른 글
람다식(3) (0) | 2020.11.01 |
---|---|
람다식(2) (0) | 2020.11.01 |
람다식이란? (0) | 2020.11.01 |
DAO, DTO, VO (0) | 2020.11.01 |
JAVA(데이터타입) (0) | 2020.10.31 |