코딩/자바

자바 문법 - 2주차

yoney 2024. 12. 31. 14:50


연산자

  • 논리 연산자: && (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();

 

  • 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