programing

주요 메서드 Java의 "String args[]" 매개 변수란 무엇입니까?

kingscode 2022. 8. 11. 18:33
반응형

주요 메서드 Java의 "String args[]" 매개 변수란 무엇입니까?

나는 이제 막 자바어 프로그램을 쓰기 시작했다.다음 자바 코드는 무엇을 의미합니까?

public static void main(String[] args)
  • 뭐가String[] args?

  • 이것들은 언제 사용하시겠습니까?args?

추상적인 설명보다 소스 코드 및/또는 예를 선호합니다.

자바어args지정된 명령줄 인수가 다음 명령어라인의String물건들.

즉, 단말기에서 프로그램을 다음과 같이 실행하는 경우:

C:/ java MyProgram one two

그리고나서args포함하다["one", "two"].

의 내용을 출력하는 경우args그냥 이렇게 루프를 통과하면...

public class ArgumentExample {
    public static void main(String[] args) {
        for(int i = 0; i < args.length; i++) {
            System.out.println(args[i]);
        }
    }
}

프로그램이 터미널에 인쇄됩니다.

C:/ java MyProgram one two
one
two
    
C:/

Java 명령줄 인수용입니다.

달리 말하면, 만약 당신이

Java MyProgram 1, 2

그리고나서args내용:

['1', '2']

public static void main(String [] args) {
    String one = args[0]; //=="one"
    String two = args[1]; //=="two"
}

그 이유는 응용 프로그램이 특정 방식으로 실행되도록 설정하거나 응용 프로그램에 필요한 정보를 제공하기 위해서입니다.


Java를 처음 사용하는 경우 Oracle의 공식 Java™ 튜토리얼을 읽어보는 것이 좋습니다.

args에 호출 시 Java 프로그램에 전달되는 명령줄 인수를 나타냅니다.예를 들어, 다음과 같이 프로그램을 호출할 경우:

$ java MyProg -f file.txt

그리고나서args문자열이 포함된 배열이 됩니다."-f"그리고."file.txt".

아래 답변은 저의 이해와 테스트를 바탕으로 한 것입니다.

뭐가String[] args?

응답:

String[]-> 아시다시피 이것은 단순한 String 배열입니다.

args->는 어레이의 이름이며 컴파일러 및 실행 시 문제없이 사용할 수 있습니다(a, ar, 인수, 파라미터 등).

예:

  1. public static void main(String[] argument)

  2. public static void main(String[] parameter)

이 아르그는 언제 사용하시겠습니까?

응답->

main기능은 개발자에 의해 매우 지능적으로 설계됩니다.실제 생각은 매우 깊다.이는 기본적으로 명령줄 인수를 기반으로 C&C++를 고려하여 개발되었지만, 현재는 더 이상 사용하지 않습니다.

1-사용자는 명령줄에서 모든 유형의 데이터를 입력할 수 있습니다.숫자 또는 문자열 중 어느 것을 사용해야 컴파일러가 데이터를 받아들일 수 있습니까?보다2

2-String은 Java에서 int, long, float, double, byte, shot, char와 같은 모든 원시 데이터 유형을 지원하는 데이터 유형입니다.모든 원시 데이터 유형에서 쉽게 구문 분석할 수 있습니다.

예: 다음 프로그램을 컴파일 및 실행하고 테스트도 실시합니다.

입력이 -> 1인 경우

// one class needs to have a main() method
public class HelloWorld
{
  // arguments are passed using the text field below this editor
  public static void main(String[] parameter)
  {    
System.out.println(parameter[0] + parameter[1]); // Output is 11

//Comment out below code in case of String
    System.out.println(Integer.parseInt(parameter[0]) + Integer.parseInt(parameter[1])); //Output is 2
    System.out.println(Float.parseFloat(parameter[0]) + Float.parseFloat(parameter[1])); //Output is 2.0    
    System.out.println(Long.parseLong(parameter[0]) + Long.parseLong(parameter[1])); //Output is 2    
    System.out.println(Double.parseDouble(parameter[0]) + Double.parseDouble(parameter[1])); //Output is 2.0    

  }
}

심지어 Tho OP도 그 얘기만 하고 있어요.String[] args의 완전한 예를 제시하겠습니다.public static void main(String[] args).

Public: 는 이 메서드에 액세스할 수 있는 사용자를 정의하는 액세스 수식자입니다.Public은 모든 클래스에서 이 메서드에 액세스할 수 있음을 의미합니다(다른 클래스가 이 클래스에 액세스할 수 있는 경우).

Static: 는 클래스 관련 항목을 식별하는 키워드입니다.즉, 지정된 메서드 또는 변수는 인스턴스와 관련된 것이 아니라 클래스와 관련된 것입니다.클래스 인스턴스를 만들지 않고도 액세스할 수 있습니다.

Void: 를 사용하여 메서드의 반환 유형을 정의합니다.메서드가 반환할 수 있는 것을 정의합니다.무효는 메서드가 값을 반환하지 않음을 의미합니다.

main: 는 메서드의 이름입니다.이 메서드명은 특정 시그니처를 가진 어플리케이션의 시작점으로 JVM에 의해 검색됩니다.

String[] args: 메인 메서드의 파라미터입니다.

JDK 소스 코드(jdk-src\j2se\src\share\bin\java.c):

/* Get the application's main method */
mainID = (*env)->GetStaticMethodID(env, mainClass, "main",
                   "([Ljava/lang/String;)V");
...
{    /* Make sure the main method is public */
...
mods = (*env)->CallIntMethod(env, obj, mid);
if ((mods & 1) == 0) { /* if (!Modifier.isPublic(mods)) ... */
    message = "Main method not public.";
    messageDest = JNI_TRUE;
    goto leave;
...

Java의 시작 메서드에 이름을 붙여야 합니다.main특정 서명이 있어야 합니다.public static void main(String[] args)

이 코드는 또한 우리에게public static void main(String[] args)수정되지 않았습니다. (jdk-src\j2se\src\share\bin\snars.c)의 코드를 다른 시그니처로 변경하면 동작하지만 Java 사양 때문에 다른 문제가 발생할 수 있습니다.

오프토픽:OP가 이 질문을 한 지 7년이 지났는데, 지금쯤 OP가 자신의 질문에 답할 수 있을 것 같습니다.

나는 헤어질 것이다.

public static void main(String args[])

부분적인.

"public"은 main()이 어디에서나 호출할 수 있음을 의미합니다.

"static"은 main()이 특정 개체에 속하지 않음을 의미합니다.

"main"은 main()이 값을 반환하지 않음을 의미합니다.

"main"은 함수의 이름입니다.main()은 프로그램의 시작이기 때문에 특별합니다.

"String[]"은 String의 배열을 의미합니다.

"args"는 string [](main() 본문 내)의 이름입니다."s"는 특별한 것이 아닙니다.다른 이름을 붙일 수도 있고 프로그램도 마찬가지입니다.

  • String[] args는 공백으로 구분된 문자열 모음입니다.단말기의 프로그램에 입력할 수 있습니다.초심자는 이 변수를 사용하지 않을 때가 많지만, 만약을 위해 항상 이 변수가 있습니다.

String [] args또한 Java에서 문자열 배열을 선언하는 방법도 나타냅니다.

이 메서드 시그니처에서는 어레이가args메서드가 호출되면(여기서 나타내는 다른 예시와 같이) 값으로 채워집니다.그래도 배우고 있으니까 이해해야 할 점은args어레이는 다음과 같은 방법으로 직접 작성한 것과 같습니다.

public void foo() {
    String [] args = new String[2];
    args[0] = "hello";
    args[1] = "every";

    System.out.println("Output: " + args[0] + args[1]);

    // etc... the usage of 'args' here and in the main method is identical
}

간단한 문외한의 언어로 설명하다.

주요 메서드에서는 JVM을 클래스 이름으로 지정할 때 몇 가지 인수를 제공해야 합니다.즉, 파일 이름이 Try.java라고 가정하면 명령 프롬프트에서 이 명령을 실행하려면 컴파일할 "javac Try.java"를 입력하고 실행할 "java Try"를 입력합니다.이제 단순히 "java Try"라고 쓰는 대신 "java Try 1"이라고 쓴다고 가정합니다.여기서 인수 "1"을 통과했습니다.이것은 코드에 사용하지 않는 경우에도 기본 방법으로 수행됩니다.

주 메서드가 실제로 인수 "1"을 사용했는지 여부를 확인하려면 다음과 같이 하십시오.기본 메서드에 다음과 같이 입력합니다.

for(int i = 0; i < args.length; i++) {
        System.out.println("Argument is: "+args[i]);
    }

코드를 완성하면 확장자가 .java인 파일로 변환됩니다.이 파일은 더블클릭으로 실행할 수 있지만 콘솔 전체(Mac에서는 터미널, Windows에서는 cmd.exe)를 통해 사용자가 많은 작업을 수행할 수 있습니다.첫 번째는 콘솔메시지(System.out.print 또는 System.out.println)를 더블클릭해도 표시되지 않는다는 것입니다.파라미터를 지정하는 것도 가능합니다.따라서 보통 이 선을 사용합니다.

java -jar MyCode.jar

프로그램 폴더로 이동한 후

cd C:My/Code/Location

윈도 또는

cd My/Code/Location

(Mac이 덜 덜 투박하다는 점에 유의) 코드를 실행하지만 사용할 파라미터를 지정합니다.

java -jar MyCode.jar parameter1 parameter2

프로그램에서 사용할 수 있는 args 배열에 저장되어 있는 파라미터는 사용자가 사용할 파일이나 프로그램의 메모리 용량 등의 특수한 파라미터를 제어할 수 있도록 하는 것입니다.어레이의 사용법을 알고 싶다면 이 사이트에서 항목을 찾거나 구글에서 검색할 수 있습니다.파라미터는 수에 관계없이 사용할 수 있습니다.

위의 답변으로 충분히 커버할 수 있을 것 같습니다.String args[]는 어플리케이션을 실행할 때 어플리케이션에 전달할 수 있는 문자열 인수 배열입니다.완료하기 위해 다음 명령어에 전달된 메서드 파라미터를 정의하는 것도 유효하다고 덧붙입니다.mainstring 유형의 변수 인수(varargs):

public static void main (String... args)

즉,main메서드는 String 배열 중 하나를 허용해야 합니다().String args[]또는 varargs(String... args)를 메서드 인수로서 사용합니다.그리고 그 이름에는 마법이 없다.args어느 하나.편지를 쓰는 편이 낫다.arguments또는 심지어freddiefujiwarae.gs 에 나타나듯이,

public static void main (String[] arguments)

public static void main (String[] freddiefujiwara)

콘솔에서 Java 클래스가 실행될 때 호출되는 것이 주요 메서드입니다.이를 실현하기 위해서는 이 주요 방법의 정의는 다음과 같아야 합니다.

public static void main(String [])

이 문자열 배열이 args라고 불리는 것은 표준 규칙이지만 반드시 필요한 것은 아닙니다.프로그램을 호출할 때 명령줄에 이 어레이를 입력합니다.

java MyClass a b c

이러한 옵션은 일반적으로 프로그램의 옵션(예: 쓰거나 읽을 파일)을 정의하는 데 사용됩니다.

in public static void main(String args[]) args는 데이터 유형이 String인 콘솔 행 인수 배열입니다.이 배열에서는 다음과 같이 명령행에서 다양한 문자열 인수를 호출하여 저장할 수 있습니다.java myProgram San Royal 다음 San 및 Royal은 arg[0]="Shaan"; arg[1]="Royal"로 배열에 저장됩니다. 명령행에서 호출하지 않으면 프로그램 내에서 수동으로 이 작업을 수행할 수도 있습니다.

String[] args는 "메인" 함수에 전달되는 일련의 문자(문자열)를 의미합니다.이 문제는 프로그램이 실행될 때 발생합니다.

명령줄에서 Java 프로그램을 실행하는 예:

java MyProgram This is just a test

따라서 어레이에는 다음이 저장됩니다.["This", "is", "just", "a", "test"]

String[] argsparameter는 OS 명령줄을 통해 응용 프로그램을 실행할 때 매개 변수로 전달되는 문자열 배열입니다.

예를 들어 컴파일 및 패키징을 완료했다고 가정합니다.myApp.jarJava 어플리케이션물론 OS에서 앱을 두 번 클릭하여 실행할 수 있지만 명령줄 방식으로 실행할 수도 있습니다(Linux의 경우 등).

user@computer:~$ java -jar myApp.jar

응용 프로그램을 호출할 때 다음과 같은 매개 변수를 전달합니다.

user@computer:~$ java -jar myApp.jar update notify

java -jar명령어는 문자열을 전달합니다.update그리고.notify고객님께public static void main()방법.

그런 다음 다음과 같은 작업을 수행할 수 있습니다.

System.out.println(args[0]); //Which will print 'update'
System.out.println(args[1]); //Which will print 'notify'

스타일dataType[] arrayRefVar권장됩니다.스타일dataType arrayRefVar[]는 C/C++ 언어에서 유래하며, C/C++ 프로그래머를 수용하기 위해 Java에서 채택되었습니다.

그리고 아까 댓글도 다 달아주시고

public static void main(String[] args) 

라고 쓸 수 있다

 public static void main(String...arg)

또는

 public static void main(String...strings)

아래의 구문도 사용할 수 있습니다.

public static void main(String... args)

여기서 생략 부호, 즉 데이터 유형 뒤에 있는 점 세 개String는 0 또는 복수 인수를 지정합니다(인수의 개수는 일정).

이것을 시험해 보세요.

System.getProperties().getProperty("sun.java.command", 
    System.getProperties().getProperty("sun.rt.javaCommand"));

언급URL : https://stackoverflow.com/questions/890966/what-is-string-args-parameter-in-main-method-java

반응형