Java의 메인 메소드

김재영·2022년 11월 12일
0

항해99 Pre_Onboarding

목록 보기
5/5

6일차

Java의 메인 메소드

public static void main(String[] args)

  • public
    • 접근제어자 중 하나로 다른 클래스의 메소드에서 접근이 가능하다
    • 접근제어자의 종류는 public, protected, default, private가 있다
    • 클래스 선언시 접근제어자를 생략하면 default의 제한을 가지게 된다
  • static
    • static을 사용하면 메모리에 할당되어 프로그램이 종료될때 할당이 해제된다
    • static을 사용한 변수는 static영역에 생성되고 값은 heap영역에 저장된다
      static영역에 할당된 메모리는 모든 객체가 공유하게 된다
      하지만 GC의 관리를 받지 않기 때문에 자주 사용하면 성능 하락의 문제가 된다
    • 객체를 생성하지 않고도 static클래스에 접근이 가능하다
    • static을 사용한 클래스변수는 클래스가 메모리에 할당될때 자동으로 인스턴스를 생성한다
    • static는 클래스변수 중 모든 인스턴스에 공통적으로 사용해야할때 쓴다
  • void
    • 리턴값의 타입이 들어가는 위치이다
    • void는 어떤값도 반환하지 않는 반환타입이다
  • main(String[] args)
    • 이름이 main인 method이며 이름이 args라는 String타입의 배열을 매개변수로 받는다

      String[] args
      String args[]
      String... args

    • 배열을 선언하는 방식 어떤것을 사용해도 동작한다
    • args는 매개변수의 이름이니 다른 이름을 사용해도 동작한다

자바는 엔트리 포인트로 main함수를 사용한다
엔트리 포인트란 프로그램이 시작되는 지점을 의미한다
만약 엔트리 포인트 없다면 프로그램을 실행할 수 없다

함수의 호출 방법

Call by value

값을 호출 하는것으로 함수 호출시 인자의 값이 매개변수에 복사되어서
함수내 매개변수의 조작이 인자에 영향을 주지 않는다

Call by reference

참조의 의한 호출로 전달받은 매개변수를 변경할 경우 인자의 값도 변경된다

참조 타입

참조 타입 배열

배열 변수를 선언한 후 값을 나중에 넣을 상황이라면 new 키워드를 사용해야 한다

String[] str;
str = {"value1", "value1", "value1", "value1"}; //컴파일 에러

String[] str;
str = new String[]{"value1", "value1", "value1", "value1"}; //컴파일 성공

참조 타입 배열은 각 인덱스에 객체의 주소를 가진다

String[] str = new String[3];
        str[0] = "apple";
        str[1] = "banana";
        str[2] = "orange";

stack영역에 str이라는 배열이 생성된다
str의 각 인덱스에는 heap영역에 저장된 각 객체에 대한 주소가 저장된다

향상된 for문

배열에서 항목을 꺼네 저장할 알맞은 자료형의 변수명과 내부에 실행문으로 작성한다

for( 자료형 변수명 : 배열명){
	실행문
}

배열의 항목 개수만큼 반복하고 for문을 빠져나가게 된다



Reference1
Reference2

profile
Kickoff 22-10-19

0개의 댓글