프로그래밍/Java
Java?
코드몬스터
2022. 9. 23. 14:03
728x90
💡 본 내용은 생활코딩의 Java 입문 수업을 듣고 정리한 내용입니다.
자바란?
- 객체 지향적(Object-oriented)
- 자바는 숫자(int, float, long 등)나 논리값(true, false)을 제외한 거의 모든 것이 객체로 구성되어 있다.
- 실제로 자바는 Object 클래스에서 모든 클래스를 파생한다.
- 인터프리터 언어(Interpreted)
- 정확하게 말하면 컴파일 언어인 동시에 인터프리터 언어이다.
- ★먼저 텍스트 소스를 컴파일하여 2진 파일(클래스 파일)로 만든 다음 자바 런타임이 클래스 파일을 인터프리트하면서 실행한다.
- 시스템에 무관한 2진 파일을 만듬으로써 자바는 컴파일 언어에 가까운 속도와 시스템 독립성을 동시에 얻을 수 있었다.
- 강력하다(robust)
- 자바는 포인터 연산을 지원하지 않는다. 잘못된 주소를 가르킬 가능성을 사전에 없애 버렸다.
- ★ 리소스 관리(garbage collection)를 하는데 사용이 끝난 리소스를 시스템이 메모리에서 삭제하는 방식을 채택하고 있어 메모리 누출에 대한 고민을 프로그래머가 할 필요가 없다.
- 안전하다(Secured)
- 자바는 프로그램 작성 시 자료형 타입에 굉장히 민감하다
- 마치 코딩할 때 잔소리꾼이 끊임없이 따라다니며 잘못된 코드를 작성하지 않게끔 도와주는 역할을 한다. 그래서 자바는 일단 컴파일만 되면 실행 시 오류가 발생하는 경우가 다른언어에 비해 현저히 낮다
- 플랫폼 독립적이다(Platform independent)
- 자바 런타임이 설치된 시스템에서는 어디서나 자바 프로그램(이진 코드(클래스) 파일)을 실행할 수 있다.
- ★ 자바 프로그램이 Virtual Machine에 의해서 실행되기 때문 os에 상관없이 어디서든 돌려볼 수 있다.
- 멀티 쓰레딩을 지원한다(Multithreaded)
- 하나의 프로그램 단위가 동일한 쓰레드를 동시에 수행할 수 있다.
- ★ 멀티 프로세서 하드웨어를 지원하도록 설계되었으므로 멀티 CPU 시스템에서 높은 효율을 낼 수 있다.
- 동적이다(Dynamic)
- 자바 인터페이스를 이용하면 하나의 모듈을 갱신할 때 다른 모듈을 모두 갱신할 필요가 없다.
- 이것은 인터페이스가 모든 인스턴스 변수와 도구의 실행문을 배제한 채 객체 간의 상호 작용을 정의하기 때문이다.
자바 설치
- Java SE(Java Platform, Standard Editioin)
- 자바라는 언어가 어떠한 문법적인 구성을 가졌는지와 같은 것들을 정의하고 있다.
- 구체적인 소프트웨어가 아니고 소프트웨어의 설게도라고 할 수 있다.
- JDK(Java Development Kit)
- Java 프로그램을 실행하면 Java 코드를 컴파일하는 컴파일러와 개발에 필용한 각종 도구 그리고 JRE가 포함되어 있다.
- 개발자를 위한 자바 버전
- JRE(Java Runtime Environment)
- 자바가 실제로 동작하는데 필요한 JVM, 라이브러리, 각종 파일들이 포함되어 있다.
- 자바로 만들어진 프로그램을 구동하려고 한다면 이것을 설치한다.
- 일반인을 위한 자바 버전
- JVM(Java Virtual Machine)
- 자바가 실제로 구동하는 환경
- 자바로 만들어진 소프트에어는JVM 이라는 가상화된 환경에서 구동된다.
- 하드웨어나 운영체제에 따라서 달라질 수 있는 호환성의 문제는 운영체제 버전에 따라서 만들어진 JVM이 알아서한다.
- 즉, 어떤 환경에서도 실행할 수 있는 것이 바로 JVM의 역할
설치 방법
- Java 17
- Java 17 LTS(Long Term Support) is the latest long-term support release for the Java SE platform
- 가장 안정적인 버전
- Java 19
- 최신 버전으로 버그 등을 발견할 수 있다.
- 설치 사이트
- 설치 순서
자바프로그램 동작