일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 스택
- CSS
- union_find
- deque
- List
- alter
- sql
- date
- 큐
- set
- Calendar
- NIO
- JPA
- math
- BFS
- Java
- string
- javascript
- spring boot
- html
- GC로그수집
- dfs
- priority_queue
- Properties
- map
- Union-find
- 힙덤프
- scanner
- 스프링부트
- 리소스모니터링
- Today
- Total
목록전체 글 (309)
매일 조금씩
JVM & GCJVM 구조에 대해서 설명해 주세요.JVM은 크게 클래스 로더, 런타임 데이터 영역, 실행 엔진으로 나눌 수 있습니다.클래스 로더에 대해 설명해 주세요.클래스 로더는 런타임 동안 JVM의 메소드 영역에 동적으로 Java 클래스를 로드하는 역할을 합니다. 클래스 로더는 로딩, 링크, 초기화 단계로 나뉘어져 있습니다.로딩은 자바 바이트 코드를 메소드 영역에 저장합니다.링크는 읽어온 클래스가 문제가 없는지 검사하고, 클래스가 필요한 메모리를 할당하고, 심볼릭 메모리 레퍼런스를 실제 레퍼런스로 교체합니다.초기화는 클래스를 적절한 값으로 초기화하며, static 필드들이 설정된 값으로 초기화됩니다.JVM 메모리 구조를 자세히 설명해 주세요.JVM 메모리 구조는 크게 스택, 힙, 메서드 영역으로 나눌..
동시성 프로그래밍 기초동시성과 병렬성의 차이점을 말해주세요.동시성은 CPU는 1개지만, 여러 개의 작업을 빠르게 번갈아가며 수행하면서 사람이 보기에 마치 동시에 하는 것처럼 보여서 부르는 용어입니다. 병렬성은 말 그대로 CPU N개가 N개의 작업을 동시에 처리하는 것을 말합니다.Thread-Safe하다는 것이 무슨 의미인가요?멀티 스레드 환경에서 어떤 함수나 변수, 혹은 객체가 여러 스레드로부터 동시에 접근이 이루어져도 프로그램 실행에 문제가 없음을 뜻합니다.가시성 문제와 원자성 문제에 대해 설명해 주세요.가시성 문제는 여러 개의 스레드가 사용됨에 따라, CPU 캐시 메모리와 RAM의 데이터가 서로 일치하지 않아 생기는 문제를 의미합니다.원자성 문제는 여러 개의 스레드가 공유 자원에 동시에 쓰기 연산을 ..
컬렉션 기초JCF란 무엇인가요?JCF는 Java Collections Framework의 약어로, 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미합니다.JCF의 계층 구조를 설명해 주세요.JCF는 Collection 인터페이스와 Map 인터페이스로 나뉘고, Collection 인터페이스는 다시 List, Queue, Set 인터페이스로 나뉩니다.List 인터페이스는 무엇이고, 구현체의 종류는 무엇이 있나요?순서가 있는 데이터의 집합으로, 데이터의 중복을 허용합니다. List 인터페이스는 ArrayList, LinkedList, Vector에 상속을 합니다.ArrayList에 대해 설명해 주세요.ArrayList는 크기가 가변적인 선형 리스트로, 인덱스를 이용..
문자열, 예외, 제네릭String literal과 new String(””)의 차이는?String literal은 JVM의 String Constant Pool에 저장되며, 동일한 값을 가진 문자열은 메모리를 절약하기 위해 공유됩니다. 반면, new String("")은 힙메모리에 새로운 객체를 생성합니다. 따라서 String literal은 메모리 사용 측면에서 효율적이고, new String("")은 동일한 문자열이라도 매번 새로운 객체를 생성하기 때문에 메모리 사용히 비효율적일 수 있습니다.String, StringBuilder, StringBuffer의 차이는?String은 불변 객체로, 문자열을 변경하면 새로운 객체를 생성합니다. StringBuilder와 StringBuffer는 가변 객체로,..
Java 기본Java의 특징에 대해서 설명해주세요.Java는 플랫폼 독립적이고, 객체 지향적이며, 안정성이 높은 언어입니다. 이는 Java가 JVM(Java Virtual Machine) 위에서 실행되기 때문에 다양한 운영 체제에서 동일한 코드로 작동할 수 있으며, 객체 지향 프로그래밍 원칙을 완벽하게 지원하여 코드의 재사용성과 유지 보수성을 높입니다. 또한, 자동 메모리 관리와 예외 처리 기능으로 프로그램의 안정성을 강화합니다.Java의 단점에 대해서 설명해주세요.Java는 실행 속도가 상대적으로 느리고, 메모리 사용량이 많은 편입니다. 이는 Java가 JVM 위에서 실행되며, 런타임 중에 바이트 코드에서 기계어로 번역이 되고, 가비지 컬렉션과 같은 메모리 관리 기법을 사용하기 때문입니다. 또한, 다른..
트랜잭션 격리 수준이란?데이터베이스에서 여러 트랜잭션이 동시에 실행될 때,각각의 트랜잭션이 다른 트랜잭션으로부터 얼마나 독립적으로 동작할 수 있는지를 정의하는 기준이다.이를 통해 동시성 문제(Concurrency Issues)를 제어하고 데이터의 일관성을 유지한다. 주요 동시성 문제Dirty Read (더티 리드)다른 트랜잭션이 아직 커밋하지 않은 데이터를 읽는 현상.업데이트, 삭제에 대해 발생하고, 행 락으로 방지할 수 있다. Read Commited 이상에선 방지된다.Non-Repeatable Read (반복 불가능한 읽기)한 트랜잭션 내에서 같은 데이터를 두 번 읽을 때 값이 다른 현상. (다른 트랜잭션이 데이터를 수정한 경우)Phantom Read (팬텀 리드)한 트랜잭션이 동일한 쿼리를 두 번..