Java로 첫 번째 프로그램을 작성하는 방법


저자는 Write for DOnations 프로그램을 선택했습니다.

소개

Java는 수업에서 배우는 것부터 모든 규모의 상용 응용 프로그램 실행에 이르기까지 다양한 용도로 사용할 수 있는 성숙하고 잘 설계된 프로그래밍 언어입니다. 고유한 이점 중 하나는 크로스 플랫폼이라는 것입니다. Java 프로그램을 생성하면 서버(Linux/Unix), 데스크톱(Windows, macOS, Linux) 및 모바일 운영 체제를 포함한 많은 운영 체제에서 실행할 수 있습니다. (안드로이드, iOS).

Java는 컴파일된(즉, 시스템에 최적화된) 코드를 실행하기 때문에 고성능을 달성합니다. 개발자에게 이는 소스 코드를 실행하기 전에 컴파일해야 함을 의미합니다. 소스 코드를 직접 실행할 수 있는 PHP 및 Python과 같은 언어에 익숙하다면 먼저 코드를 컴파일하는 것이 개발 프로세스의 새로운 단계가 될 것입니다.

이 튜토리얼에서는 \Hello, World! Java로 된 프로그램입니다. "Hello, World!\ 프로그램은 컴퓨터 프로그래밍의 고전적이고 유서 깊은 전통입니다. 초보자를 위한 완전한 첫 번째 프로그램이며 환경이 제대로 구성되었는지 확인할 수 있는 좋은 방법입니다. "Hello, World\ 프로그램을 생성함으로써 Java의 기본 구문은 물론 Java 프로그램의 컴파일 및 실행 프로세스를 학습하게 됩니다. 완료되면 기본 Java 코드를 작성하고 실행할 수 있습니다. .

전제 조건

이 자습서에서는 다음이 필요합니다.

  • 컴퓨터에 Java(버전 11 이상)가 설치되어 있습니다. Ubuntu 및 Debian의 경우 자습서의 옵션 1 단계에 따라 Java 설치 옵션을 다운로드하십시오.
  • JDK(Java Development Kit)에서 제공하는 컴파일러입니다. 소스 코드를 컴파일하려면 javac라는 기본 Java 컴파일러를 사용합니다. 로컬 컴퓨터나 클라우드의 원격 서버에서 소스를 컴파일할 수 있습니다. Ubuntu의 경우 OpnJDK 버전 11 이상 설치에 대한 공식 지침에서 옵션 1의 JDK 설치 지침을 따를 수 있습니다.\n
    • (선택 사항) 컴파일된 코드를 실행할 JRE(Java Runtime Environment)입니다. JRE는 JDK의 일부이므로 이미 JDK를 설치한 경우 추가로 설치할 필요가 없습니다. 그렇지 않으면 JRE를 별도로 설치할 수 있습니다. 이는 보안상의 이유로 코드를 컴파일하지 않으려는 원격 서버에서 코드를 실행하려는 경우에 유용할 수 있습니다. 이러한 종류의 서버 지향 시나리오에서는 기본 패키지 관리자를 통해 JRE를 다운로드하고 설치할 수 있습니다. Ubuntu 및 Debian의 경우 sudo apt install openjdk-11-jre를 사용합니다. 다른 배포의 경우 해당 패키지 관리자를 사용하고 키워드 jre를 검색하고 버전 11 이상을 선택합니다.

    \Hello, World!\ 작성 및 실행 자바 프로그램

    많은 사람들에게 첫 번째 Java 프로그램은 종종 마지막 Java 프로그램이기도 합니다. 문제는 가장 단순한 코드도 너무 복잡해 보이고 완전히 이해하려면 몇 가지 새로운 것을 배워야 한다는 것입니다. 이 일반적인 함정을 피하려면 먼저 코드를 작성하고 실행한 다음 작동 방식을 확인해야 합니다.

    시작하려면 이 자습서의 코드를 배치할 hello-world라는 새 디렉터리를 만듭니다. 프로젝트 디렉터리를 만들고 변경하려면 터미널에서 다음 명령을 실행합니다.

    1. mkdir hello-world
    2. cd hello-world

    다음으로 nano 또는 선호하는 텍스트 편집기를 사용하여 Hello.java라는 파일을 만듭니다. nano의 경우 다음 명령을 사용합니다.

    1. nano Hello.java

    파일에 다음 코드를 추가합니다. "Hello, World!\를 인쇄하기 위한 최소한의 코드입니다. 콘솔에 메시지를 보냅니다.

    1. public class Hello {
    2. public static void main(String[] args) {
    3. System.out.println("Hello, World!");
    4. }
    5. }

    이 프로그램은 Hello, World! 메시지를 콘솔에 출력합니다. 파일 이름(이 경우 확장명이 .javaHello)는 소스 코드의 공용 클래스 이름인 Hello<와 일치해야 합니다. /코드>. 소스 코드에서 파일 이름과 공용 클래스 이름을 일치시키는 것은 Java의 규칙입니다. (유용한 코드를 찾으면 Java 소스 코드 파일의 이름을 지정하는 방법을 알 수 있으므로 기억하는 데 도움이 됩니다.)

    파일을 저장하고 닫습니다. nano를 사용하여 CTRL+X를 눌러 종료하고 Y를 눌러 저장하고 ENTER를 눌러 파일 이름을 확인하고 닫습니다. 파일.

    터미널에서 Hello.java 파일이 있는 동일한 디렉터리에서 javac를 실행하여 코드를 컴파일합니다.

    1. javac Hello.java

    소스 Java 코드는 전체 파일 이름과 함께 javac를 사용하여 컴파일해야 합니다.

    마지막으로 다음과 같이 java 실행 파일로 프로그램을 실행합니다.

    1. java Hello

    컴파일된 코드를 실행하려면 java 다음에 클래스 이름(이 예제에서는 Hello)을 실행해야 합니다. 코드를 실행할 때 .java 또는 .class와 같은 파일 확장명을 사용할 수 없습니다.

    출력은 다음과 같습니다.

    Hello, World!
    

    프로그램이 성공적으로 실행되었습니다! 기본 Java 프로그램을 만들고 컴파일하고 실행했습니다. 다음으로 모든 것이 어떻게 작동하는지 볼 수 있습니다.

    \Hello, World!\ 이해하기 프로그램

    Python 또는 JavaScript로 코드를 작성하는 데 익숙하다면 작은 프로그램에서도 Java가 약간의 차이가 있음을 알 수 있습니다. 모든 Java 프로그램에는 최소한 두 가지가 필요합니다.

    • 코드에 대한 클래스.
    • 클래스 내부의 기본 메서드

    Java는 객체이기 때문에 클래스가 필요합니다.은 코드 내에서 사용할 수 있는 클래스의 특정 인스턴스입니다. 개체에는 속성이 있으며 해당 메서드를 트리거할 때 작동할 수 있습니다.

    프로그램에서 클래스는 Hello입니다.

    1. public class Hello {
    2. public static void main(String[] args) {
    3. System.out.println("Hello, World!");
    4. }
    5. }

    코드의 첫 줄은 클래스의 시작을 나타냅니다. 클래스는 항상 class로 시작하고 뒤에 이름이 옵니다. 이 경우 클래스 이름은 Hello이고 확장자가 .java인 파일 이름과 일치합니다. 그런 다음 코드 스니펫 끝에 여는 중괄호({)와 닫는 중괄호(})가 있으며 그 안에 클래스의 코드를 넣습니다.

    클래스에는 액세스 수정자가 있습니다(메소드에도 있음). 이 경우 public이며 이는 완전히 액세스할 수 있음을 의미합니다.

    코드를 더 쉽게 읽을 수 있도록 파일당 하나의 클래스만 사용하는 것이 가장 좋습니다. 그러나 그러한 공식적인 요구 사항은 없으며 단일 파일 내에 클래스를 무제한으로 포함할 수 있습니다. 하지만 한 가지 문제가 있습니다. 파일 내부의 클래스 중 하나만 공개될 수 있으며 동일한 대/소문자 구분 이름을 가져야 합니다.

    클래스 외에도 프로그램에는 기본 메서드도 있습니다. main 메서드는 클래스의 실행 시작점이며 이 자습서의 경우 전체 프로그램의 시작점입니다. 매우 구체적인 구문이 있습니다: public static void main(String[] args):

    1. public class Hello {
    2. public static void main(String[] args) {
    3. System.out.println("Hello, World!");
    4. }
    5. }

    public은 액세스 수정자이며 메서드 호출에 제한이 없음을 의미합니다.

    정적은 메서드(이 경우) 또는 속성을 호출하기 위해 새 개체를 명시적으로 생성할 필요가 없음을 나타내는 특수 키워드입니다. 이것은 많은 용도가 있습니다. 특히 어떤 시점에서 일부 코드가 개체 자체의 일부가 되지 않고 프로그램의 첫 번째 개체를 생성할 수 있어야 하는 \닭과 달걀\ 상황을 해결합니다.

    void는 반환 유형이며 호출자에게 아무것도 반환되지 않음을 의미합니다. 이 경우 화면에 메시지를 출력하므로 실행 결과를 직접 소비하게 됩니다. 여기서 void는 아무 것도 반환하지 않지만 다른 경우에는 메서드가 영숫자 문자, 정수 또는 개체와 같은 다양한 정보를 반환하는 경우가 많습니다.

    String[] argsmain 메서드의 매개변수 또는 입력입니다. 문자열 또는 문자열은 영숫자 정보를 저장합니다. 대괄호([])는 하나의 문자열이 아니라 문자열의 배열임을 나타냅니다. 이 배열의 이름은 args입니다. 이 경우 main()에는 인수가 없지만 인수가 있으면 이 배열에 포함됩니다.

    public이라는 사실과 같은 주요 메서드 속성을 놓치면 구문 오류가 발생하지 않을 수 있지만 (시작점으로) 의도한 대로 작동하지 않습니다.

    텍스트를 콘솔에 출력하려면 System.out.println() 메서드를 사용합니다.

    1. public class Hello {
    2. public static void main(String[] args) {
    3. System.out.println("Hello, World!");
    4. }
    5. }

    메서드는 작업을 수행하도록 컴퓨터에 지시합니다. ()와 같이 괄호를 사용하기 때문에 메소드임을 알 수 있습니다. 메서드 자체는 println()이며 인쇄할 텍스트에 대해 하나의 인수를 허용합니다. System.out은 메서드가 출력(out).

    이 경우 상위 패키지인 System의 일부인 하위 패키지 out의 메서드를 사용하고 있습니다. Java에서 클래스가 구성되는 방식을 더 잘 이해하려면 클래스 계층 구조가 상위 폴더 및 관련된 종속 하위 폴더가 있는 파일 시스템의 계층 구조와 유사하다고 상상해 보십시오. Java에서는 이러한 폴더를 패키지라고 합니다. 관련 클래스는 계층 구조가 얼마나 세분화되어 있는지에 따라 하나의 패키지 또는 하위 패키지에 배치됩니다.

    System.out.println()에 대한 인수는 \Hello, World!\ 문자열입니다. 문자열은 항상 큰따옴표로 둘러싸여 있기 때문에 문자열임을 알 수 있습니다. PHP와 같은 다른 언어와 달리 Java 문자열에는 작은따옴표를 사용할 수 없습니다.

    Java 구문의 한 가지 특징은 텍스트를 인쇄하기 위한 것과 같이 각 명령문의 끝에 세미콜론이 필요하다는 것입니다. System.out.println(\Hello, world!\);.

    참고: Java 구문을 지원하는 IDE 또는 텍스트 편집기를 사용하는 경우 세미콜론 누락에 대해 걱정할 필요가 없습니다. 이러한 프로그램은 이러한 문제 및 기타 구문 문제를 자동으로 처리하기 때문입니다.

    이 섹션에서는 프로그램이 어떻게 작동하는지 이해하기 위해 프로그램을 한 줄씩 검사했습니다. 다음 섹션에서는 프로그램을 컴파일하고 실행할 때 어떤 일이 발생하는지 살펴보겠습니다.

    \Hello, World!\ 컴파일 및 실행 프로그램

    이 섹션에서는 Java 프로그램을 컴파일하고 실행할 때 어떤 일이 발생하는지 검토합니다. 코드를 컴파일하기 위해 JDK의 javac를 사용했습니다.

    1. javac Hello.java

    Java .class 파일은 JRE가 해석하고 실행할 수 있는 기계어 코드입니다.

    프로젝트 디렉터리에서 ls 명령을 실행하여 Hello.class 파일을 볼 수 있습니다.

    1. ls

    이 명령은 현재 디렉터리에 있는 파일을 나열합니다.

    Output
    Hello.class Hello.java

    코드가 컴파일된 후 JRE에서 실행 가능한 java로 실행합니다.

    1. java Hello

    JRE는 컴파일된 코드만 실행하며 사람이 읽을 수 있는 표준 파일의 코드는 어떤 방식으로도 실행할 수 없습니다. 마찬가지로 표준 텍스트 편집기로 컴파일된 .class 파일을 읽으려고 하면 읽을 수 없습니다. 그러나 Java 디컴파일러와 같은 도구를 사용하면 컴파일된 파일을 읽을 수 있으므로 소스 코드가 없는 프로그램을 디버깅할 때 유용할 수 있습니다.

    이 명령을 사용하여 Hello.class 파일에 있는 Hello라는 클래스를 처리하도록 JRE 실행 파일 java에 지시합니다.

    Hello, World! 메시지가 콘솔에 출력되면 다음을 확인한 것입니다.

    • 코드를 컴파일하고 실행할 수 있는 올바르게 작동하는 Java 환경이 있습니다.
    • Java가 Hello 클래스에 대한 코드를 성공적으로 찾았고 액세스할 수 있습니다.
    • 실행 흐름은 main() 메서드에서 시작되었습니다. 여기에서 System.out.println() 메서드가 문자열 인수 Hello, World!와 함께 호출되었습니다. 환영 메시지가 화면에 인쇄되었습니다.
    • 다른 코드가 없기 때문에 프로그램이 성공적으로 종료되었습니다.

    java를 호출하여 가상 머신이란 무엇입니까? 라는 가상 머신 유형을 시작합니다. 가상 머신에 대한 보다 일반적인 정보.

    JVM은 외부 환경, 라이브러리 또는 호스팅 운영 체제 전체에 대한 종속성 없이 잘 격리되어 있습니다. JVM은 서로 다른 운영 체제에서 완전히 동일하지는 않더라도 매우 유사하게 작동하므로 Java를 이식 가능하고 예측 가능하며 안전하게 만듭니다. 이는 PHP 인터프리터가 운영 체제의 많은 기본 라이브러리에 의존하는 PHP와 같은 다른 언어와 대조됩니다.

    Java는 이러한 격리를 달성하기 위해 자체 가상 머신을 실행하기 때문에 해당 프로세스는 상당한 메가바이트의 메모리를 사용합니다. 그러나 Java는 리소스를 효율적으로 관리하도록 최적화되어 있습니다. 자체 가상 머신 실행과 관련된 리소스 소비에도 불구하고 Java는 크고 복잡하며 오래 실행되는 프로그램에 대해 뛰어난 성능을 제공합니다.

    즉, 다른 언어로 화면에 인쇄되는 메시지를 프로그래밍하는 더 쉽고 효율적인 방법이 있을 수 있습니다. 그러나 Java를 사용하면 다양한 운영 체제와 호환되는 복잡한 프로그램을 만들 수 있습니다.

    결론

    축하해요! 첫 번째 Java 프로그램을 작성했습니다.

    Hello.java 파일의 코드로 계속 재생하여 텍스트를 변경하거나 세미콜론을 제거하고 오류가 발생하면 어떻게 되는지 확인할 수 있습니다. Hello.java 파일을 변경할 때마다 코드(javac Hello.java)를 컴파일해야 합니다.

    Java에 대한 자세한 내용은 Java로 코딩하는 방법 시리즈를 확인하십시오.