[java] “문자열 인수 []”란 무엇입니까? 기본 메소드 Java의 매개 변수

방금 Java로 프로그램을 작성하기 시작했습니다. 다음 Java 코드는 무엇을 의미합니까?

public static void main(String[] args)
  • 무엇입니까 String[] args?

  • 언제 사용 args합니까?

소스 코드 및 / 또는 예제는 추상 설명보다 선호



답변

Java args에서는 제공된 명령 행 인수String 객체 있습니다.

즉, 프로그램을 실행하면 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]);
        }
    }
}


답변

이것들은 Java의 명령 행 인수를위한 것입니다.

다시 말해, 달리면

자바 MyProgram 하나 둘

그런 다음 args포함합니다 :

[ “하나 둘” ]

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

그 이유는 특정 방식으로 실행하거나 필요한 정보를 제공하도록 응용 프로그램을 구성하기 때문입니다.


Java를 처음 사용하는 경우 공식 Oracle Java Tutorials를 읽으십시오 .


답변

args호출시 Java 프로그램에 전달 된 명령 행 인수를 포함합니다. 예를 들어 프로그램을 다음과 같이 호출하면

$ java MyProg -f file.txt

그 후는 args문자열을 포함하는 배열 것 "-f""file.txt".


답변

다음 답변은 내 이해 및 일부 테스트를 기반으로합니다.

String [] 인수 란 무엇입니까?

답변->

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

args- >는 배열의 이름입니다. 예를 들어, 컴파일러 및 실행 및 테스트에 문제가없는 것 (예 : ar, argument, param, parameter) 일 수 있습니다.

예)
1) 공공 정적 void main (String [] 인수)

2) 공공 정적 void main (String [] 매개 변수)

이 인수를 언제 사용 하시겠습니까?

Ans->

주요 기능은 개발자가 매우 지능적으로 설계했습니다. 실제 사고는 매우 깊습니다. 기본적으로 커맨드 라인 인수를 기반으로 C & C ++을 고려하여 개발되었지만 현재는 더 이상 사용하지 않습니다.

1- 사용자는 명령 행에서 모든 유형의 데이터를 입력 할 수 있습니다. 숫자 또는 문자열 일 수 있으며 컴파일러가 사용해야하는 데이터 유형은 무엇입니까? 2를 참조하십시오

Thing 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    

  }
}


답변

OP조차도에 대해서만 이야기 String[] args하고 public static void main(String[] args)있습니다.

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 \ java.c)의 코드를 다른 서명으로 변경하면 작동하지 않지만 다른 변경 가능한 문제가 발생할 수 있음을 알려줍니다. 자바 사양으로 인해

오프 토픽 : OP가이 질문을 한 지 7 년이 지났습니다. OP는 지금까지 자신의 질문에 대답 할 수 있다고 생각합니다.


답변

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
}


답변

나는 헤어질 것이다

public static void main(String args[])

부분적으로.

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

“정적” 은 main ()이 특정 객체에 속하지 않음을 의미합니다

“void” 는 main ()이 값을 반환하지 않음을 의미

“main” 은 함수의 이름입니다. main ()은 프로그램의 시작이므로 특별합니다.

“문자열 []” 은 문자열 배열을 의미합니다.

“args” 는 String []의 이름입니다 (main ()의 본문에 있음). “args”는 특별하지 않다. 다른 이름을 지정할 수 있으며 프로그램은 동일하게 작동합니다.

  • String[] args공백으로 구분 된 문자열 모음으로 터미널의 프로그램에 입력 할 수 있습니다. 초보자는이 변수를 사용하지 않지만 여러 번 항상 사용할 수 있습니다.