공부 자료/Java23 배열 복사와 for문 배열 배열은 길이를 변경할 수 없다. 배열의 길이를 늘리고 싶을 땐 더 긴 배열을 만들고 기존 배열을 복사해서 넣어야 한다. 배열은 for문을 이용하거나 System.arraycopy 메소드를 이용하여 복사할 수 있다. 배열을 복사하는 메소드는 다음과 같다. System.arraycopy(Object1, int1, Object2, int2, int3); System.arraycopy(arr1, 0, arr2, 0, arr.length); System.arraycopy은 Object1의 항목을 int1 인덱스부터 int3만큼 복사하여 Object2의 int2 인덱스부터 붙여넣는다는 의미이다. 두번째 줄은 arr1의 모든 배열을 arr2로 복사하는 코드이다. 배열과 for문 자바는 for문에 배열을 넣고 쓸.. 2022. 11. 10. 참조 타입과 메모리 영역 메모리 영역 JVM은 운영체제에서 할당받은 메모리 영역을 메소드 영역, 힙 영역, JVM 스택 영역 3가지로 구분해서 사용한다. 메소드 영역 메소드 영역은 JVM이 시작할 때 생성되고 모든 스레드가 공유하는 영역이다. 메소드 영역은 정적 필드(static field), 상수(constant), 메소드 코드, 생성자(constructor) 등을 분류해서 저장한다. 힙 영역 힙 영역은 객체와 배열이 생성되는 영역이다. 힙 영역에 있는 객체와 배열을 JVM 스택 영역의 변수나 다른 객체의 필드에서 참조한다. 만일 참조하는 변수가 없다면 JVM이 스스로 Garbage Collector를 실행시켜 자동으로 제거한다. 따라서 힙 영역의 쓸모없는 객체를 제거하기 위해 따로 코드를 작성할 필요가 없다. JVM 스택 영.. 2022. 11. 10. 논리연산자 python에서 쓰던 and와 or을 생각하며 편하다. and = & 또는 && (논리합) 두 피연산자가 모두 true일때 true를 반환한다. 하나라도 false이면 false를 반환한다. or = | 또는 || (논리곱) 두 피연산자 중 하나라도 true 가 있다면 true를 반환한다. 둘 다 false일 경우 false를 반환한다. 위 연산자들을 사용할때는 and와 or 모두 &&와 ||를 쓰는게 낫다. &와 &&는 동일한 의미이지만 &&는 앞에 있는 피연산자가 false면 뒤의 연산자를 계산하지 않고 바로 false를 내고, ||는 앞에 있는 피연산자가 true면 뒤의 연산자를 계산하지 않고 바로 true를 낸다. 즉 후자가 연산속도가 더 빠르다. 2022. 11. 8. 삼항연산자 간단한 if else 문을 코드 한줄로 바꿀 수 있는 연산자이다. (조건식) ? 결과1 : 결과2 예시는 아래와 같다. int score = 95; char grade = (score > 90) ? 'A' : 'B'; score가 90 초과일 경우 grade는 'A'가 되고, score가 90 이하일 경우 grade는 'B'가 된다. 그리고 위 코드는 아래의 코드와 동일하다. int score = 95; char grade; if (score>90){ grade='A' } else { grade='B' } 코드를 깔끔하게 하기 위해 최대한 삼항연산자를 쓸 수 있는 상황에서는 삼항연산자를 쓰도록 하자. 2022. 11. 8. 자동 타입 변환/ 강제 타입 변환 자동 타입 변환 변수에 값을 저장할 때 자동으로 타입이 변환되어 저장됨. 정수 자료형은 int로 자동 변환되어 저장. 실수 자료형은 double로 자동 변환되어 저장. int a = 1; int b = 2; double val = a/b; 위와 같이 하면 val이 0.5가 아니라 0.0이 됨. a,b 모두 int이므로 a/b의 결과도 정수로 나오게 되고, 그 후 그 결과값이 double로 바뀌는 것임. 제대로 된 결과를 얻으려면 val을 초기화할 때 a혹은 b 앞에 (double)을 붙여 타입을 강제로 변환시켜야함. 강제 타입 변환 변수에 값을 저장할 때 강제로 타입을 변환하여 저장할 수 있음. 숫자를 다른 숫자 자료형으로 바꿀때는 (int), (char)등을 앞에 붙임. 숫자를 문자열로 바꿀때는 Str.. 2022. 11. 7. 이전 1 2 3 4 다음