ArrayList 2

[Java] List와 Map의 구조와 스레드 안전성

0. Thread Safe란?멀티스레드 환경에서 여러 스레드가 동시에 함수, 변수, 객체 접근하여도 일관성, 정확성을 유지할 수 있는 특성스레드란?프로세스 내에서 실행되는 가장 작은 단위의 실행 흐름.동일 프로세스 내에서 메모리, 자원을 공유하며 독립적으로 실행될 수 있다.동시성 문제데이터 레이스 : 여러 스레드가 동시에 접근하여 읽기/쓰기 작업 시 예상치 못한 결과 발생데드락 : 두 개 이상 스레드가 서로 자원을 점유한 상태에서 다른 스레드 자원을 기다리며 영원히 대기라이브락 : 스레드들이 서로 방해하지 않기 위해 끊임없이 상태를 바꾸며 진행하지 못하는 상황자원 고갈 : 하나 이상 스레드가 자원을 독점해 다른 스레드가 필요자원을 얻지 못하는 상황안정 보장법Synchronization(동기화) : syn..

[CS 자료구조] Array, ArrayList, LinkedList

1. 배열 (Array)선언 시 크기를 고정. 메모리 할당이 정적으로 이루어져 이후에는 변경할 수 없다. ( JS에서는 동적으로 증감)메모리에 연속적으로 저장되어 인덱스를 통해 빠르게 접근이 가능동일한 데이터 타입 요소만 저장 가능정적 데이터 저장 시 유용 (ex: 요일 이름, 월 이름 등)인덱스를 통한 빠른 접근 시간 - O(1)간단한 구현크기 제한으로 인해 메모리 낭비 혹은 넘침 현상 발생중간에 요소 삽입 및 삭제 시 많은 요소를 이동시켜야 함 - O(n)인덱스를 가지고 탐색하는 과정을 거친다면 효율적이나 추가/삭제 시는 비효율 1) Java 예시public static void main(String[] args) { // int 자료형 배열 선언 및 초기화 int[] numbers = {..