JAVA

[ JAVA ] - 기본 개념

algml0703 2022. 7. 27. 23:16
반응형

JAVA

자바는 객체 지향 프로그래밍 언어로 자바 가상 머신 (JVM: Java Virtual Machine)을 통해 실행 가능하다.

* 자바 애플릿 (Java Applet) : 웹에서도 자바를 실행가능하게 해주는 도구로, 현재는 보안상의 이유로 사용이 권장되지 않는다.

자바 특징

  • 자바는 JAM을 통해 실행되어 운영체제와 상관없이 독립적으로 실행되며 같은 결과를 출력한다.
  • 가비지 컬렉터를 통해 자동 메모리 관리를 지원하여 준다.
  • 자바는 상속성, 캡슐화, 다형성의 특징을 가지고 있는 객체 지향언어이다.
  • 자바는 멀티스레드를 지원한다.

* 이클립스 : 통합 개발 환경(IDE: integrated development environment)을 제공하는 대표적인 자바 개발도구이다.

* JSP ( Java Server Page ) : html에서 java를 사용하여 동적인 웹페이지를 만들 수 있게 해주는 도구이다. html페이지 내의 자바 코드는 자바 서블릿으로 변환된다. 

* 자바 서블릿 : 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 의미한다.

~ JSP는 html 내부에 자바 코드를 포함하며, 반면에 서블릿을 자바 코드 안에 html 코드를 포함하고 있다.

* JDK(Java developmenet kit ) : 자바 도구들과 실행환경(JRE: Java Runtime Environment)


자바 기본 명령어

> java [파일명] 
자바 프로그램 실행 시 명령어
> javac [파일명]
자바 파일 컴파일 시 사용하는 명령어 (즉 .java로 된 소스코드를 .class 파일로 변환해주는 명령어)

예시)

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello world");
    }
}

위와 같이 코드를 작성해준 후 터미널에 >javac HelloWorld.java 를 입력하면 해당 파일을 컴파일하여 준다. 그런 후에 java HelloWorld입력 시 컴파일된 파일을 실행하여 Hello world를 출력하여 준다.


규칙

파일명과 클래스명은 일치해야 한다.
클래스명은 대문자로 시작해야 한다.
패키지명은 소문자로 생성해야한다.

명령어

command + D : 한줄 지워준다.


JAVA SPRING

node.js의 express와 같이 java에서 서버용으로 사용하는 프레임워크이다.

자바스크립트와 비교하여 보면

  • 자바스크립트는 동적타입언어이고, 자바는 정적타입언어이다. 자바스크립트는 사실상 타입을 선언하는 경우가 없다.
  • 자바스크립는 인터프리터언어이고, 자바는 컴파일 언어이다.
    • 인터프리터 언어 : 소스코드를 한 줄씩 번역한다. 즉 컴퓨터가 이해할 수 있도록 처리해주면서, 처리가 끝나면 코드를 실행시키는 방식이다. EX) 소스코드 작성 -> 실행 ( 번역 + 실행 )
    • 컴파일 언어 : 소스코드 전체를 한 번에 컴퓨터가 이해할 수 있도록 처리해준 후 ( 컴파일 과정 ), 별도로 컴파일 된 파일 (즉 컴퓨터가 이해할 수 있도록 변환된 코드 )을 실행하는 방식이다.  EX) 소스코드 작성 → 빌드(번역) → 빌드된 파일 실행

인터프리터 언어는 한 줄씩 바꾸어 가면 코드를 실행하여 편리할 수 있으나, 컴파일 언어는 한 번 컴파일 하고 나면, 실행시에는 인터프리터 언어보다 보통 더욱 빠른 실행이 가능하다.

자바의 경우 .java로 된 소스코드를 컴파일러를 통해 바이트코드로 변환된 .class의 확장자명을 가지는 새로운 파일을 생성하고, 생성된 .class 파일은 다시 런타임 환경인 JVM(자바가상머신: Java Virtual Machine) 을 통해 기계어로 변환된 후 메모리에 적재되어 운영체제에 의해 실행된다.

파일이 컴파일되면 bin 폴더 안에 클래스 파일이 생성되며, 해당 클래스 파일을 통해 프로그램이 실행된다.


출처

http://www.tcpschool.com/java/java_intro_programming

반응형