본문 바로가기

TIL

[TIL] Invalid Gradle JDK configuration found. 인텔리제이와 GitHub 연동 & commit, push. static, final, static final

Invalid Gradle JDK configuration found

zip 파일을 다운받은 후 인텔리제이에서 실행하려고 할 때, 이러한 오류가 발생헀다.

 

콘솔창 옆에 Open Gradle Settings를 눌러준다.

 

여기서 'Gradle JVM'의 아래 화살표 방향을 눌러준다.

 

'Download JDK...'를 눌러 JDK를 다운받는다.

 

다운받으니 오류 메시지가 더 길어졌다. 여기서 Possible solution을 살펴보자.

아까 Gradle settings를 다시 열고 Gradle JVM의 버전을 바꿔주자.

 

'Gradle JVM'의 버전을 위와 같이 바꿔주니 잘 작동한다.

 


인텔리제이와 GitHub 연동 & commit, push

Git -> Manage Remotes... 클릭

 

+ 버튼 -> URL에 자신이 깃허브에서 만든 repository http 주소 붙여넣기하면 된다.


static, final, static final

static

  • 객체 생성 없이 사용할 수 있는 필드와 메소드를 생성할 때 사용
  • 공용 데이터에 해당하거나 인스턴스 필드를 포함하지 않는 메소드를 선언하고자할 때 사용
  • 객체 생성 후 사용해도 되자만 추천하지 않는다.
  • 객체 참조 없이 바로 사용할 수 있기 때문에 this 키워드 사용 불가
  • static 데이터는 프로그램 실행 직후부터 끝날때까지 메모리 수명이 유지
public class StaticClass {
	static int a = 10;
    int b = 20;
    
    static int addTwo(int x) { 
    	return x + 2;
    }
}

// main
int a = StaticClass.a;
int b = StaticClass.addTwo(1);

 

final

  • 사용하는 곳마다 역할이 조금씩 다르다.
    - 변수: 한 번만 초기화. 이후 수정 불가
    - 메소드: 해당 메소드는 오버라이드 불가
    - 클래스: 해당 클래스는 상속 불가
  • 값을 저장하는 2가지 방법이 있다.
public class FinalClass {
	// 1. 선언과 동시에 값 주기
	final int a = 33;

	// 2. 생성자에 의해 값 주기
	final int b;
    	public FinalClass(int b) { this.b = b; }
}

 

static final

  • final과 비슷한 역할이다.
  • 필요한 이유?
    - final의 2번째 방법은 객체마다 다른 상수 값을 갖도록 할 수 있다.
    - 하지만 static final은 모든 객체가 같은 상수 값을 갖도록 해준다.
  • 모든 곳에서 하나의 값을 일관되게 사용하기 위해 사용
  • 인스턴스가 만들어질때마다 새로운 메모리를 초기화하지 않고, 하나의 메모리 공간만 사용해서 효율적이다.
public class Circle {
	static final double PI = 3.141592;
}