일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 알고리즘
- 인프런
- 자료구조
- 정처기
- 프로그래머스
- 코틀린
- Til
- 안드로이드스튜디오
- CS
- Kotlin
- 혼공챌린지
- select
- SQL
- 오블완
- doitandroid
- 혼공파
- 혼공단
- 자바
- groupby
- 코테
- 기술면접
- 카카오코테
- Android
- 정보처리기사
- 티스토리챌린지
- join
- MySQL
- 스터디
- java
- 안드로이드
- Today
- Total
목록Java (19)
Welcome! Everything is fine.

인프런 강의 을 보고 정리한 내용입니다.매주 모여 각자 정리한 내용을 기반으로 발표하고 질문 공유하는 스터디입니다.📘컬렉션 프레임워크 - Map, Stack, QueueMapMap은 키-값의 쌍을 저장하는 자료 구조로, HashMap이 많이 사용된다!키 중복 불가능 / 값은 중복 가능 / 순서 유지X 자바는 Map 인터페이스의 메서드를 구현하는 HashMap, TreeMap, LinkedHashMap 등 다양한 Map 구현체를 제공한다. Map에서 키만 따로 떼어놓고 보면 Set과 똑같기 때문에 Set과 Map의 구현체는 거의 같다. 실제로 HashSet은 내부적으로 HashMap을 사용하여 구현된다. 따라서 각각의 특징도 이전에 배웠던 내용과 거의 흡사해 간략하게만 정리했다. 다음은 String과..

인프런 강의 을 보고 정리한 내용입니다.매주 모여 각자 정리한 내용을 기반으로 발표하고 질문 공유하는 스터디입니다. 📘HashSet해시 코드 해시 자료 구조에 데이터를 저장하는 경우 hashCode() 를 구현해야 한다! 해시 인덱스는 배열의 인덱스로 사용되기 때문에 양의 정수만 사용 가능하다. 따라서 문자 혹은 객체의 경우 hashCode() 메서드를 통해 고유한 숫자를 만들고, 그 숫자를 이용해 해시 인덱스를 만든다. 문자열의 경우, hashCode() 메서드를 통해 문자를 기반으로 고유한 숫자를 만든다. 강의에서는 'A' - 65, 'B' - 66, 'AB' - 131와 같이 아스키 코드를 통해 각 문자에 고유한 숫자를 할당해 계산했다. 실제 자바의 String.hashCode()는 다음과 같이..

인프런 강의 을 보고 정리한 내용입니다.매주 모여 각자 정리한 내용을 기반으로 발표하고 질문 공유하는 스터디입니다. 📘List"의존한다" 라는 것은 무엇일까? 다음과 같이 MyList를 구현하는 MyArrayList와 MyArrayList를 만들었다.public interface MyList { int size(); void add(E e); void add(int index, E e); E get(int index); E set(int index, E element); E remove(int index); int indexOf(E o);}public class MyArrayList implements MyList { //...}public class MyLinke..

인프런 강의 을 보고 정리한 내용입니다.매주 모여 각자 정리한 내용을 기반으로 발표하고 질문 공유하는 스터디입니다. 📘빅오(O) 표기법 빅오(Big O) 표기법 : 알고리즘 성능을 분석할 때 사용하는 수학적 표현 방식으로, 데이터의 양의 증가에 따른 성능 변화 추세를 이해하기 위한 방법이다. 데이터가 매우 많이 들어오면 상수는 크게 의미가 없어지므로 빅오 표기법에서는 상수를 제거한다.O(1) : 상수 시간, 입력 데이터의 크기에 관계없이 알고리즘 실행 시간이 일정O(n) : 선형 시간, 알고리즘 실행 시간이 입력 데이터의 크기에 비례하여 증가O(n^2) : 제곱 시간, 알고리즘의 실행 시간이 입력 데이터의 크기의 제곱에 비례하여 증가O(log n) : 로그 시간, 알고리즘의 실행 시간이 입력 데이터의..
인프런 강의 을 보고 정리한 내용입니다.매주 모여 각자 정리한 내용을 기반으로 발표하고 질문 공유하는 스터디입니다. 📘제네릭이 필요한 이유다음과 같이 Integer 타입을 담고, 꺼낼 수 있는 클래스가 있다고 하자. Integer 타입 말고도 Double, Boolean, String 등의 다양한 타입을 담아야 한다면 어떨까? 각 타입에 맞는 새로운 클래스를 계속 만들어야 할 것이다. public class IntegerBox { private Integer value; public void set(Integer value) { this.value = value; } public Integer get() { return value; }} 만약 다음과..
얕은 복사 vs 깊은 복사얕은 복사 : 주소값만 복사되고 실제값은 1개로 유지되는 것깊은 복사 : 실제값까지 똑같이 복사되는 것배열을 복사하려면 깊은 복사를 통해 복사를 해주어야 한다. 다음 예제를 보자. a와 b는 똑같은 값을 가지게 되는 것이 아니라 똑같은 주소를 가리키게 된다. 따라서 b 배열의 값을 바꾸면 a 배열의 값도 바뀐다.// 얕은 복사int[] a = {1, 2, 3, 4};int[] b = a; 하지만 다음 예제처럼 새로운 배열 인스턴스를 생성하고, 반복문을 통해 a에 있는 값들을 직접 하나하나 넣어준다면 어떻게 될까? 이렇게 하면 b 배열의 값을 바꾸더라도 a 배열의 값은 바뀌지 않는다.// 깊은 복사int[] a = {1, 2, 3, 4};int[] b = new int[a.leng..
보호되어 있는 글입니다.

인프런 강의 을 보고 정리한 내용입니다.매주 모여 각자 정리한 내용을 기반으로 발표하고 질문 공유하는 스터디입니다. 섹션 8, 섹션 9는 모두 중첩 클래스, 내부 클래스에 대한 내용이다. 우선 중첩(Nested)과 내부(Inner)라는 단어의 뜻과 그 차이에 대해 알아보자.중첩(Nested) : 어떤 다른 것이 내부에 위치하거나 포함되는 구조적인 관계. 나의 안에 있지만 내 것이 아닌 것.내부(Inner) : 나의 내부에 있는 나를 구성하는 요소. 나의 내부에서 나를 구성하는 요소강의에 나온 예시를 chatGPT에게 그려달라고 해보았다. 큰 상자 안에 전혀 다른 상자를 넣은 것은 중첩(Nested)이라고 한다. 사람의 심장은 내부(Inner)에서 사람을 구성하는 요소이다.📘중첩 클래스중첩 클래스는 st..