230523 TIL, JAVA 문법

보트·2023년 5월 23일
0

JAVA

목록 보기
2/8

TIL 작성 방법

  • 잘 쓴 TIL은 면접 개별질문의 답안지가 될 수 있다.

  • 강의만 듣는 것보다 직접 코드를 짜보는 것이 좋다.

TIL 작성 방법
1. 어떤 문제가 있었는지
2. 내가 무엇을 시도해보았는지(삽질 자세히)
3. 어떻게 해결했는지
4. 무엇을 새롭게알았는지(자세히)

TIL에 적지 않기
1. 코드를 통째로 복붙
2. 강의노트 복붙

JAVA

(1) 연산자

        System.out.println(5/2);    //몫만 나옴 : 2
        System.out.println(2/4);    //몫만 나옴 : 0

산술연산자 중 / 가 몫을 구하는 연산자인 것을 까먹고 있었다.

(2) switch 문

switch(month){
            case 1 :
                monthString = "1월";
                break;
            case 2 :
                monthString = "2월";
                break;
            case 3 :
                monthString = "3월";
                break;
            case 4 :
                monthString = "4월";
                break;
            case 5 :
                monthString = "5월";
                break;
            case 6 :
                monthString = "6월";
                break;
            case 7 :
                monthString = "7월";
                break;
            case 8 :
                monthString = "8월";
                break;
            case 9 :
                monthString = "9월";
                break;
            case 10 :
                monthString = "10월";
                break;
            case 11 :
                monthString = "11월";
                break;
            case 12 :
                monthString = "12월";
                break;
            default:
                monthString = "알 수 없음";
        }
        System.out.println(monthString);

이제껏 이 방식으로만 switch 문을 사용해왔는데

String monthString = switch (month) {
            case 1 -> "1월";
            case 2 -> "2월";
            case 3 -> "3월";
            case 4 -> "4월";
            case 5 -> "5월";
            case 6 -> "6월";
            case 7 -> "7월";
            case 8 -> "8월";
            case 9 -> "9월";
            case 10 -> "10월";
            case 11 -> "11월";
            case 12 -> "12월";
            default -> "알 수 없음";
        };

        System.out.println(monthString);

이렇게 사용하는 법을 알게 됐다.
: 가 대신 -> 를 사용할 수도 있다는 것과, 선언할 때 바로 대입시킬 수 있는 switch 문을 사용할 수 있다는 것도 새롭게 알게 됐다.

(3) 향상된 for 문

int[] numbers = {3, 6, 9, 12, 15};
        
        for(int number: numbers){
            System.out.print(number + " ");
        }

항상 헷갈렸던 향상된 for 문
배열의 길이만큼 for 문이 수행되며 number에 배열의 요소가 하나씩 대입된다.
for 문의 괄호 안에 : 대신 ; 를 쓰지 않도록 주의

(4) 참조형 변수
참조형 변수에는 주소값이 저장되어있고 Stack 영역에 존재한다.
참조형 변수가 가리키는 원본은 Heap 영역에 있다.

Stack : 정적으로 할당된 메모리 영역 -> 크기가 정해진 기본형 변수, 참조형 변수의 주소값 저장
Heap : 동적으로 할당된 메모리 영역 -> 크기가 늘어날 수 있는 참조형 변수의 원본 저장

(5) Collection
선언과 초기화 방식

ArrayList<Integer> intList = new ArrayList<Integer>();

Array vs ArrayList(List) : Array는 정적 배열, 최초 길이를 모르면 초기화 할 수 없음
: ArrayList는 동적 배열, 생성 시점에 작은 연속된 공간을 요청해서 참조한 변수 담아놓기, 값이 추가될 때 더 큰 공간이 필요하면 더 큰 공간을 받아서 저장
LinkedList : 메모리에 남는 공간을 요청해서 값을 여기저기 나누어 저장
: 조회 속도 느림/ 값을 추가하거나 삭제하는 속도 빠름

profile
일주일에 한 번

0개의 댓글