목차

    ⏳ Time Log/1. One Day (Daily · TIL)

    [TIL] Day 06 — Java 배열/참조타입 및 CSS 선택자

    this.Serena 2026. 2. 18. 23:35

    [TIL] Day 06 — Java 배열/참조타입 및 CSS 선택자

    날짜: 2025-10-27
    기술 스택: Java Array CSS
    부트캠프: 풀스택 개발자 부트캠프 2주차


    데이터 타입 — 기본 vs 참조

    구분 타입 메모리 저장 초기값
    기본 타입 byte, short, int, long, float, double, char, boolean 스택 타입별 지정값
    참조 타입 배열, 클래스, 인터페이스, 열거형 힙(Heap) (주소만 스택) null

    핵심 키워드: 스택에 주소, 힙(Heap)에 실제 데이터


    배열 (Array)

    // 선언 및 생성
    int[] arr = new int;
    int[] arr2 = {1, 2, 3, 4, 5}; // 값 목록 생성
    
    // 접근
    arr = 10;
    System.out.println(arr.length); // 배열 길이 (읽기 전용)
    
    // 향상된 for문
    for (int n : arr2) {
        System.out.println(n);
    }

    배열 복사

    // System.arraycopy(원본, 원본시작, 대상, 대상시작, 길이)
    System.arraycopy(oldArr, 0, newArr, 0, oldArr.length);

    String 주요 메서드

    String str = "Hello, Java!";
    str.charAt(0);          // 'H' — 특정 인덱스 문자 추출
    str.length();           // 12 — 문자열 길이
    str.replace("Java", "World"); // "Hello, World!" — 대체
    str.substring(7);       // "Java!" — 7번째부터 끝
    str.substring(7, 11);   // "Java" — 7부터 11 앞까지
    str.indexOf("Java");    // 7 — 위치 반환 (없으면 -1)
    str.trim();             // 앞뒤 공백 제거
    str.split(",");         // "," 기준으로 분리
    str.concat(" 화이팅");  // 문자열 합치기
    
    // 코딩 실용 팁 — 공백 기준 분리
    String[] words = str.trim().split("\\s+"); // 연속 공백도 한 번에 처리

    로또 번호 생성 예시 (1~45, 중복 제거)

    int[] lotto = new int;
    int i = 0;
    while (i < lotto.length) {
        int num = (int)(Math.random() * 45) + 1;
        boolean duplicate = false;
        for (int j = 0; j < i; j++) {
            if (lotto[j] == num) { duplicate = true; break; }
        }
        if (!duplicate) { lotto[i] = num; i++; }
    }
    java.util.Arrays.sort(lotto);

    CSS 선택자 정리

    선택자 대상 점수
    * 전체 0
    tag 태그 1
    .class 클래스 10
    #id ID 100
    inline style - 1000
    div > p   /* 직접 자식만 */
    div p     /* 모든 후손 */
    h1 + p    /* 바로 다음 형제 */
    h1 ~ p    /* 뒤에 오는 모든 형제 */
    div:nth-child(1) /* 첫 번째 자식 */

    CSS display 속성

    동작
    block 줄 전체 사용, 줄바꿈 O
    inline 내용만큼만, width/height 불가
    inline-block 나란히 + width/height 가능
    none 화면에서 완전 숨김
    flex 유연한 1차원 정렬
    grid 2차원 격자 레이아웃

    CSS margin 단축속성

    margin: 20px;             /* 사방 동일 */
    margin: 10px 20px;        /* 상하 / 좌우 */
    margin: 10px 20px 5px;    /* 위 / 좌우 / 아래 */
    margin: 10px 20px 5px 0;  /* 시계방향: 위 우 아래 좌 */

    더 알아볼 것

    • 열거형(enum) 선언과 활용 시나리오
    • Arrays.sort() vs Collections.sort() 차이
    • CSS Flexbox 주요 속성 (justify-content, align-items)
    • System.arraycopy vs Arrays.copyOf 비교
    • null 참조 시 NullPointerException 발생 및 대처 방법