◇ 연산자
https://djhelloworld.tistory.com/24
- 증감연산자[++, --]
위 코드에서 int val = ++a + b--; 는 다음과 같이 진행된다.int a = 10; int b = 10; int val = ++a + b--;
- 형변환연산자[ (type) ]
double doubleNumber = (double) 93 + 98.8; // 93.0 + 98.8
- 삼항연산자[ a 조건 b ? true : false]
위와같이 사용하며 ' ? ' 앞 조건이 true이면 ' : ' 앞에있는 명령을, false면 뒤에있는 명령을 진행함a > b ? a : b
만약 위 a > b ? a : b의 식에서 a > b가 true라면 a가 false라면 b가 실행됨 - 시프트연산자[ <<, >> ]
위와같이 시프트 연산자는 해당 숫자의 2진표현을 말 그대로 움직인 후 반환하는 연산이다.a = 5 a << 1 = 10 // 5 = 0101, 10 = 1010 a >> 1 = 2 // 5 = 0101, 2 = 0010
◇ 조건문과 반복문
https://djhelloworld.tistory.com/26
◇ 배열
https://djhelloworld.tistory.com/30
- 배열을 특정값으로 초기화 : Arrays.fill(arr, val) → arr배열의 모든 값을 val으로 초기화
- 얕은 복사 : 배열은 참조형 변수이며 실제 값이 아닌 실제 값의 주소값을 가진다, 따라서 배열 변수 간에
대입 연산자 ' = '를 사용해서 복사를 하게 되면 주소값만 복사된다.
int[] a = { 1, 2, 3, 4 }; int[] b = a; // 얕은 복사 b[0] = 3; // b 배열의 0번째 순번값을 3으로 수정. (1 -> 3) System.out.println(a[0]); // 출력 3 <- a 배열의 0번째 순번값도 3으로 출력.
- 깊은복사 : 참조가 아니라 진짜 새로운 배열을 똑같이 만드는 명령어들
- for문을 사용한 복사
int[] a = { 1, 2, 3, 4 }; int[] b = new int[a.length]; for (int i = 0; i < a.length; i++) { b[i] = a[i]; // 깊은 복사 }
- .clone() 메서드 사용
int[] a = { 1, 2, 3, 4 }; int[] b = a.clone(); // 가장 간단한 방법. // 하지만, clone() 메서드는 2차원이상 배열에서는 얕은 복사로 동작!!
- Arrays.copyOf(a, a.length)
import java.util.Arrays; public class Main { public static void main(String[] args) { int[] a = { 1, 2, 3, 4 }; int[] b = Arrays.copyOf(a, a.length); }
- for문을 사용한 복사
◇ 컬렉션
※ 컬렉션은 참조형 변수를 저장한다.
크기 자동조정 / 추가 / 수정 / 삭제 / 반복 / 순회 / 필터 / 포함확인 등의 기능을 가지고있다.
https://djhelloworld.tistory.com/50
- List
- ArrayList : 배열처럼 인덱스로 값을 조회할 수 있게 저장
- LinkedList : 메모리 남는 공간을 요청해 여기저기 나누 실제 값을 담아놓고 주소값으로 목록을 구성하고 저장
조회속도는 느리고 값을 중간에 추가 삭제하는건 빠름 - Stack : 데이터를 수직으로 쌓아놓고 넣었다 빼서 조회하는 형식, LIFO(Last-In, First-Out)
- Set
- Queue : 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조
→ FIFO(First-In, First-Out) 또는 LILO(Last-In, Last-Out)방식
인터페이스가 없으므로 위와같이 선언Queue<Integer> intQueue = new LinkedList<>();
- Map
'Java & Spring > Java' 카테고리의 다른 글
8일차 - Java강의(객체지향 ☆) (0) | 2024.07.24 |
---|---|
enhanced switch()문 (0) | 2024.07.24 |
String, StringBuffer, StringBuilder의 차이점 (0) | 2024.07.23 |
Scanner클래스 next()메서드 개행문자 처리 (0) | 2024.07.22 |
6일차 - Java강의(변수, 형변환) (0) | 2024.07.22 |