목차
불편함을 코드로 지웁니다.
개발 공부 노트, 개발 도구와 문제를 해결한 과정, AI 프롬프트와 Obsidian 활용법을 정리합니다.
[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()vsCollections.sort()차이 - CSS Flexbox 주요 속성 (
justify-content,align-items) -
System.arraycopyvsArrays.copyOf비교 -
null참조 시NullPointerException발생 및 대처 방법
'⏳ Time Log > TIL · 하루' 카테고리의 다른 글
| [TIL] Day 08 — Java 접근 제어자와 캡슐화, static (0) | 2026.02.18 |
|---|---|
| [TIL] Day 07 — Java 클래스 기초 및 CSS 박스모델/효과 (1) | 2026.02.18 |
| [TIL] Day 05 — Java 제어문(조건문/반복문) 및 HTML Form 요소 (0) | 2026.02.18 |
| [TIL] Day 04 — Java 연산자 및 HTML 심화 (0) | 2026.02.18 |