목록static (4)
컴공생의 다이어리
[MyBatis] parameterType, resultType에 내부 클래스(inner class) 사용 MyBatis의 paramterType과 resultType에서 내부 클래스를 사용하는 방법에 대해 정리하고자 한다. 우선 paramterType과 resultType에서 내부 클래스를 사용하기 위해서는 아래와 같이 내부 클래스가 static으로 선언되어 있어야 한다. public class Outer { public static class InnerA { // ... } public static class InnerB { // ... } } 그리고 MyBatis에서 사용시 아래와 같이 $를 사용해서 내부 클래스를 타입으로 설정하면 된다. 점(.)은 경로를 타고 갈 때 사용하고 $는 inner cl..
변수의 유효 범위와 메모리 변수가 유효한 범위와 생성되고 소멸되는 life cycle은 변수의 종류마다 다르다. 또한 변수마다 사용되는 메모리도 다르다. 변수 유형 선언 위치 사용 범위 메모리 생성과 소멸 지역 변수 (로컬 변수) 함수 내부에 선언 함수 내부에서만 사용 스택 함수가 호출될 때 생성되고 함수가 끝나면 소멸 멤버 변수 (인스턴스 변수) 클래스 멤버 변수로 선언 클래스 내부에서 사용하고 private이 아니면 참조 변수로 다른 클래스에서 사용 가능 힙 인스턴스가 생성될 때 힙에 생성되고, garbage 컬렉터가 메모리를 수거할 때 소멸됨 static 변수 (클래스 변수) static 예약어를 사용하여 클래스 내부에 선언 클래스 내부에서 사용하고 private이 아니면 클래스 이름으로 다른 클래..
static 변수 만일 여러 인스턴스가 공유하는 기준 값이 필요한 경우 공통적으로 사용할 수 있는 변수가 필요하다. 이럴때, static 변수를 사용하면 된다. static 변수는 인스턴스가 생성될 때 만들어지는 변수가 아니라, 처음 프로그램이 메모리에 로딩될 때 메모리를 할당된다. 따라서 인스턴스 생성과 상관 없이 사용 가능하므로 클래스 이름으로 직접 참조 가능하다. public class Student{ public static int studentCode = 1000;// 인스턴스들이 공유하는 변수 private String name; private int score; public void setName(String name){ this.name = name; } public void setScor..
생성된 총 클래스의 객체의 수를 세기 위한 방법에는 2가지가 있다. 첫번째는 어떠한 배열에 객체를 보관해놓고, 생성된 객체의 수를 모두 세는 것이다. 두번째는 어떤 변수를 만들어서 객체 생성시에 1을 더하고, 소멸시에 1을 빼는 것이다. 첫번째 방법의 경우 vector라는 자료를 사용하면 쉽게 할 수 있다. 두번째의 경우 전역 변수를 사용하거나 static 멤버 변수를 사용해 해결할 수 있다. 어떤 변수를 만들어서 객체 생성시에 1을 더하고, 소멸시에 1을 빼는 것을 전역 변수를 통해 관리하면, 프로젝트의 크기가 커질 수록 프로그래머의 실수로 인해 서로 겹쳐서 오류가 날 가능성이 다분하다. 따라서 전역 변수 같지만 클래스 하나에만 종속되는 변수인 static 멤버변수를 사용하는 것이 좋다. static ..