2026/04 26

[2026.04.29] - TIL 23일차 컬렉션(Collection)과 자료구조

1. 자료구조란?자료구조는 데이터를 메모리에서 구조적으로 저장하고 처리하는 방법을 말한다.데이터를 어떤 형태로 저장하고, 어떻게 꺼내고, 어떻게 추가·삭제할지에 대한 방식이라고 볼 수 있다.자료구조는 크게 선형구조, 비선형구조, 파일구조 등으로 나눌 수 있다.선형구조에는 리스트, 스택, 큐, 덱이 있고, 비선형구조에는 트리와 그래프가 있다. 2. 컬렉션(Collection)이란?컬렉션은 자바에서 자료구조를 쉽게 사용할 수 있도록 제공하는 프레임워크이다.추가, 삭제, 검색, 정렬 같은 기능이 이미 구현되어 있기 때문에, 직접 자료구조 알고리즘을 만들지 않아도 된다.컬렉션은 java.util 패키지에 포함되어 있으며, 인터페이스를 통해 다양한 컬렉션 클래스를 공통된 방식으로 사용할 수 있다. 3. 배열의 문..

멀티캠퍼스 2026.04.29

[2026.04.28] TIL - 22일차 입출력

1. 입출력(IO)IO는 Input과 Output의 약자로, 프로그램과 외부 장치 사이에서 데이터를 주고받는 것을 말한다. 예를 들어 키보드에서 값을 입력받거나, 모니터에 결과를 출력하거나, 파일에 내용을 저장하는 작업이 모두 입출력에 해당한다.컴퓨터 내부와 외부 장치 사이에서 데이터를 주고받으려면 공통적인 처리 방식이 필요한데, 자바에서는 이를 위해 스트림(Stream)이라는 개념을 사용한다. 2. 스트림(Stream)스트림은 입출력 장치와 프로그램 사이에서 데이터를 읽고 쓰기 위해 자바가 제공하는 통로이다. 모든 스트림은 단방향으로 동작하므로, 입력과 출력을 동시에 하려면 각각 별도의 스트림이 필요하다.예를 들어 키보드에서 프로그램으로 데이터를 가져오는 것은 입력 스트림이고, 프로그램에서 모니터나 파..

멀티캠퍼스 2026.04.28

[2026.04.27] TIL - 21일차 Java 주요 클래스와 예외처리 정리

1. String 관련 클래스 1) String poolString pool은 같은 문자열이 여러 번 생성되는 것을 줄이기 위해 사용하는 메모리 영역이다.문자열을 리터럴 방식으로 생성하면, 같은 내용의 문자열은 새로 만들지 않고 기존 문자열을 재사용한다.예를 들어 같은 문자열을 가진 두 변수를 리터럴로 만들면, 실제로는 같은 공간을 참조할 수 있다.그래서 문자열 내용을 비교했을 때 같게 나오고, identityHashCode()로 확인해도 같은 값이 나올 수 있다.반면 new를 사용해 문자열을 생성하면, 내용이 같아도 항상 새로운 공간이 만들어진다.즉, new는 무조건 새로운 객체를 생성한다고 이해하면 된다.정리하면 다음과 같다.리터럴 방식 : 같은 문자열이면 같은 공간 재사용 가능생성자 방식 : 같은 ..

멀티캠퍼스 2026.04.27

[26.04.20-26.04.24] TIL 4주차 정리

https://buckwheat0.tistory.com/19 [2026.04.20] TIL - 16일차 반복문 활용과 배열오늘은 반복문의 활용 방법과 배열을 함께 학습했다. 기본적인 for문을 넘어서 중첩 반복문을 사용해 구구단과 별 출력 같은 패턴을 구현해보았고, 난수를 활용해 반복 범위를 정하는 방법도 익buckwheat0.tistory.comhttps://buckwheat0.tistory.com/20 [2026.04.21] TIL - 17일차 Java (배열 복사, 2차원 배열, 객체)1. 배열 복사 배열은 참조형 자료형이기 때문에 복사할 때 얕은 복사와 깊은 복사를 구분해서 이해해야 한다. 겉보기에는 둘 다 “복사”처럼 보이지만, 실제 동작 방식은 다르다.1 ) 얕은 복사얕buckwheat0.ti..

[2026.04.24] TIL - 20일차 Java 다형성

1. 다형성다형성은 객체지향 프로그래밍의 3대 특징 중 하나로, “여러 형태를 가진다”는 뜻이다.쉽게 말하면 하나의 부모 타입으로 여러 종류의 자식 객체를 다룰 수 있는 개념이다.예를 들어 Car라는 부모 클래스가 있고, Sonata, Avante, Grandure 같은 자식 클래스가 있다면, 자식 객체들을 각각 따로 다루는 것이 아니라 Car 타입 하나로 묶어서 다룰 수 있다. 즉, 같은 부모 타입이지만 실제로는 서로 다른 자식 객체를 담을 수 있다는 점이 다형성의 핵심이다.2. 클래스 형변환다형성을 이해하려면 클래스 형변환을 먼저 알아야 한다. 클래스 형변환은 상속 관계에 있는 클래스 사이에서만 가능하다. 1) 업 캐스팅업 캐스팅은 자식 객체를 부모 타입의 참조변수에 담는 것이다. 즉, 부모 타입이 ..

멀티캠퍼스 2026.04.26

[2026.04.23] TIL - 19일차 Java 상속

1. 상속 1) 개념상속은 다른 클래스가 가지고 있는 멤버(필드, 메소드)를 새로 작성할 클래스에서 직접 다시 만들지 않고 물려받아 자신의 것처럼 사용하는 기능이다.즉, 기존 클래스의 내용을 재사용하면서 새로운 클래스에 필요한 기능만 추가하거나 수정할 수 있게 해준다. 예를 들어 Car 클래스가 있고, 이를 바탕으로 SUV 클래스를 만들고 싶다면 기존 Car의 속성과 기능을 그대로 물려받고, SUV에 필요한 부분만 추가하면 된다. 표현식은 다음과 같다. public class SUV extends Car {} 여기서 Car는 부모 클래스, SUV는 자식 클래스라고 볼 수 있다. 2) 상속의 목적클래스의 재사용. 이미 만들어 둔 클래스를 다시 활용할 수 있기 때문에 비슷한 구조의 클래스를 만들 때 효율적이..

멀티캠퍼스 2026.04.26

[26.04.22] - TIL 18일차 Java 필드 - 객체배열

1. 필드1) 개념필드는 클래스 내부에 선언되는 변수이다. 즉, 객체가 가지는 데이터를 저장하는 공간이라고 볼 수 있다. 필드는 클래스 안에 선언되기 때문에 클래스 전체에서 사용할 수 있으며, 이런 특징 때문에 클래스의 멤버라는 의미로 멤버변수라고도 부른다. 또한 클래스 전역에서 사용할 수 있는 변수라는 점에서 전역변수처럼 이해할 수도 있다.필드 = 멤버변수 = 클래스 전역에서 사용할 수 있는 변수 2) 필드와 지역변수의 차이 필드와 지역변수는 선언되는 위치와 사용 범위가 다르다. 필드는 클래스 내부에 선언되며, 클래스 전체에서 사용할 수 있다.반면 지역변수는 메소드나 특정 블록 내부에서 선언되며, 선언된 영역 안에서만 사용할 수 있다.매개변수도 마찬가지로 메소드 호출 시 값을 받아 저장하는 변수이므로,..

멀티캠퍼스 2026.04.26

[2026.04.21] TIL - 17일차 Java (배열 복사, 2차원 배열, 객체)

1. 배열 복사 배열은 참조형 자료형이기 때문에 복사할 때 얕은 복사와 깊은 복사를 구분해서 이해해야 한다. 겉보기에는 둘 다 “복사”처럼 보이지만, 실제 동작 방식은 다르다.1 ) 얕은 복사얕은 복사는 배열의 값 자체를 새로 복사하는 것이 아니라, 배열의 주소만 복사하는 방식이다.즉, 새로운 배열이 만들어지는 것이 아니라 기존 배열을 다른 변수도 함께 참조하게 된다. int[] cArr = oArr; 위와 같이 대입하면 oArr와 cArr는 서로 다른 배열이 아니라 같은 배열 하나를 함께 바라보게 된다. 그래서 원본 배열의 값을 바꾸면 복사한 배열의 값도 같이 바뀐다. 해시코드도 같게 나오므로 같은 배열 객체를 참조하고 있다는 것을 확인할 수 있다.얕은 복사는 복사처럼 보이지만 실제로는 주소만 공유하..

멀티캠퍼스 2026.04.22

[2026.04.20] TIL - 16일차 반복문 활용과 배열

오늘은 반복문의 활용 방법과 배열을 함께 학습했다. 기본적인 for문을 넘어서 중첩 반복문을 사용해 구구단과 별 출력 같은 패턴을 구현해보았고, 난수를 활용해 반복 범위를 정하는 방법도 익혔다. 또한 배열의 개념, 선언과 할당, 저장 구조, 초기화 방법까지 함께 정리하면서 여러 값을 한 번에 관리하는 방식도 배웠다. 단순히 반복만 하는 것이 아니라, 반복문 안에 조건문을 함께 넣어 원하는 위치에 다른 값을 출력하는 방식과 배열을 활용해 데이터를 다루는 방법까지 연습했다. 1 . 반복문 활용1) 1~100 사이 난수 구하기와 합계 출력testFor04()에서는 1부터 100 사이의 임의의 난수 하나를 구한 뒤, 1부터 그 난수까지의 합계를 출력하는 코드를 작성했다.먼저 Math.random()을 사용하..

멀티캠퍼스 2026.04.21

[26.04.13-26.04.17] TIL 3주차 정리

[26.04.13] 11일차 main()은 자바 프로그램이 시작되는 메소드이고, new는 객체를 생성할 때 사용한다. BufferedReader와 Scanner는 키보드 입력을 받을 때 사용하는 클래스이며, InputStreamReader는 키보드 입력을 문자 형태로 읽을 수 있게 도와준다. readLine()은 한 줄 전체를 문자열로 입력받는 메소드이고, next()는 공백 전까지 한 단어만, nextLine()은 한 줄 전체를 입력받는다. nextInt()는 정수, nextDouble()은 실수를 입력받을 때 사용한다. print()와 println()은 콘솔 출력 메소드이고, try-catch는 예외 처리를 위한 문법, printStackTrace()는 예외 내용을 출력하는 메소드이다. fina..