자바는 무엇일까.
자바는 썬 마이크로시스템즈(Sun Microsystems)가 1995년에 얼씨구절씨구...
이런 게 중요한가?
뇌에 집어넣을 수 있는 정보의 양은 한정되어있다.
핵심만 딱딱 집어넣도록 하자.
1. 어디서 많이 본 문법 ... ?
C와 C++을 먼저 배우고 자바를 접해본 사람이라면 뭔가 익숙한 언어처럼 느껴질 것이다.
맞다. 자바는 C++과 유사하다.
포인터를 쓰지 않을 뿐. 메모리 관리가 쉽다.
2. 객체지향 언어
대표적인 절차지향 언어는 C다.
여기서 클래스가 추가되고 C++ 이 객체지향.. 블라블라...
자바는 여러 클래스로 하나의 프로그램을 만든다.
클래스와 객체로 프로그램을 만드는 언어를 객체지향 언어라고 한다.
클래스와 객체의 개념과 절차지향 언어와 객체지향 언어의 차이에 대한 것은
추후에 포스팅해서 이 게시글에 링크를 달겠다.
3. 자바는 독립적이다!
특정 플랫폼에서 프로그램을 만들었다고 다른 곳에서 실행이 가능하다?
자바는 가능하다.
JVM (Java Virtual Machine)과 Java Bytecode 덕분이다.
엥? JVM(자바 가상 머신)은 또 뭐냐?
먼저 자바 프로그램이 어떻게 소스 코드에서
어떤 과정을 거쳐서 실행이 되는지를 알아야 한다.
① 프로그래머가 자바 소스 코드(Hello.java)를 작성한다.
② 컴파일러(Compiler)라는 녀석이 JVM이 읽을 수 있는 자바 바이트 코드(Hello.class)를 만든다.
③ 그러면 인터프리터(Interpreter)가 바이트코드를 읽고 프로그램을 실행한다.
"Hello, World!"
위의 그림에서는 그냥 인터프리터라고 적었지만
사실 JVM 안에 인터프리터가 있다.
『JVM에 다른 건 뭐가 들어 있나요?』
클래스 로더 / 가비지 컬렉터 / JIT 컴파일러 같은 게 있지만
뭐 깊게 알고 싶으면 따로 Google 선생님한테 물어보면 되시겠다..
JVM 덕분에 여러 플랫폼에서 자바 바이트코드를 실행할 수 있지만,
각 플랫폼에 맞는 JVM을 설치해야 한다.
자바로 알고리즘 온라인 저지 사이트에서 문제를 풀어보면
자바가 꽤 느린 언어라는 것을 알 수 있다.
그 이유도 JVM이 중간에 있기 때문.
자바 개발 환경
자바를 설치하려고 할 때 JRE(Java Runtime Environment)와 JDK(Java Development Kit)
라는 단어들이 보일 것이다.
이건 또 뭐냐?
JRE는 간단히 말하면 자바를 실행할 수 있는 환경을 말하고
JDK는 자바 언어로 프로그램을 개발하는 환경을 말한다.
JDK를 설치하면 JRE는 자동으로 따라온다.
Java SE를 다운로드할 수 있는 공식 사이트로 가보자.
www.oracle.com/java/technologies/javase-downloads.html
영어가 나온다고 어질어질하면 안 된다.
프로그래머에게 있어서는 영어가 익숙한 도구가 되어야 한다.
초심자에겐 Java8 설치를 권장하는 편이다.
8부터 코드를 간결하게 해주는 람다식이 추가되었기도 하고 많이 쓰이는 버전이라 그렇다.
JDK Download를 클릭하고 각 운영체제에 맞는 JDK를 설치하면 되겠다.
자바 개발 환경만 설치하면 무엇하느냐.
IDE(Integrated Development Environments)를 설치해야 한다.
보통 이클립스나 인텔리제이를 많이 사용한다.
인텔리제이는 학생이라면 Ultimate 버전 학생 라이선스를 얻을 수 있으니
잘 활용하도록 하자.
개인적으로 인텔리제이를 추천한다.
Eclipse Downloads | The Eclipse Foundation
The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 375 open source projects, including runtimes, tools and frameworks.
www.eclipse.org
www.jetbrains.com/ko-kr/idea/download/#section=windows
다운로드 IntelliJ IDEA: 우수성과 인체 공학이 담긴 JetBrains Java IDE
최신 버전 다운로드: IntelliJ IDEA (Windows, macOS, Linux)
www.jetbrains.com
'Study > Java' 카테고리의 다른 글
[Java] Java로 풀면 KMP를 써야하는 브론즈 문제가 있다? (0) | 2024.08.18 |
---|---|
[Java] 컬렉션 시간 복잡도 (0) | 2023.05.04 |
[Eclipse] 삼성 코딩테스트를 위한 연습 환경 만들기 (+단축키) (7) | 2023.04.04 |
[IntelliJ] OpenJDK Java 11과 spring Mac M1 초기 환경 세팅 (2) | 2023.02.28 |
IntelliJ 학생 라이센스 갱신하기 (0) | 2023.01.06 |