[TIL#3] Java 문법 종합반 2주차

Jiwoo·2024년 4월 23일
0

내일배움캠프

목록 보기
7/65
post-thumbnail

학습 내용

연산자

산술연산자

비트연산자

  • <<, >> 방향으로 bit 자릿수 옮기기
  • 3 << 2 = 12
    3 -> 11
    11+00
    1100 = (2^0 + 2^1) + 2^2 + 2^3 = 12
  • 3 << 1 = 6
    110 = (2^0) + 2^1 + 2^2 = 6

비교연산자

논리연산자

  • 비교 연산의 결과값으로 받을 수 있는 boolean 값을 연결하는 연산자
  • 조건을 연결 하였을 때 boolean 값들을 조합하여 참 또는 거짓 값인 boolean 값 출력
  • && : 둘 다 true -> true, 둘 다 false -> false
  • || : 둘 중 하나만 true -> true, 둘 다 false -> false

대입연산자

  • 변수를 바로 연산해서 그 자리에서 저장하는(대입하는) 연산자
  • = (기본연산자)
  • +=, -=, *= ... (복합대입연산자)
  • ++ : += 1 / -- : -= 1
public class W06 {
    public static void main(String[] args) {
        // 대입연산자에서 주의할 점
        // ++, --
        int a = 10;
        int b = 10;
        int val = ++a + b--; // b는 먼저 수행된 후에 b 값에 - 적용
        System.out.println(val); //21
    }
}

기타연산자

형변환 연산자

int iNum = 93 + (int)98.8;
System.out.println(iNum);
        
double dNum = (double)93 + 98.9; //93.0 + 98.9
System.out.println(dNum);

삼항연산자

  • 비교연산자와 항상 함께 쓰인다
  • 조건 ? 참 : 거짓

instance of

  • 피연산자가 조건에 명시된 클래스의 객체인지 비교하여 맞으면 true, 틀리면 false

연산자 우선순위

산술 > 비교 > 논리 > 대입


배열

생성

int[] intArray = new int[3]; //{0,0,0}
boolean[] boolArray = new boolean[3]; //{false, false, false}
String[] stringArray = new String[3]; //{"","",""}

String 배열

  • length()
  • charAt(int index)
  • equals(String str)

컬렉션

List

  • 순서가 있는 데이터의 집합 => Array(최초 길이 알아야 함)
  • 처음에 길이 몰라도 만들 수 있음
  • 동적 배열 (크기 가변적으로 늘어남)
  • 생성 시점에 작은 연속된 공간을 요청해서 참조형 변수들 담아놓는다
  • 값이 추가될 때 더 큰 공간 필요하면 더 큰 공간 받으면 된다

ArrayList

  • 선언 + 생성
    ArrayList< Integer> intList = new ArrayList< Integer>();

  • 값 변경
    intList.set(1, 10); // 2번째에 있는 값 바꾸기

  • 값 삭제
    intList.remove(0);

  • 값 추가
    intList.add({추가할 값})

  • 값 수정
    intList.set({수정할 순번}, {수정할 값})

  • 전체 제거
    intList.clear()

LinkedList

  • 메모리에 남는 공간을 요청해서 여기 저기 나누어서 실제 값을 담아놓음
  • 실제 값이 있는 주소값으로 목록을 구성하고 저장하는 자료구조
  • 조회 속도 느림 System.out.println(linkedList.toString());
  • 값 추가, 삭제 빠름
    linkedList.add(index, element);
    linkedList.remove(index);

Stack

  • 수직으로 값 쌓아놓고, 넣었다가 뺀다.
  • push, peek, pop
    intStack.push(item);
    intStack.peek();
    intStack.pop();
  • 최근 저장한 데이터를 나열하고 싶거나, 데이터의 중복 처리 막고 싶을 때 사용
  • 선언 + 생성
    Stack< Integer> intStack = new Stack< Integer>();

Queue

  • FIFO
  • add, peek, poll
  • 생성자가 없는 인터페이스
  • 선언 + 생성
    Queue< Integer> intQueue = new LinkedList<>();

Set

  • 순서, 중복 X
  • Set -> 그냥 쓸 수도 있음. 그러나 HashSet, TreeSet 등으로 응용해서 같이 사용 가능
  • Set은 생성자가 없는 껍데기라서 바로 생성할 수 없음
  • 생성자가 존재하는 HashSet을 이용해서 -> Set을 구현해 볼 수 있음
  • contains() 메서드
    true/false

Map

  • key - value 쌍
  • key 라는 값으로 unique 하게 보장 되어야 함
  • HashMap, TreeMap으로 응용
  • 선언 + 생성
    Map<String, Integer> intMap = new HashMap<>();
  • key 값
intMap.put("일", 11);
  • key 값 출력
for(String key : intMap.keySet()) {
   System.out.println(key);
}
  • value 값 출력
for(Integer value: intMap.values()) {
   System.out.println(value);
}

회고

연산자 부분은 사소하다고 생각할 수도 있지만 많이 헷갈릴 수 있는 부분이라 기초 지식을 확실히 다져야겠다.
컬렉션 부분이 앞으로 많이 사용하고 중요한 부분일 것 같은데 각 컬렉션의 특징과 선언 방법 등에 대해 잘 알아둬야겠다.

0개의 댓글