키리찹의 IT노트 119

생성자의 생략, 코드 중복

생성자가 정의되어 있지 않으면, 기본생성자(인자가 없는 생성자)가 자동 생성된다. 그러나, 인자가 있는 생성자가 이미 존재하는 경우, 기본 생성자가 자동 생성되지 않기 때문에 무의식 중에 기본생성자를 호출해버리면 오류가 발생하게 된다. 습관적으로 기본생성자를 정의하자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 public class School2 { int kuk = 0; int eng = 0; int tot = 0; //기본생성자의 생략 public int hap() { tot = kuk + eng; return tot; } } public class SchoolMain2 public static void main(String[] args) ..

변수 유효범위

1)변수의 영역 {a {a b {a b } }//b(o) }//a, b(x) : 변수는 블록 밖으로 나올 수 없다. 수평한 블록 간(안기지 않은)에 변수를 가져오려면 함수화(stack복사)가 필요하다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 public class Variable { String movie = "트로이"; // 멤버변수, 전역변수 public void show() { System.out.println("show 메소드 영역: " + movie); } public void title() { String movie = "바람의 전설"; System.out.println("title 메소드 영역: " + movie); //자기거 우선 Syst..

싱글톤(Singletone pattern), final

: 영역은 하나인데, 해당 영역을 사용하는 변수가 두 개 이상인 경우를 말한다. ->static 영역은 최초 한 번만 메모리를 할당하고 그 메모리에 객체를 만들어 사용하는데(메소드와 변수는 인스턴스를 생성하지 않고 즉시 사용), 이 경우 해당 영역을 사용하는 변수가 두 개 이상이 되면 메소드를 처리할 마다 변수, 함수가 날아가버린다(사용하고 버려짐). 순차적으로 작업을 처리할 때 주로 사용한다.(stateless stateful) ex. 한 반의 30명의 학생들의 성적을 한 번에 처리할 수 있다. -장점: 메모리를 획기적으로 줄일 수 있다. -단점: 이전의 상태로 되돌아갈 수 없다. 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..

클래스 JVM 메모리 운영, Static variable과 Method

1. 지역 변수(함수 내) 2. 멤버 변수(전역변수, 함수 외) 3. 클래스 변수(static 내부) 실행 소스 code segment data segment 상수 - 기본값 O, 기본값 X 문자열 static - 변수, 메소드 -로드시 바로 메모리를 할당받음(인스턴스 생성 불필요) -> 진행속도가 빠르다. -1회만 생성, 모든 인스턴스가 같이 사용 -> 공유변수 -클래스 변수(를 직접 호출) heap 객체영역(인스턴스를 할당하는 메모리 영역) -멤버변수 -멤버 메소드 데이터 저장 -멤버변수, 지속성 -garbage collection(자동 메모리 수거) stack 메소드 실행영역 ------------------------------------ method(); 실행 뒤 바로 사라짐 -지역변수, 메소드..

Call by value vs Call by reference

call by value 호출 값으로 함수 인자가 기본형 1) 값에 의한 호출, 변수값이 기본형 데이터인 값으로 호출한다. 2) 실인자(가인자)가 변경되어도 가인자(실인자)에 영향이 없다.★ call by reference public int add(int a, int b) -> 가인자 { return a + b; } 함수 영역 a b 가인자 --------------------------------- 호출 영역 a b 실인자 int a = 10; int b = 20; add(a, b); 실인자(main 안의 지역변수) -> a, b -> stack 복사 -> int a, int b -> 처리식(a + b) -> 호출영역 add(a, b) 반환 call by value는 기본적으로 함수를 넣어서 파라미터..