코딩을 하면 예외처리는 필연적이다. 1 2 3 4 5 6 7 8 9 10 11 import java.util.Scanner; public class Main { public static void main(String[] args) { int intArr[] = new int [2]; intArr[3] = 10; } } Colored by Color Scripter cs 'intArr' 배열의 인덱스 범위는 2까지로 선언 하였다. 만약 3번째 인덱스에 어떠한 값 '10'을 넣으면 어떻게 될까 ? 당연히 오류메시지와 함께 디버깅창으로 넘어가게 된다. 메모리의 접근 방법이 잘못되었기에 에러문구가 뜨게 된다. 많은양의 코딩을 하다가 이러한 실수는 사람인지라 나타나기 마련이다. 이를 위한 해결법에는 TRY-CAT..
main메소드 안에 args는 무엇일까 ? RUN -> RUN configuration 해당하는 곳에서 Arguments 변경 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 import java.util.Scanner; public class Main { public static void main(String[] args) { System.out.println(args[0]); System.out.println(args[1]); System.out.println(args[2]); for(int i =0; i
첨자 5를 포함한 배열 I를 선언한뒤 사용자로부터 입력 받을수 있게해주는 Scanner를 사용하여 5개의 정수를 입력받는다. 그 후, 해당하는 첫째, 세번째, 다섯번째 수를 더한값을 출력해주면 된다. 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import java.util.Scanner; public class Main { public static void main(String[] args) { int I[] = new int[5]; Scanner A = new Scanner(System.in); for(int i = 0 ; i
소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 import java.util.Scanner; public class Main { public static void main(String[] args) { char C[] = new char[10] ; char m; Scanner A = new Scanner(System.in); for(int i = 9; i>-1;i--) { m = A.next().charAt(0); C[i] = m ; } for(int i =0; i-1;i--) 이렇게 하였다. 변수 i 는 9부터 0까지 돌게된다. A.next().charAt(0); ==> 스캐너 A에서 받아들인 string중 첫번째 문자를 가져오는것이..
비정방형 배열을 만들어 값을 초기화하고 출력해보자. 10 11 12 20 21 X 30 31 32 40 41 X 위 배열은 2차원 배열이다. 1행은 3열로 이루어져있고, 2행은 2열 , 3행은 3열 , 4행은 2열로 이루어져있다. 이 배열의 첨자를 무턱대고 첨자를 [4][3] 이라고 선언할경우 X로 표기된 부분과 같이 공간을 낭비하는 경우가 생긴다. 이 경우 어떻게 해야될까 ? 해결법은 비정방형 배열이다. 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 27 28 29 30 public class Practice { public static void main(String[] args) { // TODO Auto-generated ..
배열을 선언한 후 , 첨자를 붙이지 않은 순수 배열 이름은 무엇을 의미할까 ? 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 public class Main { public static void main(String[] args) { int intArr[] = new int[1]; int intNum[] = new int[1]; int myArr[] = intArr; intArr[0] = 1; intNum[0] = 1; System.out.println("intArr -> "+intArr); System.out.println("intNum -> "+intNum); System.out.println("intArr==intNum -> "+(in..
★JVM이 사용하는 메모리 영역 ▶ 메소드 영역 -> 스레드 별 생성 ->로딩된 클래스 바이트 코드 클래스 정보, 멤버 변수, static 메소드 , static변수 -> 객체를 만들지 않아도 사용 가능 -> 모든 스레드가 공유(프로세스내에서의 흐름) ▶ 힙영역 ->JVM 시작할 때 생성 ->객체, 배열 저장 -> 사용 되지 않는 객체는 Garbage Collector 가 자동제거 ▶ JVM 스택 -> 스레드 별 생성 -> 메소드 호출할때마다 frame을 스택에 추가 ★ 메모리 사용 영역 1. java Main -> 실행 2. JVM 구동 -> 메소드,힙영역 생성 3. Memory 로딩 4. main 스레드 생성, JVM 스택 생성 5. main 메소드 호출 1 2 3 4 5 6 7 8 9 10 11 1..