Tiny Bunny
[Java] 변수의 유효 범위(Scope)
·
🛠️Backend/Java | Spring
변수 스코프변수 스코프를 이해하기 위해 간단한 비유로 시작해보겠습니다.학교에서 각 교실마다 칠판이 있다고 생각해보세요. 1학년 교실의 칠판에 쓴 내용은 1학년 교실에서만 볼 수 있고, 2학년 교실에서는 볼 수 없습니다. 프로그래밍에서 변수도 마찬가지입니다.변수 스코프(Variable Scope): 변수가 "살아있는" 범위를 의미하며, 어디서 그 변수를 사용할 수 있는지를 결정하는 영역입니다.1. 블록 스코프(Block Scope) 📦기본 개념자바에서 { } 중괄호로 둘러싸인 영역을 블록(Block)이라고 합니다. 블록 안에서 선언된 변수는 그 블록 안에서만 사용할 수 있습니다.public class ScopeExample { public static void main(String[] args) {..
[Java] charAt() - 문자열에서 한 글자 꺼내기
·
🛠️Backend/Java | Spring
문자열에서 한 글자만 꺼내는 가장 기본적인 방법인 charAt() 메서드에 대해 알아보겠습니다charAt() 메서드str.charAt(i)이 문법은 문자열 str에서 i번째 글자 하나를 꺼내는 방법입니다.str : 문자열 (예: "HELLO")i : 꺼내고 싶은 문자의 위치 인덱스반환값 : char 타입 (문자 1개)예제String str = "HELLO";char ch = str.charAt(0); // 0번째 글자 → 'H'System.out.println(ch); // 출력 결과: H🔍 자바는 인덱스가 0부터 시작합니다! 인덱스문자0H1E2L3L4O⚠️ 인덱스 범위다음 코드처럼 문자열의 길이를 초과한 인덱스를 접근하면 오류가 발생합니다.String str = "ABC";System.out.pri..
[Java] 기본 용어 정리: 선언, 생성, 초기화부터 GC까지
·
🛠️Backend/Java | Spring
Java를 처음 배우는 개발자들이 가장 헷갈려하는 용어들을 한 번에 정리해보겠습니다.선언, 생성, 초기화, 할당, 참조, 인스턴스, 가비지 컬렉션 등의 개념은 서로 연관되어 있지만 각각 다른 의미를 가지고 있어 혼동을 일으키곤 합니다. 💡마치 새로운 아파트를 분양받는 과정과 비슷합니다.먼저 "34평 아파트가 필요해"라고 계획을 세우고(선언), 실제로 아파트를 건설하고(생성), 내 이름으로 등기하고(초기화), 가구를 배치하고(할당), 주소를 알려주고(참조), 실제로 거주하고(인스턴스), 나중에 필요 없으면 철거하는(가비지 컬렉션) 과정으로 이해할 수 있습니다.1. 선언(Declaration)선언은 변수의 타입과 이름만 정하는 것입니다. 아직 실제 값이나 객체가 만들어지지 않은 상태로, 컴퓨터에게 "이런 ..
[Java] List 컬렉션 기초: 배열과 비교하며 배우는 활용법
·
🛠️Backend/Java | Spring
컬렉션자바에서 데이터를 더 효율적으로 저장하고 다루기 위한 구조를 컬렉션(Collection)이라 불러요.데이터를 묶어서 다룸순서, 중복 여부에 따라 구조가 다양함대표적으로 List, Set, Map, Queue가 있음오늘은 그중에서도 실무와 실기에 가장 자주 등장하는 List를 중점적으로 다룬다❓ 배열 vs List 구분 배열 (int[] arr) List (List list)크기고정됨가변적 (자동 확장)타입기본형 가능 (int[])래퍼형만 가능 (Integer)기능단순 저장삽입, 삭제, 정렬 등 다양선언int[] arr = new int[3];List list = new ArrayList();단점삽입/삭제 불편, 기능 없음다양한 메서드로 유연하게 처리 가능✅ 결론: 배열은 단순 저장용, List는..
[Java] 자바 배열 기초와 메서드 활용
·
🛠️Backend/Java | Spring
프로그래밍에서 가장 기본이 되는 자료형, 배열(Array)자바에서도 배열은 여전히 많이 쓰이며, 특히 기본형 데이터 저장이나 정해진 크기의 데이터 처리에 자주 사용돼요.이번 포스팅에서는 자바 배열의 개념부터 선언, 사용법까지 한 번에 정리해보겠습니다.배열🧱 같은 타입의 데이터를 연속적으로 저장하는 자료구조인덱스를 통해 요소에 접근한 번 선언하면 크기를 변경할 수 없음 (고정 크기)int[] scores = new int[5]; // 길이 5인 정수형 배열 생성String[] names = {"Kim", "Lee"}; // 초기값을 지정한 배열배열 선언 방법// 1. 선언 + 생성int[] arr = new int[3]; // 0, 0, 0// 2. 선언 + 초기화int[] nums ..
[프로그래머스] Java 코딩테스트 입문 : 짝수는 싫어요
·
💡STUDY/코딩테스트 입문
문제정수 n이 주어질 때, n 이하의 홀수들만 오름차순으로 담긴 배열을 반환하세요. 제한사항1 ≤ n ≤ 100풀이class Solution { public int[] solution(int n) { int cnt = 0; // 홀수 개수 계산 if(n % 2 == 0) cnt = n / 2; else cnt = n / 2 + 1; int[] result = new int[cnt]; int num = 1; // 홀수만 배열에 담기 for(int i = 0; i n 이하의 홀수 개수를 미리 계산해 배열 크기 정해줘야 함1부터 시작해서 2씩 증가하면 홀수만 만들 수 있음배열에 순서대로 담아 오름차순 조..
[프로그래머스] Java 코딩테스트 입문 : 배열의 평균값
·
💡STUDY/코딩테스트 입문
문제정수 배열 numbers가 매개변수로 주어질 때, numbers의 원소 평균값을 구해 double로 반환하세요. 제한사항1 ≤ numbers.length ≤ 1000 ≤ numbers[i] ≤ 1,000풀이class Solution { public double solution(int[] numbers) { double answer = 0; int sum = 0; // 배열의 모든 원소 합산 for(int i : numbers){ sum += i; } // 실수 나눗셈을 위해 double로 형변환 answer = sum / (double)numbers.length; return ..
[Java] 자바 파일 한글 클래스명/파일명 써도 될까?
·
🛠️Backend/Java | Spring
자바 파일을 한글로 저장해도 될까? 개인 공부용이라면 OK!개인 공부를 하다 보면 문제 이름을 그대로 클래스명이나 파일명으로 쓰고 싶을 때가 있습니다. 자바 파일을 한글로 저장해도 괜찮을까요? 결론부터 말하자면 개인 공부용으로는 괜찮습니다. 다만 몇 가지 꼭 알아두어야 할 사항들이 있어요.🔎 자바 파일을 한글로 작성할 때 유의할 점1. 클래스명 = 파일명 (완전히 동일해야 함)자바에서는 클래스명과 파일명이 무조건 일치해야 합니다.예를 들어, 클래스명이 분수의덧셈이라면 파일명도 분수의덧셈.java여야 해요.// 파일명: 분수의덧셈.javapublic class 분수의덧셈 { public static void main(String[] args) { System.out.println("분수..
[Java] 메서드 안에 변수 안 넘겨도 되는 이유? this 키워드와 객체의 역할
·
🛠️Backend/Java | Spring
변수는 어디서 왔을까?class Rectangle { int width = 5; // 멤버 변수 (필드) int height = 10; // 멤버 변수 (필드) int calculateArea() { return width * height; // 🤔 width, height는 어디서 온 거지? }}초보 개발자라면 "어? calculateArea() 메서드에 width와 height를 매개변수로 넘기지 않았는데 어떻게 사용할 수 있지?"라는 의문이 들 수 있습니다.클래스는 하나의 집과 같다class Rectangle { // 이 집 안에 있는 가구들 (멤버 변수) int width = 5; int height = 10; String color ..
[Java] 자바 네이밍 규칙과 클래스 vs 객체
·
🛠️Backend/Java | Spring
집을 지을 때를 생각해보세요. 건축사가 그린 설계도가 있고, 그 설계도를 바탕으로 실제 집을 짓게 됩니다. 설계도 자체로는 사람이 살 수 없죠. 실제 집이 지어져야 비로소 문도 열고 불도 켤 수 있습니다. Java의 클래스와 객체도 정확히 이와 같은 관계입니다.클래스는 설계도, 객체는 실제 제품// 이것은 휴대폰의 설계도 (클래스)class Phone { String brand = "삼성"; String model = "갤럭시"; void call() { System.out.println("전화를 걸고 있습니다."); }}// 이것은 실제 휴대폰 제품들 (객체)Phone myPhone = new Phone(); // 내 휴대폰Phone momPhone = new ..