이것이 자바다 스터디를 하면서 중요하게 생각되는 부분, 알게 된 점, 스터디를 진행하며 얻은 정보를 기록한다.
✔ 참조 타입 (Reference Type)
객체(object)의 번지를 참조하는 타입
✔ 참조 타입 종류
✔ 객체 (Object)
데이터와 메소드로 구성된 덩어리
객체 = 데이터 (필드) + 메소드
JAVA :: 자바의 메모리 구조 - 1. 메소드 영역(Method Area)
✔ 메모리 사용 영역
✔ 메소드 영역
✔ 힙 영역
✔ 스택 영역
✔ 참조 타입 변수의 ==
, !=
연산
✔ null & NullPointerException
NullPointerException
발생✔ 쓰레기 수집기 (Garbage Collector)
✔ 문자열(String) 타입
✔ 문자열 비교
equals()
메소드 사용✔ new 연산자
✔ charAt()
String subject = "안녕하세요";
char charValue = subject.charAt(3); // 세
✔ length()
String subject = "안녕하세요";
int length = subject.length(); // 5
✔ replace()
String oldStr = "안녕하세요";
String newStr = oldStr.replace("세", "신가");
// oldStr -> 안녕하세요
// newStr -> 안녕하신가요
✔ substring()
substring(int startIdx)
: startIdx에서 끝까지substring(int startIdx, int endIdx)
: startIdx에서 endIdx 앞까지String num = "123456";
String threeNum = num.substring(0, 3); // "123"
String endThreeNum = num.substring(3); // "456"
✔ indexOf()
String subject = "안녕하세요";
int idx = subject.indexOf("하"); // 2
int noIdx = subject.indexOf("해"); // -1
✔ contains()
String subject = "안녕하세요";
boolean result = subject.contains("안녕"); // true
✔ split()
String subject = "안,녕,하,세,요";
String[] arr = subject.split(","); // ["안", "녕", "하", "세", "요"]
✔ 배열 타입 (Array Type)
✔ 배열 특징
✔ 배열 선언
// 배열 선언 방법
타입[] 변수; // 주로 이렇게 씀
타입 변수[];
// 배열에 값을 함께 넣어 선언 가능
타입[] 변수 = { 값0, 값1, 값2, ... };
// 미리 변수를 선언한 경우
타입[] 변수;
변수 = { 값0, 값1, 값2, ... }; // 컴파일 에러
타입[] 변수;
변수 = new 타입[] { 값0, 값1, 값2, ... }; // new 타입[]을 붙여주면 됨
// 메소드의 매개변수가 배열 타입일 경우
void printItem(int[] scores) { ... }
printItem({1, 2, 3}); // 컴파일 에러
printItem( new int[] {1, 2, 3}); // 굿
// new 연산자로 배열 생성
타입[] 변수 = new 타입[길이]; // 배열 안의 값은 타입별 배열의 초기값으로 설정됨
✔ 배열 길이
ArrayIndexOutOfBoundsException
발생배열변수.length; // 배열의 길이 리턴
// 배열의 length 필드는 읽기만 가능, 값 변경 불가
intArray.length = 10; // 컴파일 에러
private void clear(Memo memo) {
memo = null;
}
public boolean check(Memo memo) {
this.clear(memo);
System.out.println(memo);
}
// check에 있는 memo와 clear에 있는 memo가 다르다