단축키
클래스명과 파일명 한꺼번에 변경 (alt + shift + r)
배열 call stack과 heap의 특징
특징 1: call stack은 변수명으로 찾을 수 있음
heap은 변수명으로 찾을 수 X (arr의 주소값으로 heap에서 메모리를 찾아야함)
특징 2: call stack은 기본값 세팅X (값을 반드시 대입해야함)
heap은 기본값 세팅됨(ex : int[] arr = new int[5]만으로 기본값 세팅o)
변수
하나의 값을 보관하는 장소
배열
동일한 데이터 타입의 데이터를 담을 수 있는 공간
생성된 배열의 크기는 변경할 수 X (배열의 단점)
ex>
데이터 타입[] 배열이름 = new 데이터타입[index];
배열 초기화
배열 선언과 동시에 값을 대입
ex>
int[] arr1 = {1,2,3,4,5,6,7,8,9,10};
int[] arr2 = new int[] {10,20,30}; //이때 배열크기를 명시하면 X
toString() 메서드
객체가 가지고 있는 정보나 값들을 문자열로 만들어 리턴하는 메서드
>
int[] arr = new int[] {1,2,3};
System.out.println(arr[]); //객체임에도 "arr[]"을 독단적으로 사용할 수 있는 이유는 .toString이 자동으로 호출되기 때문
System.out.println(arr.toString[]);
//둘다 같은 결과값 출력
Error의 종류
compileError: 자바의 문법을 코드 작성시 어겨서 발생한 오류
runtimeError: 문법상 오류는 없으나 실행했을때 오류가 생기는 것 ex> NullPointerException
Copy
Shallow Copy (얕은 복사)
배열의 참조 주소값을 복사
heap 영역의 배열객체는 복사되지 X
>
int[] arr1 = {1,2,3};
int[] arr2 = arr1;
arr[1] = 4; //전체 배열 [1]의 값이 다 바뀜
Deep Copy (깊은 복사)
heap영역의 배열객체가 복사되어 2개가 됨
3가지 방법으로 DeepCopy 가능
1. for문을 이용해 직접 복사
2. System.arraycopy(원본배열이름, 원본배열의 시작인덱스, 도착지배열, 도착지배열의 시작인덱스, 개수)
>
System.arraycopy(arr1, 0, arr2, 0, 3);
3. .clone()
>
int[] arr2 = arr1.clone();
hashCode
실제 주소를 가리키는 key값
객체마다 고유한 hashCode값을 가짐
ex>
System.out.println(arr1.hashCode());
System.out.println(arr2.hashCode());
//출력 결과에 따라 arr1과 arr2가 가리키는 객체가 같은지 확인 가능
.substring() 메서드
=java.lang.String.substring(beginIndex, endIndex) 메서드
문자열에서 특정 부분만 골라낼 때 사용하는 메서드
.substring(start, end)의 값을 지정할때 start 값은 필수이며 end 값이 지정되지 않으면 문자열의 끝까지를 의미함
>
String test = "01234567890";
System.out.println(text.substring(0, 3)+"****"+text.substring(7, 11)); //012****7890 출력
행과 열
행 = 가로 = outer loop
열 = 세로 = inner loop
★ 출력해보기
>
for(int i=0; i<2; i++) {
for(int j=0; j<3; j++) {
System.out.print("★");
}
System.out.println();
}
// 출력결과
// ★★★
// ★★★
'프로그래밍 > JAVA' 카테고리의 다른 글
03.30(별 출력하기, arguments 입력 받기, 2차원 배열의 초기화) (0) | 2020.03.30 |
---|---|
03.27 중첩반복문(구구단과 별 출력하기) (0) | 2020.03.27 |
03.25 (0) | 2020.03.25 |
03.24 (0) | 2020.03.24 |
03.23 (0) | 2020.03.23 |