본문 바로가기

전체 글337

[java] 바인딩, 정적 메모리 할당, 동적 메모리 할당 바인딩 binding 이란 변수에 변수의 값을 연결하는 것을 말한다. 초기화도 값을 넣는것도 바인딩이라 할 수 있겠다 즉 a = b 라는 상관관계를 만드는 것을 말한다 a = 1 은 a와 1 을 정적 바인딩 한것이고 (따로 참조 없이도 정의가능) a = 메소드.() 은 a와 메소드.() 를 동적 바인딩한것이다 (따로 참조 해야만 정의가능) 정적 바인딩 : 해당 변수에 변수와 관련된 값을 저장하는 것 (stack 에 저장됨) ex) int data = 5; 동적바인딩 : 참조변수 또는 포인터로 힙영역의 객체를 연결시켜주는 것 (stack 에 변수를 저장, heap 으로 참조) ex) Object ob = new Object(); 메모리 할당 컴퓨터를 사용한다는 것은 컴퓨터 내의 메모리 공간을 이용하여 프로.. 2022. 4. 30.
[java] == 과 equals 의 차이 a와 b가 같다고 표현할때 == 를 써서 a == b 로 쓰곤하였다 하지만 같다는 표현에는 equals 도 사용된다 값이 같다는 것을 표현했지만 엄밀하게 말해서 프로그래밍에서는 값이 같다는 것은 2가지로 해석가능하다 데이터 공간에 쓰여진 데이터 값이 같다 데이터 주소 값이 같다 이 뜻의 차이로 인해서 == 과 equals 가 다르게 된다 == == 은 참조 주소가 없는 primitive type ( ex)int, boolean 등등 ) 끼리의 연산의 경우 데이터 자체의 값을 비교하지만 참조 주소가 있는 reference type ( ex) 문자열 String, 배열 array 등등) 의 연산의 경우 주소값을 비교한다 정확하게 말하자면 primitive type 의 경우 값이 같으면 주소값이 모두 같으므로.. 2022. 4. 27.
[java] printf() , println(), 서식지정자 println() 의 사용 println() 의 경우 ()안의 매개 변수 값으로 숫자와 문자열을 모두 가질수 있다 (boolean 도 가능, true false 는 "" 없이 입력됨) print()의 경우와 동일하며 ln 을 붙이는 것으로 줄바꿈을 추가명령한 것 뿐이다 system.out.println(10); // 10 숫자 system.out.println(true); // true - ()안에 따옴표가 필요없다 = 문자열이 아닌 boolean 타입이다 system.out.println("INFP"); // INFP - 문자열 char[] toc = {'t', 'o', 'k','k','i','c'}; system.out.println(toc); // tokkic - 배열 내부 요소도 출력 system.. 2022. 4. 26.
[java] final final 키워드는 보통 상수타입인 변수를 정의할때 사용된다 데이터의 수정이 불가능 하도록 할때 사용한다 final 은 사용위치마다 사용이 달라지는데 final 클래스명 // 클래스명 앞에 붙으면 해당 클래스는 상속이 불가능하다 final 메소드명 // 메소드명 앞에 붙으면 해당 메소드의 클래스는 상속 가능하지만 해당 메소드를 overriding 할수없다 final 메소드 내부의 인자 // 해당 메소드 내부에서 final 이 붙은 인자의 값은 변경 불가하다 즉, 사용자가 값을 임의로 설정하거나 상속하여 변경할수없도록 하기 위해서 final 을 붙여 보호할수있다 2022. 4. 25.