오늘은 유튜브 남궁성의 정석코딩에서 자바의 정석 기초에 대한 영상을 보고 내용을 정리해 보려고 한다.
지금은 아무것도 모르는 제로베이스이지만 열심히 공부해서 한달 뒤엔 자바란 무엇인지 정도는 설명 할 수 있는 수준이 되었으면!
[자바란?]
-자바는 컴퓨터 프로그래밍언어로 컴퓨터 프로그램을 만드는 언어다.
-자바는 단순히 프로그래밍 언어가 아니라 실행환경(JRE), 개발도구(JDK), 라이브러리(API)를 제공한다.
(라이브러리란 프로그램을 개발하는데 필요한 도구를 미리 만들어 놓은것을 말한다. 프로그램을 만드는데 쓰이는걸 다른사람들이 만 들어놓은것을 모아놓은곳)
-자바로 만들 수 있는 것 -> PC 애플리케이션, 웹 애플리케이션(웹사이트), 모바일 애플리케이션(안드로이드), 빅데이터(하돕), 게임, 과학, 소형기기 등 엄청 많은 분야에서 사용하고 있는 언어다.
[왜 꼭 자바를 배워야 하는가]
-다양한 분야에서 활발하게 사용 중
-20년동안 프로그래밍언어 1,2위를 다투고있음(C언어랑 요즘은 파이썬(빅데이터, AI)이랑,,)
-배우기 쉽고 학습자료가 풍부함(20년 동안 언어 1,2위니까)
-모던 프로그래밍 언어(객체지향+함수형)
-취업에 유라함(실무에서 제일 많이 사용)
[자바의 역사]
JDK(자바개발도구) : 자바는 1996년에 처음 발표됨
J2SE 1.2(자바투) : 1998년 자바 투가 나옴. J2SE(스탠다드에디션-가장일반적인 자바), J2ME(마이크로 에디션-모바일이나 소형기기), J2EE(엔터프라자에디션-대기업에서 사용하는 버전)
-J2SE 5.0 (자바5.0) : 2004년 이때 중요한 기능들이 많이 추가됐다.
-JAVA SE 8 : 2014 이때도 중요한 기능들이 많이 추가됌. 3버전 올라갈때마다 큰 변화가 있었음(5.0, 8)
-JAVA SE 13 : 2019 최신 버전. 자바 8 이후부터는 6개월마다 한번씩 발표함
회사에서는 자바 8 이상 쓰는곳 많지 않음.(안전성떄문에) 그래서 자바 8로 공부하면 좋다.
[자바의 특징]
-배우기 쉬운 객체지향 언어이다. (C++, JAVA, Python, JS 등)
객체지향 언어란 프로그래밍 언어에 객체지향 개념을 도입한것이다.
객체지향 개념은 언어들에 공통적으로 사용되는것이기 때문에 어떤 언어 하나로 객체란 개념을 이해하면 다른 객체지향 언어들을 배우기 쉽다는 장점이 있다.
객체지향 배우려면 C++이 제일 좋지만 너무 어려움,, 파이썬은 배우기 쉽지만 객체지향 개념을 다 배우기는 어렵고 자바로 배우는게 좋다.
-자바의 정석 책에 객체지향 설명 잘 되어있음^^ 구매해서 봐야지
원래 프로그래머가 직접 메모리를 관리했는데 메모리 부족해서 프로그램 죽는일 많았음
근데 자바는 가비지컬렉터(GC)가 메모리를 직접 관리해줌
그래서 메모리 관리를 프로그래머가 일일이 하지 않아도 되서 편리함
멀티쓰레드란 하나의 프로그램에서 동시에 여러작업을 할 수 있게 해주는 것
ex) 채팅하면서 파일 주고 받을 수 있는것
요즘 프로그램은 반드시 갖추고 있어야 하는 기능이기 때문에 프로그래밍 언어라면 반드시 갖추고 있어야 하는 특징
라이브러리는 프로그램을 개발하는데 자주 쓰이는 중요한 기능들을 미리 만들어서 제공하는것
자바에서 제공하는 라이브러리가 다양하고 풍부하기 때문에 원하는 프로그램을 적은 노력으로 쉽게 개발 할 수 있다.
일반적으로 프로그램을 작성하면 특정 운영체제에서만 실행이 가능하다.
자바로 작성된 프로그램은 여러 운영체제에서 실행 될 수 있다.
ex-윈도우즈, OS에서 실행되는 프로그램을 작성하면 리눅스에서도 시행 된다.
운영체제에 독립적이지 않으면 윈도우, os 에서 실행되는 프로그램을 작성했을 때 리눅스에서 사용하려면 반드시 수정해야 함
[자바 가상 머신(JVM)]
자바에서 작성된 프로그램이 수정되지 않고 여러 운영체제에서 실행 가능한 이유는 자바 가상 머신(JVM) 때문이다.
JVM이란 자바 프로그램이 실행되는 가상 컴퓨터. JAVA + vm(=가상컴퓨터=실제컴퓨터가 아닌 소프트웨어로 만들어진 컴퓨터)
한번 작성하면 어디서든 실행된다. (Write once, run anywhere)
-JVM = 자바 버츄얼 머신
-일반적인 에플리케이션은 OS 운영체제 위에서 실행된다.
{윈도우용 애플리케이션 - OS(Window) - 컴퓨터(하드웨어)}
{OSX용 애플리케이션 - OS(Macintosh) - 컴퓨터(하드웨어)}
{Linux용 애플리케이션 - OS(Linux) - 컴퓨터(하드웨어)}
자바 프로그램은 JVM에서 실행되기 때문에 OS와 독립적일수 있다.
{자바 애플리케이션 - JVM(Window용, OSX용, Linux용)- OS(Widow, OSX, Linux) - 컴퓨터(하드웨어)}
[출처] 자바의 정석 1|작성자 namni