티스토리 뷰

LANGUAGE/JAVA

[JAVA] 기본개념

찰떡쿠키부스트 2017. 11. 14. 16:07

 

※ 참고로 이 블로그에 있는 모든글은 내가 공부한 것들을 정리해놓고 다시 보기 위한것이다.

   즉, 강의나 설명하는 글이 아니기때문에 정보가 빈약하거나 잘못됐을 가능성이 높다.

시작전 참고하면 좋은 글들

JAVA 위키백과

https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94_(%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D_%EC%96%B8%EC%96%B4)

 

JAVA 나무위키

https://namu.wiki/w/Java

 

 

 

JAVA

프로그래밍 언어란?

 

컴퓨터는 0,1로만 되어있어서 영어나 한글로 말해도 못알아듣는다(기계어)

 

사람도 마찬가지 컴퓨터가 나에게 '0100011' 이라고 신호를 보내도 뭔말인지 알아듣기 힘들다

 

그래서 둘이 대화할수있게 번역해주는게 프로그래밍 언어다!

 

COMPILE(컴파일)

즉, 컴퓨터랑 사람이랑 대화할수있게 프로그래밍 언어로 번역하는것을 '컴파일한다' 라고한다

 

대화(?)과정

소스파일(t1.java)---------------->코드파일(t1.class)------------> 기계어----->실행

                             컴파일(javac)                           java(jvm)

 

 

왜 JAVA인가?

 

 

1.자바는 플랫폼에 독립적인 언어이다.

위에서 적은 대화(?)과정을 C언어랑 비교

C언어

t1.c → 컴파일(Compile) → t1.obj → 빌드(Build) → t1.exe

JAVA

t1.java → 컴파일 → t1.class → interpreter(JVM) → 해석 → 실행     

 

   C/C++ 같은 언어는 소스 코드를 머신 코드로 컴파일하여 링크하는 방식이기때문에 플랫폼에 종속적이다.

즉,  윈도우에서 빌드한 프로그램을 그대로 리눅스나 mac OS에서 실행이 안된다(물론 하는방법도 있다.)

 

JAVA는 플랫폼에 맞는 JVM만 설치되어 있다면 문제 없이 동작한다.

즉, 플랫폼 종속적이 아니고 가상 머신 종속적이다.

 

2. 객체 지향 언어이다.

객체 지향 개념 참고 자료 : https://namu.wiki/w/%EA%B0%9D%EC%B2%B4%20%EC%A7%80%ED%96%A5%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D

 

간단하게 설명하면 기본 C언어 같은 절차적 언어들은 어떤 함수가 있고 데이터들이 그 함수에 들어갔다 나와서 가공되는 개념인데,

 

이게 만드는 프로그램이 복잡해지고 커질수록 문제가 생겼을때 해결하기가 힘들어지고 GUI 가 중요해지면서

 

하나의 변수에도 현재 상태에 따라 함수가 실행해야되는 동작 방식이 달라지는 등 한계점을 보였다.

 

그래서 큰 문제들을 작게 쪼개는게 아닌 작은 문제들을 해결할 수 있는 객체들을 만든 뒤, 이 객체들을 조합해서 큰 문제를 해결 할

 

수 있고 특정 이벤트가 일어났을 때 실행되어야 하는 기능들을 등록한 다음,

 

운영체제나 응용프로그램이 실제로 해당 이벤트가 발생했을 때 해당 이벤트에 등록된

 

이벤트 핸들러/콜백을 주욱 실행하기만 하면 되는 구조가 가능한 객체 지향 언어가 각광받기 시작했다.

 

객체 지향 개념을 더 자세히 얘기하려면 캡슐화,상속,다형성 등을 더 알아야되므로

 

여기선 대충 이런 느낌이구나 까지만 정리하면 될 것 같다.

 

'LANGUAGE > JAVA' 카테고리의 다른 글

[JAVA] 생성자  (0) 2017.11.15
[JAVA] 배열  (0) 2017.11.15
[JAVA] 메서드(Method)  (0) 2017.11.15
[JAVA] 조건문과 반복문  (0) 2017.11.14
[JAVA] 변수와 연산자  (0) 2017.11.14
댓글