[Java] ArrayList 내부 구조 파헤치기(크기, 메모리 구조, 내부 동작 과정)
·
Java
1. ArrayList란?ArrayList는 Java 컬렉션 프레임워크의 일부로, 가변 길이 배열을 구현한 클래스ArrayList는 순차적으로 데이터를 저장하며, 저장된 요소는 인덱스를 통해 접근할 수 있음동적 배열ArrayList는 동적으로 크기가 조정되는 배열요소를 추가하거나 제거할 때 크기가 자동으로 조정인덱스 접근배열처럼 인덱스를 사용해 요소에 접근할 수 있음중복 허용ArrayList는 중복된 요소를 허용비동기적ArrayList는 기본적으로 비동기적멀티스레드 환경에서 동기화를 지원하지 않음// 기본 생성ArrayList list = new ArrayList();// 초기 용량을 지정해 생성ArrayList list = new ArrayList(10); // 주요 메서드add(E e) : 요소를 리..
[Java] 자바 컬렉션 프레임워크(Collection Framework)
·
Java
1. 컬렉션 프레임워크란 ?1. 컬렉션 프레임워크는 데이터 그룹을 저장하는 클래스들을 표준화한 설계이다.2. 객체지향적이고 재사용성이 높은 코드를 작성할 수 있도록 도와준다.3. List, Set, Queue, Map등의 인터페이스를 제공한다. 2. 컬렉션 프레임워크 계층 구조3. 컬렉션 프레임워크 주요 클래스 정리 1. 리스트(List)1. 저장순서가 유지되고 중복 저장을 허용한다.2. 리스트와 배열의 큰 차이는 리스트는 자료형 크기가 고정이 아닌 데이터 양에 따라 늘어난다.3. 요소 사이에 빈 공간을 허용하지 않아 삽입/삭제 할 때마다 배열 이동이 일어남.ArrayList배열을 이용해서 만든 리스트배열의 크기는 자동으로 조정되고 배열의 크기가 초과되면 자동으로 확장된다.단방향 포인터 구조로 인덱스를 ..
[Java] 클래스 란?
·
Java
1. 클래스의 개념* 자바에서 클래스란 객체를 생성하기 위한 설계도 또는 틀이라는 의미로 사용됩니다. * 클래스의 설계도로 구현 해야하는 것을 객체라고 합니다. * 클래스의 설계도에 따라 구현된 실체를 인스턴스라고 합니다. * ex)붕어빵 틀은 클래스, 붕어빵은 객체, 내가 주문한 만들어진 슈크림 붕어빵은 인스턴스 입니다. 2. 클래스의 구성* 멤버 변수(Member Variables): 클래스의 속성을 정의합니다. * 메서드(Methods): 클래스의 동작을 정의합니다. * 생성자(Constructor): 객체를 초기화하는 메서드입니다. - Car 클래스의 예제 -// Car 클래스 정의public class Car { // 멤버 변수 (Fields) private String color; ..
[Java] 자바(Java) 의 특징
·
Java
1. 자바(Java)Java는 1990년대 초 제임스 고슬링이 처음 개발Java는 간단하고 휴대가능하며 안전하도록 설계되어 다양한 플랫폼에서 실행할 수 있는 애플리케이션 프로그래밍 언어2. 자바(Java)의 특징* 자바(Java)의 대표적인 특징 *1. OOP(객체 지향 프로그래밍)2. 플랫폼 독립성3. 메모리 관리4. 멀티 쓰레드 지원5. 동적로딩 지원 2-1. OOP(객체 지향 프로그래밍)캡슐화(Encapsulation) : 캡슐화란 데이터와 메서드를 하나의 단위로 묶고 데이터를 보호public : 모든 클래스에서 접근 가능protected : 해당 객체를 상속받은 클래스에서 접근 가능private : 클래스 내부에서만 접근 가능default : 동일한 패키지 내에서만 접근 가능상속(Inheritan..
[Java] JVM(Java Virtual Machine)의 동작 과정 간단정리
·
Java
평소에 헷갈렸던 부분이라 기억 하기위해 JVM에 대해서 간단하게 정리 해보았다. 1. JVM(Java Virtual Machine)JVM(Java Virtual Machine)- Java 프로그램을 실행하기 위한 가상 머신이다.- JVM은 Java 바이트 코드(.class 파일)을 실행하는데에 사용된다.2. JVM 동작 과정1. 개발자는 .java 파일에 Java 소스 코드를 작성2. 작성된 코드를 javac 컴파일러를 통해 컴파일(.java 파일에서 .class파일로 변환(바이트코드))3. 클래스 로더를 통해 .class 파일들을 JVM 으로 로딩4. 로딩된 .class 파일들은 Execution engine 을 통해 해석 및 실행5. 가비지 컬렉션이 더이상 사용하지 않는 객체를 메모리에서 제거6. 프..
하부루
'Java' 카테고리의 글 목록 (2 Page)