Java 기초

온라인 강의는 잠시 멈추고 오프라인에 집중하기로 했다. 오프라인 강의에서 내주시는 실습 문제가 꽤나 많아서 우선적으로 해야할 것 같아서 온라인 강의 듣는 거는 조금 미루기로 했다. 어차피 온라인이 진도도 빨라서 조금 천천히 들어도 괜찮을 것 같다.

아직 1단계 수준의 알고리즘 문제를 풀고있는데 꽤나 고전하고있다. 특히 문자열이랑 배열에 오면서부터 내가 확실하게 이해하고 넘어가지 않아서인지 2차원 배열이라던지 특정 문자를 구별해서 처리하는 등의 작업이 꽤나 힘들다. 계속해서 하지않으면 안될 것 같다.

이번 주에 TIL 쓰는 걸 조금 게을리 했더니 많이 미뤄졌다. 지나간건 지나간거고 앞으로 다시 열심히 작성해봐야겠다.


오프라인

static
클래스를 로딩할 때 같이 로딩해서 객체 생성이 필요없는 변수나 메소드를 지정해줄 때 static이라고 선언해준다.
객체마다 가지고 있어야하는 데이터면 인스턴스 필드로 선언하고, 객체마다 가지고 있을 필요는 없는 공용 데이터라면 static으로 선언해주면 된다.
선언하는 방법은 간단하다.

public class 클래스이름 {
	// 정적 필드
	접근제어자 static 타입필드 = 초기값;

	// 정적 메소드
	접근제어자 static 반환형 메소드 (매개변수, ...) { ... }
}

위 처럼 접근제어자 다음에 static을 위치시켜주면 그 필드나 메소드는 static으로 선언이 되는 것이다.

그러면 main 메소드가 public static void인 이유는 가장 먼저 메모리에 올라가야 하기 때문이라는 걸 알 수 있다.

싱글톤 패턴
전체 프로그램에서 하나의 객체만 생성하겠다는 뜻이다.
데이터베이스에 접근하는 객체는 하나여야한다 -> 수정 중에 다른 객체가 들어오거나 사용하면 안된다는 뜻.

어노테이션(Annotation)
데이터 처리가 아닌 컴파일 과정과 실행 과정에서 코드를 어떻게 컴파일할지 알려주는 정보

@AnnitationName
ex)@Override

실습 1

static 필드에 접근하려면 메소드도 static으로 정의해주어야 한다.

public class Car {
	int speed;
	
	static void run() { ... }
	
	public static void main(String[] args) {
			speed = 60;
			run();
	}
}
profile
이따금씩 올라오는 개발자 블로그

0개의 댓글