IT Study/컴퓨터 기초
-
[Java] 제네릭과 와일드카드IT Study/컴퓨터 기초 2023. 4. 5. 18:02
1. 제네릭이란? 제네릭은 컴파일 시 객체의 타입을 체크하며, 객체의 타입을 미리 지정하여 타입 안정성을 확보할 수 있는 기능입니다. 간단히 말해, 다룰 객체의 타입을 미리 명시해 줌으로써 번거로운 형 변환을 줄일 수 있습니다. 예를 들어, ArrayList와 같은 컬렉션 클래스는 다양한 종류의 객체를 담을 수 있기는 하지만 보통 한 종료의 객체를 담는 경우가 많습니다. 그럼에도 불구하고 ArrayList는 객체를 꺼낼 때마다 타입을 체크하고 형 변환을 하고, 원하지 않는 종류의 객체가 포함되는 것을 막을 방법이 없다는 문제가 있습니다. 이러한 문제들을 제네릭이 해결해 줍니다. 2. 제네릭 클래스 2-1. 제네릭 클래스의 선언 제네릭 클래스는 타입 파라미터를 사용하여 선언하되, 클래스 이름 뒤에 기호를 ..
-
[Java] 컬렉션 프레임워크 4 (Map, HashMap 중심으로)IT Study/컴퓨터 기초 2023. 3. 29. 19:14
1. Map 인터페이스란? Map 인터페이스는 키-값 쌍의 데이터를 저장하는 컬렉션 프레임워크입니다. 각 키(Key)는 유일해야 하지만, 값(Value)은 중복이 가능하다는 특징을 가집니다. (저장 순서는 보장하지 않습니다.) → 따라서 키(Key)를 통해 값(Value)을 검색할 수 있습니다. (Key, Value null 가능) 더하여 Key-Value 쌍을 entry(엔트리)라고 합니다. ☑️ 아래의 Entry 인터페이스와 이름이 동일하기 때문에 헷갈릴 수 있습니다. Entry 인터페이스는 인터페이스라는 정확한 명칭을 붙여 설명할테니, 그냥 엔트리라고 적혀있다면 키-값 쌍으로 생각해주세요. 1-1. Map.Entry 인터페이스 Entry 인터페이스는 Map.Entry라는 이름으로 java.util ..
-
[Java] 컬렉션 프레임워크 3 (List, ArrayList 중심으로)IT Study/컴퓨터 기초 2023. 3. 28. 19:21
1. List 인터페이스란? List는 순서가 있는 데이터의 집합을 다루기 위한 인터페이스로, 데이터의 중복을 허용한다는 특징을 가집니다. List는 순서가 있는 만큼 인덱스를 사용하여 요소에 접근할 수 있다는 것에 주목해야 합니다. 순서와 인덱스에 대해 상기시키며 List에 대해 이해해 봅시다. 2. ArrayList 클래스 ArrayList는 List 인터페이스를 구현하는 클래스 중 가장 일반적으로 사용되는 클래스입니다. 내부적으로 배열을 이용해 요소를 저장하기 때문에, 인덱스를 통한 접근은 빠르지만 요소의 추가/삭제가 많을 경우 성능저하가 일어날 수 있습니다. 2-1. ArrayList 클래스의 메서드 첫 번째 표는 Collection 인터페이스와 동일한 이름을 가진 ArrayList의 메서드입니다..
-
[Java] 컬렉션 프레임워크 2 (Set, HashSet 중심으로)IT Study/컴퓨터 기초 2023. 3. 28. 13:50
1. Set 인터페이스란? Set은 중복된 원소를 허용하지 않는 자료구조를 구현하는 데에 사용합니다. Set은 수학의 '집합' 개념과 유사합니다. 수학에서의 집합은 중복되지 않는 원소들의 모임이며, 집합 내 원소들은 순서가 존재하지 않습니다. Set도 마찬가지로 중복되는 원소를 허용하지 않고 유일해야 하며, 순서에 상관없이 저장됩니다. 따라서, 집합의 개념을 떠올리며 Set의 메서드에 대해 이해해 봅시다. 2. HashSet 클래스 HashSet은 Set 인터페이스 중 가장 일반적으로 사용되는 클래스로, 원소의 순서를 보장하지 않습니다. 2-1. HashSet 사용법 import java.util.HashSet; public class Main { public static void main(String[..
-
[Java] 컬렉션 프레임워크 1 (컬렉션 인터페이스)IT Study/컴퓨터 기초 2023. 3. 28. 01:09
오늘은 (수업시간에) 컬렉션 프레임워크에 대해 배웠습니다. 자바에서 많이 사용하는 만큼 개념을 정확히 잡고 가야 할 것 같아, 블로그 글로 정리하고자 합니다. 1. 컬렉션 프레임워크란? 다수의 데이터를 처리하기 위한 자료구조들을 표준화하여 인터페이스와 클래스로 구현한 것. 1-1. 컬렉션 프레임워크 구성 요소 인터페이스 : 컬렉션의 공통 기능을 선언하는 역할을 합니다. 클래스 : 인터페이스를 구현한 컬렉션 클래스로, 실제 동작을 구현합니다. 알고리즘 : 컬렉션 데이터를 처리하는 데 사용하는 메서드를 정의합니다. 위 그림은 Collection 프레임워크의 구성을 보여줍니다. Collection과 Map이라는 최상위 인터페이스 아래 다양한 인터페이스와 클래스들이 존재합니다. Collection(인터페이스) ..
-
[Java] 추상화와 인터페이스IT Study/컴퓨터 기초 2023. 3. 26. 21:10
1. 추상화란? 추상화(abstraction)는 객체지향 프로그래밍의 주요한 개념 중 하나입니다. 사용할 객체의 공통되는 특정(데이터, 기능)을 분리하고 하나의 개념으로 묶어, 이를 다루기 쉽게 만들 수 있습니다. 2. 추상 클래스 추상 클래스(abstract class)는 추상화를 이용한 클래스로, 일반 클래스와 달리 추상 메서드를 포함할 수 있습니다. 여기서 추상 메서드는 구현 내용 없이, 선언만 있는 메서드입니다. 추상 클래스는 추상 메서드를 포함하고 있어, 직접 객체를 생성하여 사용할 수 없습니다. 직접 사용할 수 없기 때문에, 상속을 통해 자식(하위) 클래스에서는 추상 메서드를 반드시 구현하여 사용할 수 있습니다. 2-1. 추상 메서드 선언 방법 abstract 키워드를 붙인다. 선언부만 작성하..
-
[Java] String, StringBuffer, StringBuilderIT Study/컴퓨터 기초 2023. 3. 26. 15:40
오늘은 자바에서 문자열을 다루는 클래스인 String, StringBuffer, StringBuilder에 대해 함께 알아보도록 하겠습니다. 1. String이란? Java에서 문자열을 다루는 클래스로, 불변(immutable)이라는 특징을 가져 한 번 생성된 문자열은 변경할 수 없습니다. 1-1. String 특징 문자열을 저장할 때 문자 배열 char[]을 사용합니다. 따라서 인덱스를 사용해, 각 문자열의 문자에 접근이 가능합니다. 1-2. String 예시 String 클래스에서 주로 사용되는 변수나 메서드를 아래 예시에 작성해뒀습니다. import java.util.Arrays; public class Main { public static void main(String[] args) { // St..
-
[Java] 변수와 메모리IT Study/컴퓨터 기초 2023. 3. 24. 17:42
자바를 배우다보면 변수와 메모리라는 단어를 자주 또 많이 듣게 됩니다. 변수의 개념과 종류, 사용 예시를 확인하고 메모리의 개념과 종류, 사용 예시를 확인해보며 개념을 확실하게 잡고 넘어가겠습니다 ! 1. 변수란? 변수란 값을 저장하는 메모리 공간의 이름을 의미합니다. 메모리 공간을 데이터를 저장할 때 사용되며, 데이터를 읽거나 수정할 수 있습니다. 자바에서는 멤버 변수, 지역 변수, 매개 변수 등의 다양한 종류의 변수를 사용할 수 있습니다. 1-1. 멤버 변수 멤버 변수란 클래스 내에 선언되는 변수로, 객체의 속성을 나타냅니다. 객체가 생성될 때 만들어지며, 객체가 소멸될 때까지 존재합니다. public class Person { Stirng name; // name : 멤버 변수 int age = 9..