Java & Spring/Java

7일차 - Java강의(연산자, 조건문, 반복문, 배열, 컬렉션)

DJ.Kang 2024. 7. 23. 15:28

◇ 연산자

https://djhelloworld.tistory.com/24

 

생활코딩 - Java(연산자)

1. 산술연산자 + 더하기 - 빼기 * 곱하기 / 나누기 % 나머지 3번의 경우 a형태가 int이므로 float 형식으로 자동 형변환 실시 후 연산 2. 단항연산자 1+2에서 사용한 연산자 +는 이항(二두이 項항목항, in

djhelloworld.tistory.com

  1. 증감연산자[++, --]
    int a = 10;
    int b = 10;
    int val = ++a + b--;
    위 코드에서 int val = ++a + b--; 는 다음과 같이 진행된다.
  2. 형변환연산자[ (type) ]
    double doubleNumber = (double) 93 + 98.8; // 93.0 + 98.8


  3. 삼항연산자[ a 조건 b ? true : false]
    a > b ? a : b
    위와같이 사용하며 ' ? ' 앞 조건이 true이면 ' : ' 앞에있는 명령을, false면 뒤에있는 명령을 진행함
    만약 위 a > b ? a : b의 식에서 a > b가 true라면 a가 false라면 b가 실행됨

  4. 시프트연산자[ <<, >> ]
    a = 5
    a << 1 = 10 // 5 = 0101, 10 = 1010
    a >> 1 = 2  // 5 = 0101,  2 = 0010
    위와같이 시프트 연산자는 해당 숫자의 2진표현을 말 그대로 움직인 후 반환하는 연산이다.

◇ 조건문과 반복문

https://djhelloworld.tistory.com/26

 

생활코딩 - Java(조건문, 논리연산자, 반복문)

□ 조건문 1. if 조건문 □ 기본 □ if else, else if □ if 중첩 2. switch 조건문 □ 논리연산자 1. and( && ) &&(and)는 좌항과 우항의 값이 모두 참(true)일 때 참이 된다. 2. or( || ) ||(or)는 좌우항 중에 하나라

djhelloworld.tistory.com

 


◇ 배열

https://djhelloworld.tistory.com/30

 

생활코딩 - Java(배열)

1. 배열(Array) String[] : String(데이터타입) [](의 그룹) classGroup : 변수 2. for-each 잦은 반복문과 배열의 조화로인해 생겨난 문법 배열 members의 모든 요소들을 반복하여 변수 e에 대입 3. 반복문의 오류

djhelloworld.tistory.com

 

  1. 배열을 특정값으로 초기화 : Arrays.fill(arr, val) → arr배열의 모든 값을 val으로 초기화
  2. 얕은 복사 : 배열은 참조형 변수이며 실제 값이 아닌 실제 값의 주소값을 가진다, 따라서 배열 변수 간에
                      대입 연산자 ' = '를 사용해서 복사를 하게 되면 주소값만 복사된다.
    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으로 출력.


  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);
       }



◇ 컬렉션

※ 컬렉션은 참조형 변수를 저장한다.

크기 자동조정 / 추가 / 수정 / 삭제 / 반복 / 순회 / 필터 / 포함확인 등의 기능을 가지고있다.

https://djhelloworld.tistory.com/50

 

생활코딩 - Java(Collection framework)

□ Collection framework 구성  - set : 중복을 허용하지 않음(순서가 보장되지 않음)- list : 중복 허용(순서 보장)□ ArrayList배열은 크기를 한번 지정하면 크기를 초과할 수 없지만ArrayList는 크기를 미리

djhelloworld.tistory.com

 

  1. List
    • ArrayList : 배열처럼 인덱스로 값을 조회할 수 있게 저장
    • LinkedList : 메모리 남는 공간을 요청해 여기저기 나누 실제 값을 담아놓고 주소값으로 목록을 구성하고 저장
                          조회속도는 느리고 값을 중간에 추가 삭제하는건 빠름
    • Stack : 데이터를 수직으로 쌓아놓고 넣었다 빼서 조회하는 형식, LIFO(Last-In, First-Out)
  2. Set
  3. Queue : 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조
    → FIFO(First-In, First-Out) 또는 LILO(Last-In, Last-Out)방식
    Queue<Integer> intQueue = new LinkedList<>();
     인터페이스가 없으므로 위와같이 선언

  4. Map