연산자
- 논리 연산자: && (AND = 피연산자 모두 참), ||(OR = 피연산자 둘 중 하나라도 참), !(피연산자의 반대 boolean 값)-> 결과 값이 boolean 타입
- instance of 연산자: (객체명) instance of (클래스명)-> 객체가 해당 클래스의 객체인지 비교해서 boolean 값으로 반환
- 비트 연산: <<(왼쪽으로 shift, 2의 배수로 곱셈 연산되는 것과 동일), >>(오른쪽으로 shift, 2의 배수로 나눗셈 연산되는 것과 동일)
조건문
- switch문: switch { case(조건): (연산) } 형태. case의 마지막에는 꼭 break;를 달아줘야 함. 끝에 default:(연산) 붙일 수 있음
- if vs switch: if는 이중, 삼중, ~ 으로 복합 지원이 되지만 상대적으로 코드가 중복되는 부분이 많음
- 향상된 for문: for(변수 타입 변수명:배열) {연산}
배열
- 선언: int[ ] arr=new int[사이즈];
- 배열 복제: int[ ] b=a.clone(); or int[ ] b=Arrays.copyOf(a,a.length);
- 다차원 배열의 선언: 2차원-int[ ][ ] arr = new int[ ][ ]; / 3차원-int[ ][ ][ ] arr = {{{1, 2}, {3, 4}}, {{5, 6}, {7, 8}}};
// 반복문을 통한 초기화
int[][] array = new int[2][3]; // 최초 선언
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
arr[i][j] = 0; // i, j 는 위 노란색 네모박스 안에있는 숫자를 의미하며 인덱스 라고 부릅니다.
}
}
- 다차원 배열에서의 가변 배열: 2차원 배열 생성시 열의 길이를 미리 지정안하고, 행마다 열의 길이를 따로 지정 가능
컬렉션
- 종류: list, set, queue, map
- List
- ArrayList: 배열처럼 일렬로 데이터 저장 및 인덱스로 조회 가능. 배열과 달리 크기 미리 지정x
- 선언 및 생성: ArrayList<Integer> intList = new ArrayList<Integer>();
- 값 추가: intList.add(값);
- 값 수정: intList.set(인덱스 번호, 수정할 값);
- 값 삭제: intList.remove(삭제할 인덱스 번호);
- 출력: intList.toString();
- LinkedList: ArrayList와 동일한 기능이지만 느림. 중간에 값 추가하는 기능이 있음
- 값 중간에 추가: linkedList.add(인덱스 번호, 추가할 값);
- Stack: LIFO(밑에서 위로 쌓고 위에서부터 꺼냄->최근 저장된 데이터 순으로 확인할 때 사용)
- 선언: Stack<Integer> intStack = new Stack<Integer>();
- 추가: intStack.push(추가할 값);
- 조회: intStack.peek(); ->맨 위 값 조회(맨 마지막에 저장된 값 조회)
- 꺼내기: intStack.pop(); -> 맨 위 값 꺼냄
- 크기 확인: intStack.size();
- ArrayList: 배열처럼 일렬로 데이터 저장 및 인덱스로 조회 가능. 배열과 달리 크기 미리 지정x
- Queue: FIFO(데이터 저장한 순서대로 값 조회)
- 선언: Queue<Integer> intQueue = new LinkedList<>();
- 추가: intQueue.add(추가할 값);
- 조회: intQueue.peek(); ->가장 처음 저장된 데이터 조회
- 꺼내기: intQueue.poll(); ->가장 처음 저장된 데이터 꺼냄
- Set: 순서가 없고 중복이 없는 배열
- 선언: Set<Integer> intSet = new HashSet<Integer>();
- 추가: intSet.add(값);
- 삭제: intSet.remove(삭제할 값);
- 포함 확인: intSet.contains(포함 확인할 값); -> boolean값으로 결과 반환
- iterator 사용: set은 인덱스값이 없어서 인덱스를 통해 값을 가져올 수가 없음! 그래서 iterator 사용하면 편리함
- hasNext(), next() 메소드로 값 확인 및 가져오기
Iterator iterator=set.iterator();
for (int i = 0; i < set.size(); i++) {
System.out.println(i+1+"."+ iterator.next());
}
- Map: key-value 형태로 데이터 저장
- 선언: Map<String, Integer> intMap = new HashMap<>(); -> key가 String, value가 int타입
- 추가: intMap.put(key, value값);
- 조회: intMap.get(key 값);
- 전체 key 조회: intMap.keySet();
- 전체 value 조회: intMap.values();
- 삭제: intMap.remove(삭제할 key값);
메소드
- string 메소드
메서드 | 응답값 타입 | 설명 |
---|---|---|
length() | int | 문자열의 길이를 반환한다. |
charAt(int index) | char | 문자열에서 해당 index의 문자를 반환한다. |
substring(int from, int to) | String | 문자열에서 해당 범위(from~to)에 있는 문자열을 반환한다. (to는 범위에 포함되지 않음) |
equals(String str) | boolean | 문자열의 내용이 같은지 확인한다. 같으면 결과는 true, 다르면 false가 된다. |
toCharArray() | char[] | 문자열을 문자배열(char[])로 변환해서 반환한다. |
new String(char[] charArr) | String | 문자배열(char[]) 을 받아서 String으로 복사해서 반환한다. |
참조형 변수란?
제 값은 별도의 메모리 공간에 저장되고, 변수의 메모리 공간에는 해당 값이 할당된 주소값(memory address)이 저장된다
'코딩 > 자바' 카테고리의 다른 글
자바 문법 - 5주차(쓰레드) (0) | 2025.01.07 |
---|---|
자바 문법 - 4주차(generic) (0) | 2025.01.06 |
자바 문법 - 4주차 (0) | 2025.01.02 |
자바 문법 - 3주차 (0) | 2024.12.31 |
자바 문법 - 1주차 (0) | 2024.12.30 |