본문 바로가기

전체 글

(256)
Star UML // 더블클릭 -> add attribute : 속성 선언 (name, age, score) // 오른쪽 밑 -> properties : 속성의 타입 써주기 // visiblity -> public(+), private(-) 설정할 수 있음 // 더블클릭 -> add operation : 메서드 선언 // 왼쪽 밑 -> direct association : School이 Student를 사용하고 있다 // 왼쪽 밑 -> 1. compostion(-----◆) : School과 Student가 강하게 연결되어 있다 (= 결합도가 높다) // 왼쪽 밑 -> 2. aggregation(----◇) : School과 Student가 약하게 연결되어 있다 (= 결합도가 비교적 낮다) // 왼쪽 밑 -> 3. de..
Class Review TestClass t1 = new TestClass(10, "문자열"); TestClass t2 = new TestClass(20, "무우우운자아아열"); int a = 10; t1.doProcess(a);// 이렇게 시행 : 10 t2.doProcess(a);// 이렇게 시행 : 20 int result1 = t1.doProcess(a); // 이렇게 시행 : 10 int result2 = t2.doProcess(a); // 이렇게 시행 : 20 System.out.println("Result 1: " + result1); // Result 1: 13 System.out.println("Result 2: " + result2); // Result 2: 23 t1.doProcess(a);// 이렇게 시행..
문자열 비교 String[] str3 = new String [3]; String[] str4 = new String [4]; str3[2] = "안녕"; str4[2] = "안녕"; if(str3[2] == str4[2]) { System.out.println("같다"); }else { System.out.println("다르다"); }// A. 같다. (안녕이라는 글자 자체에 주소값을 설정해둔거임) String str1 = new String("안녕"); String str2 = new String("안녕"); System.out.println(str1);// 안녕하세요 System.out.println(str2);// 안녕하세요 if(str1 == str2) {// A. 다르다. (두 참조변수의 주소값이 다르니..
참조 주소 String str1 = "안녕하세요"; String str2 = "안녕하세요"; System.out.println(str1); System.out.println(str2); if(str1 == str2) { System.out.println("같다"); }else { System.out.println("다르다"); } --> str1, str2 둘다 참조주소임 // heap메모리에 안녕하세요 라는 글자를 주소값을 설정해놓음. (문법적으로) 효율적으로 하기위해! // ---> 문자를 비교하는게 아니다. (주소값을 비교할 의도가 아닌이상 이렇게 하지마세요 ★★★)
이중배열2 int[] arr1 = new int[3]; // Q. 문법적으로 프로그래머가 다룰 수 있는 변수의 수는? ( ?? = ?? ) // A. arr1[0], arr1[1], arr1[2], arr1 = null.... 이렇게 4개 int[][] arr2 = new int[4][3]; // A. 4*3 = 12개, arr2 = null, arr2[0], arr2[1], arr2[2], arr2[3] --> 총 17개겠지뭐 // 생성순서 // 1. stack메모리에 arr2생성, heap메모리에 0000로 1중배열을 가진 주소값 0xFF11생성, arr2에 주소값 부여 // 2. heap메모리에 000 배열이 총4개가 생성됨 (0xAA11, 0xBB11, 0xCC11, 0xDD11) // 3. 0xFF11의 ..
이중배열 // 그냥 배열이 선이라면, 이중배열을 면임!(= 표) // 2중 배열을 쓴다면 --> 2중 for문을 사용해야함 ★★★★ int[][] arr = new int[4][3];// 세로로 4줄, 가로로 3칸 생성된다고 생각하자 // (= 총 12개의 int값을 넣을 수 있는 2중배열) arr[2][1] = 10;// 3번째줄 2번째칸에 10이 입력됨 arr[1][0] = 50;// 2번째줄 1번째칸에 50이 입력됨 // --> 이상태로 끝내면 나머지 10칸들은 0임 for(int x = 0 ; x < arr.length ; x++) { for(int y = 0 ; y < arr[x].length ; y++) { System.out.println(arr[x][y]); } } // 구구단에서도 x단에서 y로 ..
메모리2 int[] arr1 = new int[5]; arr1[0] = 50; arr1 = new int[7]; System.out.println(arr1[0]); // 1. stack메모리에 arr1을 생성, heap메모리에 00000배열을 가진 0xFF11 생성, arr1에 주소값 부여 // 2. arr1가 가르키는 주소값(0xFF11)의 [0]번째에 50을 넣어라 // 3. heap메모리에 0000000배열을 가진 0xCC11생성, arr1에 주소값 부여 // (= heap메모리의 0xFF11 주소값과 모든 정보들은 소멸된다) // 4. arr1이 가르키는 주소값에 아무런 정보도 입력되지 않은 상태에서 syso를 하면 0이 출력됨! int[] arr1 = new int[3]; { int[] arr2 = ne..
메모리의 소멸 // heap메모리의 소멸 // 메모리를 해제하지 않으면 메모리 누수가 발생하여 시스템 성능 저하나 리소스 낭비 등의 문제를 유발할 수 있음 // 1. stack메모리에 arr1생성, heap메모리에 00000 배열을 가진 0xFF11 주소값이 생성, arr1에 (0xFF11) 주소값 부여함 // 2. stack메모리에 arr2생성, heap메모리에 000 배열을 가진 0xFF22 주소값이 생성, arr1에 (0xFF22) 주소값 부여함 // 3. heap메모리의 주소값을 가르키는 참조변수(arr1, arr2)가 사라지면 heap메모리가 소멸이 된다! // = stack메모리가 소멸되면서(참조변수가 사라지면시) 가비지 컬렉션(Garbage Collection)이라는 메커니즘을 통해 동적 할당된 메모리를 ..