전체 글(31)
-
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 -
Critical Section이란 무엇일까?
Critical Section Critical Section은 (임계구역 또는 공유변수 영역) 병렬프로그래밍에서 둘 이상의 스레드 (멀티스레드)가 동시에 접근해서는 안되는 공유 자원(파일, 입출력, 공유 데이터 등) 을 접근하는 명령문 또는 코드의 일부 영역을 말합니다. 병렬프로그래밍에서 A라는 스레드가 공유 데이터의 값 변경을 시도하는 순간 B라는 스레드가 그 값을 읽는다면 그 값이 변경된 값인지 변경되기 전 값인지 예측할 수 없습니다. 이러한 문제로 동기화 처리 (synchronized)를 반드시 해줘야하며, 임계구역에 실행되는 스레드는 lock을 획득하게 되는데 이 lock은 오직 하나의 스레드만 가질 수 있습니다. 임계 구역 문제를 해결하기 위해서는 아래와 같이 3가지 조건을 충족해야합니다. 상호..
2020.12.23 -
DeadLock이란 무엇일까?
DeadLock (데드락) DeadLock은 하나 또는 여러 개의 프로세스가 일어날 수 없는 사건을 영원히 기다리는 상태를 말합니다. 예시 (스타크래프트의 테란을 예로 들어보겠습니다..) 커멘드센터가 하나의 프로세스라고 가정하고 플레이어가 일꾼(SCV) 생성을 시도합니다. 하지만 보유하고있는 자원(미네랄)이 없거나 부족해서 커멘드센터(프로세스)는 일꾼을 생성하지 못합니다. DeadLock은 자원이 부족하거나 자원을 얻지 못한 상태에서 다음 처리를 진행하지 못하는 상태로, '교착 상태'라고도 하며 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생합니다. 이미지 출처: https://jwprogramming.tistory.com/12 [개발자를 꿈꾸는 프로그래머] P1이 R1을 사용 중인 상태에..
2020.12.16