Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 정수론
- 정렬
- 재귀
- Median of Medians
- 퀵정렬
- 프로그래밍
- SNS
- 삽입정렬
- DP
- 자료구조
- 동적프로그래밍
- 수학
- 힙정렬
- 다이나믹프로그래밍
- 코딩테스트
- 선택알고리즘
- 선택정렬
- 안드로이드
- 동적계획법
- 알고리즘
- 백트래킹
- 병합정렬
- 기수정렬
- java
- 버블정렬
- C++
- 계수정렬
- 백준
- 프로그래밍언어
- 자바
Archives
- Today
- Total
MODE::CREATIVE
[JAVA] 자바의 main() 메서드 본문
자바의 main() 메서드
1. main() 메서드란?
main() 메서드는 자바 프로그램의 시작점으로, JVM(Java Virtual Machine)이 프로그램 실행 시 가장 먼저 호출하는 메서드입니다. main() 메서드의 정확한 선언 형태는 다음과 같습니다.
public static void main(String[] args)
2. main() 메서드의 구성
2-1. 접근 제어자 (public)
- public: 메서드가 어디서든 접근 가능하도록 지정합니다.
- JVM은 프로그램 시작 시 main() 메서드를 호출해야 하므로, 반드시 public으로 선언해야 합니다.
2-2. 정적 메서드 (static)
- static: main() 메서드는 클래스의 객체를 생성하지 않고도 호출되기 때문에 정적으로 선언됩니다.
- static으로 선언하지 않으면, JVM이 main() 메서드를 호출하기 위해 객체를 생성해야 하므로 실행이 불가능합니다.
2-3. 반환 타입 (void)
- void: main() 메서드는 아무 값도 반환하지 않으므로, 반환 타입이 void로 선언됩니다.
2-4. 매개변수 (String[] args)
- String[] args: main() 메서드는 문자열 배열을 매개변수로 받습니다.
- 프로그램 실행 시, **명령행 인자(Command Line Arguments)**를 전달받을 수 있습니다.
3. main() 메서드의 동작 흐름
- JVM이 프로그램 실행 시 main() 메서드를 호출합니다.
- main() 메서드는 전달받은 명령행 인자를 처리하거나 프로그램 로직을 실행합니다.
- 모든 작업이 끝나면 main() 메서드가 종료되며, 프로그램도 종료됩니다.
4. main() 메서드의 예제
4-1. 기본 구조
public class MainExample {
public static void main(String[] args) {
System.out.println("Hello, Java!");
}
}
- 실행 결과: Hello, Java!
4-2. 명령행 인자 활용
public class CommandLineExample {
public static void main(String[] args) {
System.out.println("명령행 인자 개수: " + args.length);
for (String arg : args) {
System.out.println("인자: " + arg);
}
}
}
- 실행:
java CommandLineExample Hello World Java
- 실행 결과:
명령행 인자 개수: 3 인자: Hello 인자: World 인자: Java
5. 명령행 인자 활용하기
5-1. 간단한 합계 계산 프로그램
명령행에서 전달받은 숫자들의 합계를 구하는 프로그램입니다.
public class SumCalculator {
public static void main(String[] args) {
int sum = 0;
for (String arg : args) {
sum += Integer.parseInt(arg);
}
System.out.println("합계: " + sum);
}
}
- 실행:
java SumCalculator 10 20 30
- 실행 결과:
합계: 60
6. main() 메서드의 주의사항
- 정확한 선언:
- main() 메서드는 반드시 public static void main(String[] args) 형태로 선언해야 합니다.
- 다른 형태로 선언할 경우, JVM은 실행할 수 없습니다.
- String[] args:
- 매개변수를 선언하지 않아도 컴파일 에러는 발생하지 않지만, 명령행 인자를 사용할 수 없습니다.
- 명령행 인자 타입 변환:
- 명령행 인자는 항상 문자열 형태로 전달되므로, 숫자 등의 타입으로 사용하려면 형 변환이 필요합니다.
int num = Integer.parseInt(args[0]); // 문자열을 정수로 변환
- 명령행 인자는 항상 문자열 형태로 전달되므로, 숫자 등의 타입으로 사용하려면 형 변환이 필요합니다.
- JVM이 호출:
- main() 메서드는 프로그래머가 직접 호출하지 않고, JVM이 호출합니다.
7. main() 메서드 활용 예제
7-1. 명령행으로 전달된 문자열 연결
public class StringJoinExample {
public static void main(String[] args) {
String result = String.join(" ", args);
System.out.println("연결된 문자열: " + result);
}
}
- 실행:
java StringJoinExample Java is fun!
- 실행 결과:
연결된 문자열: Java is fun!
7-2. 프로그램 종료 코드
System.exit()를 사용하여 특정 종료 코드를 반환할 수 있습니다.
public class ExitExample {
public static void main(String[] args) {
System.out.println("프로그램 실행");
System.exit(0); // 0: 정상 종료
}
}
8. main() 메서드의 확장 활용
8-1. main()에서 다른 메서드 호출
main() 메서드는 프로그램의 시작점일 뿐, 실제 작업은 다른 메서드에서 수행하도록 작성하는 것이 일반적입니다.
public class MethodExample {
public static void main(String[] args) {
printMessage();
}
public static void printMessage() {
System.out.println("메서드 호출 성공!");
}
}
- 실행 결과: 메서드 호출 성공!
9. main() 메서드의 한계와 보완
- 입력 데이터 제약: 명령행 인자로 제한된 데이터를 전달받습니다.
- GUI 프로그램: main() 메서드는 CLI(Command Line Interface) 기반이므로, GUI 기반 프로그램의 진입점으로 사용되지는 않습니다.
자바의 main() 메서드는 모든 응용 프로그램의 시작점으로, 정확한 형태와 동작 방식을 이해하는 것이 중요합니다. 명령행 인자 활용 및 다른 메서드 호출과 같은 기본 패턴을 익히면 다양한 프로그램을 개발할 수 있습니다.
'JAVA' 카테고리의 다른 글
[JAVA] 자바의 예외처리 (0) | 2025.01.11 |
---|---|
[JAVA] 자바의 배열(Array) (0) | 2025.01.11 |
[JAVA] java의 입력(Buffered reader) (0) | 2024.11.17 |
[JAVA] java의 입력(Scanner) (0) | 2024.11.10 |
[JAVA] java의 연산자, 조건문, 반복문 (1) | 2024.11.10 |