0902

호두·2022년 9월 2일
0

공부

목록 보기
15/25

하드웨어 - OS - 소프트웨어
하드웨어:눈에보이는부품(모니터,부품등)
OS
소프트웨어: 눈에보이지않는 프로그램


JVM(Java Virtual Machine) 자바의 메모리 구조
상수및메소드부

힙: 동적메모리 영역 (원래 변수 크기가 스택에 미리 정해져 있어야만 프로그램이 실행된다. ex)인원수를 입력받아 배열크기를 정할 수 없다. java에서 new라고 적혀있으면 힙에 할당한다. new=동적메모리할당연산자)

  • Garbage Collector: 스택이 가리키는 힙의 주소값이 변하면 gc가 기존 힙의 주소값을 비운다. (+ 배열의 초기값을 0, false등으로 채우고, arr.length도 알려주고)

스택: 선언된 변수가 들어가는 곳

△레지스터: OS와 통신하는 소프트웨어!

int[][] arr4 = new int[2][2]; // [2개방][크기 2개씩]

/*
 * 2차원 배열
 */

public class Exam_02 {
	public static void main(String[] args) {
		//int arr[] = new int[3];
		int[][] arr1 = new int[2][3]; // [2개방][크기 3개씩]
		int[] arr2[] = new int[2][2];
		int arr3[][] = new int[2][2];
		
		int[][] arr4 = new int[2][]; // [2개방][크기 각자 나중에 선언]
		arr4[0] = new int[3]; // arr4의 (주소값)0번이 가리키는 배열 : 크기 3
		arr4[1] = new int[4]; // arr4의 (주소값)1번이 가리키는 배열: 크기 4
		
		System.out.println("arr4.length = " + arr4.length); // 2
		System.out.println("arr4.length = " + arr4[0].length); // 3
		System.out.println("arr4.length = " + arr4[1].length); // 4
	}

}

public class Exam_03 {
	public static void main(String[] args) {
		int arr[][] = new int[5][5]; // length=5
		
		int co = 1;
		for(int i=0; i<5; ++i) {
			for(int j=0; j<5; ++j) { // i=0, j=0,1,2,3,4, co=1,2,3,4,5 / i=1, j=0,1,2,3,4, co=6,7,8,9,10 ...
				arr[i][j] = co;
				++co;
			}
		}
		
		/*
		5	10	15	20	25
		4	9	14	19	24
		3	8	13	18	23
		2	7	12	17	22
		1	6	11	16	21
		 */
		
		for(int i=4; i>=0; --i) {
			for(int j=0; j<=4; ++j) {
				System.out.printf("%2d\t", arr[j][i]);

			}
			System.out.println();
		}

//		/*
//		25	24	23	22	21
//		20	19	18	17	16
//		15	14	13	12	11
//		10	9	8	7	6
//		5	4	3	2	1
//		 */
//		
//		for(int i=4; i>=0; --i) {
//			for(int j=4; j>=0; --j) {
//				System.out.printf("%2d\t", arr[i][j]);
//
//			}
//			System.out.println();
//		}
		
//		/*
//		21	16	11	 6	 1	
//		22	17	12	 7	 2	
//		23	18	13	 8	 3	
//		24	19	14	 9	 4	
//		25	20	15	10	 5	
//		 */
//		
//		for(int i=0; i<5; ++i) {
//			for(int j=4; j>=0; --j) {
//				System.out.printf("%2d\t", arr[j][i]);
//
//			}
//			System.out.println();
//		}
		

//		/*
//		 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	
//		 */
//
//		
//		for(int i=0; i<5; ++i) {
//			for(int j=0; j<5; ++j) {
//				System.out.printf("%2d\t", arr[i][j]);
//			}
//			System.out.println();
//		}
		
		
	}

}
/*
 1	 2	 3	 4	 5	
16	17	18	19	 6	
15	24	25	20	 7	
14	23	22	21	 8	
13	12	11	10	 9	
 */

public class Exam_04 {
	public static void main(String[] args) { // 아래 for문에서 공통점을 찾아 단축하기
		int arr[][] = new int[5][5];
		
		int co = 0;
		int k = 4;
		for(int j=0; j<3; ++j){
			for(int i=j; i<=k; ++i){arr[j][i] = ++co;}
			for(int i=j+1; i<=k; ++i){arr[i][k] = ++co;}
			for(int i=k-1; i>=j; --i){arr[k][i] = ++co;}
			for(int i=k-1; i>=j+1; --i){arr[i][j] = ++co;}
			k--;
		}
		
		for(int i=0; i<=4; ++i) {
			for(int j=0; j<=4; ++j) {
				System.out.printf("%2d\t", arr[i][j]);
			}
			System.out.println();
		}
	}
}
/*
for(int i=0; i<=4; ++i){arr[0][i] = ++co;}	//1,2,3,4,5
for(int i=1; i<=4; ++i){arr[i][4] = ++co;}	//6,7,8,9
for(int i=3; i>=0; --i){arr[4][i] = ++co;}	//10,11,12,13
for(int i=3; i>=1; --i){arr[i][0] = ++co;}	//14,15,16

for(int i=1; i<=3; ++i){arr[1][i] = ++co;}	//17,18,19
for(int i=2; i<=3; ++i){arr[i][3] = ++co;}	//20,21
for(int i=2; i>=1; --i){arr[3][i] = ++co;}	//22,23
for(int i=2; i>=2; --i){arr[i][1] = ++co;}	//24

for(int i=2; i<=2; ++i){arr[2][i] = ++co;}	//25
for(int i=3; i<=2; ++i){arr[i][2] = ++co;}
for(int i=1; i>=2; --i){arr[2][i] = ++co;}
for(int i=1; i>=3; --i){arr[i][2] = ++co;}
*/
profile
web developer

0개의 댓글