방금 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
공백으로 구분 된 문자열 모음으로 터미널의 프로그램에 입력 할 수 있습니다. 초보자는이 변수를 사용하지 않지만 여러 번 항상 사용할 수 있습니다.