java(22)
-
open class과 abstract class의 차이점
open class 1. 상속 받는 것도 가능하고 인스턴스화도 가능합니다. 2. open class를 상속 받는 클래스는 부모가 구현해 놓은 open fun을 그대로 가져다가 사용 가능하고 override로 재정의해서 사용할 수도 있습니다. abstract class 1. 상속 받는 것만 가능하고 인스턴스화가 불가능합니다. 2. 하나 이상의 abstract fun, property가 있다면 반드시 abstract로 선언해야합니다. 3. abstract class를 상속받는 클래스는 부모가 abstract fun, abstract property를 구현 해 놓았다면, 반드시 abstract fun, abstract property를 구현 및 정의해야 합니다. 개인적인 생각 open class : 제약 사항..
2023.02.10 -
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 -
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