ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] Java 시작하기
    Language/Java 2019. 9. 29. 16:32

     

     

    자바는 썬 마이크로시스템즈에서 개발해 1995년 발표된 객체지향 프로그래밍 언어입니다.

    자바는 객체지향 프로그래밍 언어의 대표적인 예로, 절차 지향 프로그래밍 언어인 C언어와 비교되곤 합니다.

    그렇다면 객체지향은 무엇이고 절차지향과는 어떤 차이가 있을까요?

     

    객체지향 언어

     

    우선, 절차지향이란 작성된 코드가 위에서 아래로 순차적으로 진행됨을 의미합니다.

    어떠한 프로그램을 작성할 때, 해당 프로그램의 기능과 그 순서에 중점을 두고 코드를 작성하게 됩니다.

     

    이는 컴퓨터의 작업 처리 순서와 유사한 방식으로 이루어지기 때문에 비교적 빠르게 실행을 처리할 수 있다는 장점이 있습니다. 하지만 이러한 장점은 그리 오래가지 않았습니다. 소프트웨어 기술의 발달 속도가 가속화되면서 하드웨어 기술의 발달 속도를 뛰어넘게 되고, 소프트웨어 기술로 하드웨어 기술의 약점을 보완하는 쪽으로 발전되었습니다. 이러한 과정에 등장한 것이 바로 객체지향 언어입니다.

     

    객체지향은 실제 세계를 모델링하여 정의한 객체를 중심으로 프로그램을 작성하는 기법입니다.

    예를 들어, 컴퓨터의 동작을 객체지향의 관점으로 정리해보겠습니다.

     

    컴퓨터가 모니터, 마우스, 키보드로 구성된다고 했을 때, 각각의 부품을 객체로 생성합니다. 그리고 다음과 같이 각각의 속성(변수)과 기능(메소드)를 정의하여 필요할 때, 해당 객체를 생성해서 사용하는 식으로 프로그램을 작성합니다.

    class Monitor{
    	boolean power;
    	String output;
    	public String print(Input input){  // 모니터에 데이터 출력
    	...
    	return String;
        }
     }
     
     class Mouse{
     	int ver;
    	int hor;
    	public Mouse move(){  // 마우스 움직임
    	...
    	return Mouse;
        }
     }
    
    class Keyboard{
    	String input;
    	public String input(){  // 키보드 입력
    	...
    	return String;
        }
     }

     

    JVM(Java Virtual Machine)

     

    자바의 또다른 특징 중 하나는 바로 OS에 독립적이라는 것입니다.

    예를 들어, Windows에서 작성된 자바 프로그램이 어떤 OS 위에서 돌아가느냐에 구애받지 않는다는 뜻인데요, 이를 가능하게 하는 것은 바로 JVM(자바 가상 머신 / Java Virtual Machine)입니다.

     

     

    Java PlatForm 구조

     

    위에 보시는 그림과 같이 자바 프로그램은 JVM을 통해 하드웨어에 올라가게 됩니다. 이러한 과정에서 JVM이 작성된 자바 코드를 각 OS에 맞게 변환해주기 때문에 개발자는 OS를 고려하지 않고 프로그래밍을 할 수 있는 것입니다.

    이를 바탕으로 자바 코드를 작성하고 실행되는 과정을 살펴보면 다음과 같습니다.

     

     

    자바 실행 순서

     

    개발자에 의해 작성된 Java파일은 javac.exe파일에 의해 컴파일 됩니다. 컴파일러는 .java파일을 .class파일로 만들어주고, 이 class파일이 있어야 해당 프로그램을 실행할 수 있습니다. 컴파일이 된 후 실행 버튼을 누르면 JVM(java.exe)에 의해 class파일이 기계어로 변환되고 실행이 완료됩니다.

     

     

    이러한 자바의 기본적인 내용을 바탕으로, 환경설정부터 기본적인 문법 및 활용을 다루어보도록 하겠습니다.

    'Language > Java' 카테고리의 다른 글

    [JAVA] Static이란? / Garbage Collector  (0) 2019.10.06
    [JAVA] 접근제한자(Access Modifier)  (0) 2019.10.06
    [JAVA] Class와 객체  (0) 2019.10.05
    [JAVA] Java 환경설정 / eclipse 설치  (0) 2019.10.05
    [JAVA] Java 환경설정 / JDK 설치  (0) 2019.09.29
Designed by Tistory.