java

· Study/Java
Hash임의의 크기를 가지는 데이터(문자, 파일 등)를 해시 함수에 입력하게 되면 고정된 크기의 데이터를 출력하게 되는데 이를 Hash(또는 해시값, 해시코드)라고 한다.해시 함수는 알고리즘을 이용해서 입력받은 키 값으로 키 값의 크기와 상관없이 해시를 만들어 준다.해시 함수는 같은 입력값에 대해서 같은 출력값을 보장한다.(입력값에 대한 무결성을 보장한다고 한다.) 해시 값을 이용해서 키 값을 찾는 것은 불가능하여 일방향성을 갖는다고 얘기한다. Hash Table 해시 테이블은 이러한 해시 함수를 이용해 키에 대한 해시 코드를 반환받아 해시 코드를 통해 배열(bucket)의 인덱스로 환산해서 데이터의 접근하는 방식의 자료구조이다.(Java에서는 HashTable, HashMap등을 통해 해당 자료구조를 ..
· Study/Java
Runtime Data AreaRuntime Data Area는 JVM의 메모리 구조를 의미하며 총 5가지 영역으로 구분됩니다.Thread가 모두 공유하는 영역Method AreaHeapThread가 독립적으로 사용하는 영역StackPC RegisterNative Method StackMethod Areajava 파일은 Java 컴파일러에 의해 JVM에서 읽을 수 있도록 Java Bytecode로 변환하여 class 파일을 생성합니다.이렇게 생성된 class 파일은 JVM의 Class Loader에 의해서 JVM 메모리 영역에 클래스 정보를 올리게 되는데이때 클래스 정보가 올려지는 곳이 Method Area입니다. Method Area는 크게 아래와 같은 정보를 담고 있습니다.클래스 구조 정보클래스명, ..
· Project
이 글은 Java/Spring Boot 기반 서비스를 운영하며 Thread 누수 문제를 분석하고 해결한 과정을 기록한 글입니다.1. 문제 발생Caused by: java.lang.OutOfMemoryError: unable to create native thread: possibly out of memory or process/resource limits reached at java.base/java.lang.Thread.start0(Native Method) at java.base/java.lang.Thread.start(Thread.java:1526) at java.base/java.util.Timer.(Timer.java:188)java.lang.OutOfMemoryError: unable to c..
eeminsu
'java' 태그의 글 목록