Android(21)
-
HashMap, LinkedHashMap, TreeMap의 특성과 차이
HashMap - 내부적으로 Entry[] Entry 의 array 로 되어 있으며, 해당 array 에 index 는 내부 해쉬 함수를 통해 계산됩니다. - HashMap은 Map 인터페이스의 한 종류로 Key와 Value 한 쌍을 데이터로 가지고 있으며 Key를 통해 Value에 접근할 수 있습니다. - HashMap은 그 안에 들어있는 데이터를 Set 구조(key,value)로 저장하기 때문에 Set의 원칙대로 중복된 데이터를 허락하지 않으면서 순서가 없습니다. - hashing을 사용하기 때문에 많은양의 데이터를 검색하는데 뛰어난 성능을 가지고 있습니다. LinkedHashMap - LinkedHashMap은 순서를 유지하기 위해 이중 연결 리스트 Doubly Linked List를 사용합니다. ..
2021.02.17 -
Wrapper Class와 Boxing, UnBoxing, AutoBoxing, AutoUnBoxing
JAVA의 래퍼(Wrapper) 클래스와 Boxing, Unboxing 이란 무엇일까 ? 자바의 자료형은 크게 기본형 byte, char, short, int, long, float, double, boolean등이 있습니다. 특징은 기본 타입의 첫 문자를 대문자로 바꾼 이름을 가지고 있습니다. - 래퍼(Wrapper) 클래스 기본 자료형(int, float, boolean등)의 데이터를 인스턴스(객체)로 만들기 위해 사용하는 클래스입니다. 사용 이유는 뭘까요? 기본 자료형의 값을 굳이 래퍼(Wrapper)클래스로 포장하는 이유는 제네릭, 자료구조, 매개변수 등 기본 자료형이 아 닌 레퍼런스 타입을 필요로 하는 경우가 많고 메서드를 갖고 있어 다양하게 활용이 가능하기 때문입니다. 기본타입 포장 클래스 b..
2021.02.03 -
intent Flag란 무엇일까?
Intent Flag Android 에서 Activity를 호출하다보면 중복 문제가 발생합니다. 중복이 발생했을 때, 중복을 방지하고 Activity의 흐름을 제어할 때 Intent Flag를 사용합니다. Task Task는 Stack구조이며, 어플리케이션에서 실행되는 Activity를 보관하고 관리하는 관리자 역할을 합니다. Ex) SecondActivity MainActivity SplashActivity (차곡차곡 쌓이는 스택 구조) 사용법 Manifest 속성은 총 4가지로 standard : Stack 영역 중 모든 곳에 위치 할 수 있으며 복수의 인스턴스가 생성 가능합니다. singleTop : Stack 영역 중 모든 곳에 위치 할 수 있으며 복수의 인스턴스가 생성 가능합니다. 호출한 Act..
2021.01.27 -
mutable 과 immutable
mutable 과 immutable 간단하게 설명하면 mutable은 변경이 가능하고 immutable은 변경이 불가능합니다. 즉 상태를 변경할 수 있고 없고의 차이가 있습니다. 뮤터블(Mutable)클래스 인스턴스가 생성된 후에 값의 내용이 변할 수 있는 클래스, 주소는 못 바꾼다. ex) String 을 제외한 참조타입변수 이뮤터블(Immutable)클래스 그 클래스의 인스턴스가 일단 생성된 후에는 인스턴스의 내용이 절대 변하지 않는 특징을 갖는 클래스 (=로 다시 받기 전에는 바뀌지 않는다.) ex) int 등의 기본타입들 and String ex) int a = 10; int b = a; // copy by value (단지 값만 복사, 연관 없다.) b = 10; System.out.printl..
2021.01.20 -
DeadLock이란 무엇일까?
DeadLock (데드락) DeadLock은 하나 또는 여러 개의 프로세스가 일어날 수 없는 사건을 영원히 기다리는 상태를 말합니다. 예시 (스타크래프트의 테란을 예로 들어보겠습니다..) 커멘드센터가 하나의 프로세스라고 가정하고 플레이어가 일꾼(SCV) 생성을 시도합니다. 하지만 보유하고있는 자원(미네랄)이 없거나 부족해서 커멘드센터(프로세스)는 일꾼을 생성하지 못합니다. DeadLock은 자원이 부족하거나 자원을 얻지 못한 상태에서 다음 처리를 진행하지 못하는 상태로, '교착 상태'라고도 하며 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생합니다. 이미지 출처: https://jwprogramming.tistory.com/12 [개발자를 꿈꾸는 프로그래머] P1이 R1을 사용 중인 상태에..
2020.12.16