전체 글846 정적 vs 동적 in Java 정적 한 번 정해놓으면 변하지 않고 계속 유지되는 성질 동적 실시간으로 상황에 따라 변경이 가능한 것 자바 static 자바에서의 static 키워드는 다양한 곳에 사용된다. 멤버, 메서드, 초기화 블록, 클래스 등에 사용된다. 자바에서는 static 키워드가 붙은 것 들을 특별하게 관리한다. 클래스로더에 의해 클래스파일이 로더되고, static 키워드가 붙은 파일들은 클래스 로딩단계에서 메모리에 할당되고, 초기화된다. 그 후 메서드 영역의 레퍼런스에서 관리된다. 다른 것들과 달리 static 키워드 들은 클래스로딩 단계에서 미리 메모리에 올라가기 때문이다. 정리하면 자바에서 정적은 프로그램이 시작되는 시점에 메모리에 올라가 있는 상태이다. 반대로 동적은 프로그램이 시작되는 시점이 아닌, 런타임 중에 메.. 2023. 8. 18. 클래스 로더 클래스로더 클래스로더는 자바 프로그램 실행 시 클래스 파일들을 로드하고 메모리에 올리는 역할을 수행하는 시스템의 일부입니다. 프로그램의 동작 및 클래스 파일들의 관리를 담당하며, 여러 개의 클래스로더가 계층적으로 구성되어 작동합니다. 로딩과정 로딩(Loading) 클래스로더가 클래스 파일의 바이트 코드를 읽어와 메모리로 로드합니다. 이때 로드된 클래스 파일은 각 JVM 플랫폼에 맞는 바이트코드로 변환되며, 이후 실행 가능한 형태로 변환됩니다. 링크(Link) 클래스 파일을 사용하기 위해 검증하는 과정입니다. 검증(Verification) 로드된 클래스 파일의 바이트 코드가 올바르게 구성되었는지 검증하는 단계 입니다. 클래스가 자바 언어 명세 및 JVM 명세에 명시된대로 구성되어 있는지 검사합니다. 검증에.. 2023. 8. 18. 백준 1202 1202번: 보석 도둑 문제 세계적인 도둑 상덕이는 보석점을 털기로 결심했다. 상덕이가 털 보석점에는 보석이 총 N개 있다. 각 보석은 무게 Mi와 가격 Vi를 가지고 있다. 상덕이는 가방을 K개 가지고 있고, 각 가방에 담을 수 있는 최대 무게는 Ci이다. 가방에는 최대 한 개의 보석만 넣을 수 있다. 상덕이가 훔칠 수 있는 보석의 최대 가격을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N, K ≤ 300,000) 다음 N개 줄에는 각 보석의 정보 Mi와 Vi가 주어진다. (0 ≤ Mi, Vi ≤ 1,000,000) 다음 K개 줄에는 가방에 담을 수 있는 최대 무게 Ci가 주어진다. (1 ≤ Ci ≤ 100,000,000) 모든 숫자는 양의 정수이다. 출력 첫째 줄에 .. 2023. 8. 18. static static 이란? static 키워드는 메서드, 블록, 내부 클래스에 적용될 수 있습니다. 멤버에 적용하는 경우 클래스 레벨에 속하는 클래스 변수가 됩니다. 해당 클래스 변수는 인스턴스를 생성하지 않아도 사용할 수 있지만, 인스턴스가 모두 해당 변수를 공유합니다. static 키워드가 붙으면 클래스가 로딩될때 메모리에 할당되며, 프로그램 종료시까지 유지됩니다. 즉, 인스턴스마다 별도의 메모리 공간을 차지 하지 않습니다. (명시적으로 null 설정 시 GC 대상은 됩니다.) 장점 모든 인스턴스가 공유하므로 공통된 데이터를 관리할 수 있습니다. 클래스 레벨에서 하나만 존재하므로 여러 인스턴스가 생성되더라도 메모리를 더 효율적으로 사용 가능합니다. 인스턴스를 만들지 않아도, 클래스 이름으로 접근이 가능하기 .. 2023. 8. 16. Hash, HashTable, HashMap, CuncurrentHashMap Hash란 무엇인가 Hash는 임의의 크기를 가진 데이터를 고정된 크기의 값으로 변환하는 것을 말합니다. 해시 함수를 사용하여 데이터를 해싱하면 데이터가 저장되거나 검색될 때 효율적으로 사용할 수 있는 고유한 값이 생성됩니다. 해시 함수에 의해 생성된 값을 해시 코드 또는 해시 값 이라고 합니다. 그래서 Hash가 왜필요하고, 언제 사용하고, 어떻게 활용하는데? 해시는 데이터를 고정된 크기의 값으로 변환하여 빠른 검색 및 비교를 가능하게 해줍니다. 해시를 사용하면 DB에서 특정 값을 빠르게 찾거나, 중복을 확인하는 등 다양한 작업에 활용할 수 있습니다. 해시는 암호학에서도 사용되어 비밀번호와 같은 민감한 정보를 안전하게 저장할 수 있도록 해줍니다. Hash의 동작 원리 해시 함수는 데이터의 내용을 기반으.. 2023. 8. 16. ArrayList vs LinkedList vs Array 각 자료구조의 구현 및 저장 방식 Arrray 기본 배열 자료구조로, 고정된 크기의 연속된 메모리 공간에 요소를 저장합니다. 크기가 변경되지 않습니다. ArrayList 내부적으로 배열을 사용하여 요소를 저장합니다. 배열은 고정된 크기를 가지며, 요소를 추가할 때 배열 크기를 늘리는 작업이 필요할 때 재할당 됩니다. 내부적으로 배열을 사용하므로, 연속된 메모리 공간에 요소를 저장합니다. LinkedList 노드 간의 링크를 사용하여 요소를 저장합니다. 각 노드는 자신의 데이터와 다음 노드를 참조하는 링크를 가지고 있습니다. 각 노드가 독립적인 메모리 공간을 가집니다. 각 자료구조의 장단점 Array 장점 : 크기가 고정되어 있어 메모리 관리가 쉽고, 인덱스 접근이 빠릅니다. 단점 : 크기가 한정되어 있고.. 2023. 8. 16. 이전 1 ··· 13 14 15 16 17 18 19 ··· 141 다음