ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • (1)자바 시작하기
    프로그래밍/Java 2022. 4. 20. 09:39

    Ⅰ. 프로그래밍 언어란?


    컴퓨터가 이해할 수 있는 언어(기계어)와 사람이 이해할 수 있는 언어 사이의  다리 역할을 하는 언어

    기계어 : 0과 1로 이루어진 이진 코드 

    ex) C, C++, java 등


     

    Ⅱ. 자바의 특징


    1.이식성이 높음  :  자바 실행 환경(JRE : Java Runtime Environment)이 설치 되어 있는 모든 운영체제에서 실행 가능
    운영체제 : MS 윈도우, 리눅스, 맥  

    2.객체 지향 언어 : 프로그램을 개발하는 기법으로 부품에 해당하는 객체들을 먼저 만들고, 이를 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법.
      이때 사용되는 언어를 객체 지향 언어라고 한다.

    3. 함수적 스타일 코딩을 지원: 자바는 함수적 프로그래밍을 위해 람다식을 자바 8부터 지원한다.
      람다식을 사용하묜 컬렉션의 요소를 필터링, 매핑, 집계 처리하는데 쉬워지고, 코드가 매우간결해진다.

    4. 메모리를 자동으로 관리: 자바는 개발자가 직접 메모리에 접근할 수 없도록 설계되었으며, 메모리는 자바가 직접 관리한다. 객체 생성 시 자동적으로 메모리 영역을 찾아서 할당하고, 사용이 완료되면 Garbage Collector를 실행시켜 자동적으로 사용하지 않는 객체를 제거시켜준다.

    5.다양한 어플리케이션을 개발:
    윈도우, 리눅스, 유닉스, 맥 등 다양한 운영체제에서 실행되는 프로그램을 개발할 수 있다.
    콘솔 프로그램, 윈도우 애플리케이션, 서버용 웹 애플리케이션, 모바일용 안드로이드 앱에 이르기까지 거의 모든 곳에서 실행되는 프로그램을 개발할 수 있다.
    다양한 운영체제에서 사용할 수 있는 개발 도구와 API를 묶어 에디션 형태로 정의하고 있다.

    Java SE(Standard Edition) - 기본 에디션 - Java SE는 자바 프로그램들이 공통적으로 사용하는 JVM을 비롯해서 자바 프로그램 개발에 필수적인 도구와 라이브러리 API를 정의한다. - 클라/서버 프로그램에 상관없이 자바 프로그램을 개발하고 실행하기 위해서는 반드시 JAVA SE 구현체인 자바 개발 키트(JDK: Java Development Kit)을 설치해야 한다.

    Java EE(Enterprise Edition) - 서버용 애플리케이션 개발 에디션 - 분산 환경(네트워크, 인터넷)에서 서버용 애플리케이션을 개발하기 위한 도구 및 라이브러리 API를 정의 - 서버용 애플리케이션으로는 Servlet/JSP를 이용한 웹 애플리케이션, 분산 처리 컴포넌트인 EJB(Enterprise Java Bean), XML 웹 서비스 등이 있다.

    6.멀티 스레드(Multi-Thread)를 쉽게 구현: 자바는 스레드 생성 및 제어와 관련된 라이브러리 API를 제공하고 있기 때문에 실행되는 운영체제에 상관없이 멀티 스레드를 쉽게 구현가능하다.

    7.동적 로딩(Dynamic Loading)을 지원: 자바 어플리케이션은 여러 개의 객체가 서로 연결되어 실행되는데, 이 객체들은 클래스로 부터 생성된다.

    8.막강한 오픈소스 라이브러리가 풍부: 자바는 오픈 소스 언어이기때문에자바 프로그램에서 사용하는 라이브러리 또한 오픈소스로 넘쳐난다.
    검증된 오픈소스 라이브러리를 사용하면 개발 기간을 단축하면서 안정성이 높은 어플리케이션을 쉽게개발할수 있다. 

      Ⅲ.자바 가상 기계(JVM)

    JVM(Java Virtual Machine)
     -운영체제는 자바 프로그램을 바로 실행할 수 없다.
    자바 프로그램은 완전한 기계어가 아닌 중간 단계의 바이트 코드이기 때문이다.
    이를 해석하고 실행할 수 있는 가상의 운영체제가 필요.
    JVM은 실 운영체제를 대신해서 자바 프로그램을 실행하는 가상의 운영체제 역할을 한다.
    JVM은 JDK나 JRE를 설치하면 자동으로 설치되는데 JDK와 JRE가 운영체제 별로 제공된다.

    자바 프로그램은 .java인 파일(소스 파일)을 작성하는 것부터 시작. 이 소스 파일을 컴파일러(javac.exe)로 컴파일하면 확장자가 .class인 바이트 코드 파일이 생성된다.바이트 코드 파일은 JVM 구동 명령어 javac.exe에 의해 JVM에서 해석되고 해당 운영체제에 맞게 기계어로 번역된다.

    Write once, run anywhere.한 번 작성하면 어디서든 실행된다.

    한 번의 컴파일링으로 실행 가능한 기계어가 만들어지지 않고 JVM에 의해 기계어로 번역되고 실행되기 때문에, C와 C++의 컴파일 단계에서 만들어지는 완전한 기계어보다는 속도가 느리다는 단점이 있다.기계어로 빠르게 변환해주는 JVM 내부의 최적화된 JIT 컴파일러를 통해 속도의 격차는 많이 줄어들고 있다.



    Ⅳ. 자바 개발환경 구축

    ο JDK : 프로그램 개발에 필요한 JVM, 라이브러리 API, 컴파일러 등의 개발도구가 포함.(JRE+개발에 필요한 도구)
    ο JRE : 프로그램 실행에 필요한 JVM, 라이브러리 API만 포함.(JVM + 표준 클래스 라이브러리)개발이 아니고 실행만 하는 경우 JRE만 설치JDK 내부의 bin 디렉토리는 컴파일러인 javac.exe와 자바 가상 기계(JVM) 구동 명령어인 java.exe가 포함되어 있다.

    Ⅴ.환경변수 설정 

     

    windows에서 JAVA 환경변수 설정하기

    이클립스 프로그램을 사용할 때(자바 개발 시) JAVA가 설치된 위치를 찾게 해주기 위해 환경변수 설정을 해야한다. 제어판 검색 제어판 > 시스템 및 보안 클릭 제어판 > 시스템 및 보안 > 시스템

    marobiana.tistory.com

    Ⅴ-ⅰ)환경변수 설정이유

     

     

    '유용한정보' 카테고리의 글 목록

     

    study-web.tistory.com

    Ⅵ.자바 프로그램 개발 순서

     

    java 소스파일작성 ->컴파일러(javac.exe)로 바이트 코드 파일(.class)생성[이과정이 컴파일]-> JVM 구동 명령어(java.exe)로 실행 

    자바 실행 프로그램은 반드시 클래스 블록과 main() 메소드 블록으로 구성되어야 한다.
    클래스 : 필드 또는 메소드를 포함하는 블록
    클래스의 이름은 개발자가 마음대로 정할 수 있다.
    주의 : 소스 파일명과 클래스 이름의 대소문자가 일치해야 한다.

    매서드란 무엇인가?
    (1)매서드는 다른언어에서의 함수와 마찬가지로 어떤 특정한 동작이나 처리를 하도록 만들어진 코드 단위이다. (2)반복적인 작업을 처리해야 하는 경우 매서드로 만들어 놓으면 이후에 필요할 때 다시 재사용할 수 있어서 아주 유용하다.
    (3)매서드는 호출시 어떤 결과를 반환하기도 하지만, 결과를 반환하지 않는 매서드도 있다.
    (4)매서드는 호출시 어떤 인자 값들을 넘겨서 호출하는 경우도 있지만, 인자값 없이 호출하는 경우도 있다. 
    JVM이 구동되면서 제일 먼저 main() 메소드를 찾아서 실행하기 때문.
    main() 메소드를 entry point 라고 한다.

     

Designed by Tistory.