[TIL-260206] 자바 기초: 메소드와 생성자
·
Java
이 글은 2026년 2월 6일에 작성된 글입니다.메소드메소드는 함수의 한 종류로, '하나의 기능을 수행하는 일련의 코드'를 말한다.복잡하거나 수차례 반복되는 과정을 하나로 분리시켜 관리하기 위해 메소드를 사용한다.함수를 호출하면 스택(stack)에 그 함수만을 위한 메모리 공간이 할당된다.// 메소드의 구조public class 클래스 { 접근제한자 반환타입 메소드명(파라미터타입 파라미터명, ...) { ... 수식... return 반환변수 혹은 값 혹은 수식 }}메소드의 장점기능을 나누어 코드를 효율적으로 구현할 수 있다.같은 기능을 매번 코드로 만들지 않고 그 기능의 함수를 호출하면 되기 때문에 편리하다.프로그램을 실행할 때 생긴 오류를 수정하는 디버깅 작업을 할 때도 편리하다..
[TIL 260205] 자바 기초: 배열과 ArrayList, Map, 그리고 클래스
·
Java
이 글은 2026년 2월 5일에 작성된 글입니다.Array자료를 순차적으로 저장할 수 있는 구조를 Array(배열)이라 한다.// 정수형 배열 선언int[] scores = new int[4];// 바로 값 할당할 때는int[] scores = {10, 20, 30, 40, 50};한번 정의된 배열의 크기는 줄이거나 늘릴 수 없다.인덱스를 사용해 배열의 값을 알 수 있다.length 변수를 통해 배열의 길이를 알 수 있다.Array 복사하기 - 얕은 복사와 깊은 복사얕은 복사: 배열의 참조값, 즉 주소를 복사한다 👉 원본을 바꾸면 복사본도 바뀜깊은 복사: 배열의 값 자체를 복사한다 👉 원본을 바꿔도 복사본은 안 바뀜 다음은 Book 배열을 만들고 복사하는 예제이다.1. 얕은 복사package arra..
[TIL-260204] 자바 기초: 메모리 영역과 문자열 데이터 타입
·
Java
이 글은 2026년 2월 4일에 작성된 글입니다.데이터 타입자바의 데이터 타입은 크게 기본타입(원시타입 - primitive type)과 참조 타입(reference type)으로 분류된다.기본타입byte, char, short, int, long, float, double, boolean실제 값을 변수에 저장함참조타입배열, 열거, 클래스, 인터페이스메모리의 주소를 값으로 저장함 (메모리 주소를 통해 객체를 참조) 메모리 영역JVM 메모리 구조는 다음과 같다.모든 구조를 정확히 알면 좋겠지만, 가장 중요하다고 느낀 JVM stack, Heap만 정리해보았다. JVM Stack쓰레드마다 존재하며, 쓰레드 생성 시 같이 생성된다.Stack Frame: 함수가 호출될 때, 그 함수만의 스택 영역을 구분하기 위..
[TIL-260203] 자바 기초: 조건문과 반복문
·
Java
이 글은 2026년 2월 3일에 작성된 글입니다. 오늘은 조건문과 반복문을 배웠다.사실 정말 간단한 내용이고 전공자라면 이 정도는 상식적으로 알고 있는 내용이기 때문에 어려운 부분은 없었다.if문, switch문, while문, for문 등을 배웠고 간단한 문자열 함수들, 수학 함수들을 배웠다. 실습한 9개 문제 중 (그나마 어려운) 3개 문제만 정리해봤다.1. 반복문 안에 또 다른 반복문 중첩해서 구구단 출력하기 public class Ex07 { public static void main(String[] args) { for (int i = 2; i 2. 구구단에서 짝수단만 출력하게 바꾸기 public class Ex08 { public stat..
[TIL-260202] 클린 코드와 리팩토링
·
Java
이 글은 2026년 2월 2일에 작성된 글입니다. Clean Code2008년, 로버트 C. 마틴의 ‘클린 코드’ 책에서 처음 등장한 단어.가독성이 높고 유지보수가 쉬우며, 의도가 명확히 드러나 다른 사람이 쉽게 이해하고 수정할 수 있는 고품질의 소스 코드.1. Meaningful Names (의미 있는 이름)변수, 함수, 클래스의 이름을 통해 무엇을 하는지 알 수 있어야 한다.// 의미 있는 이름 Xclass DataProcessor { void process() { ... }}// 의미 있는 이름 Oclass InvociePrinter { void printInvoice(Invoice invoice) { ... }}2. Fun..