본문 바로가기
728x90

BackEnd/Java7

java에서 사용하는 Hash Collision 해결 방법 목차 HashMap이란? Hash Collision java에서 Hash Collision을 해결하는 법 결론 reference 1. HashMap이란? ※ 들어가기에 앞서 이 블로깅은 java 8 버전 이상에서 Hash Collision 해결 방법에 대해서 설명하고 있음을 알려드립니다. JDK 1.2부터 추가됐으며, Key와 Value를 가지는 Map 인터페이스를 구현하고 Key와 Value의 null 값을 가질 수 있으며 non thread-safe 한 Hash Table 기반 자료구조입니다. put() 메서드를 사용해 데이터를 추가할 수 있으며 get() 메서드를 사용하여 기본적으로 O(1)의 탐색시간으로 데이터를 검색할 수 있는 특징을 가지고 있습니다. HashMap에 데이터가 등록되는 과정을 조.. 2023. 11. 6.
자바 Enum 타입 속 모든 비밀: 정의, 컴파일러, 싱글톤 목차 정의 사용법 java.lang.Enum과 컴파일러 enum tpye은 singleton? 사용 시 주의 사항 결론 reference 1. 정의 오라클 자바 튜토리얼 공식 홈페이지에서는 Enum을 주로 연관된 상수들의 집합을 정의하는 데 사용하는 데이터 유형이라고 소개하고 있습니다. 2. 사용법 자바에서는 enum keyword를 사용하여 enum type을 정의하며, 필드는 상수이기 때문에 대문자로 표시해야 합니다. 간단한 코드 예시를 통해 enum type의 정의와 사용법에 대해서 알아보도록 하겠습니다. 왼쪽 사진처럼 enum type을 정의 후 테스트 코드를 통해 바로 출력하게 되면 어떤 결과가 나오게 될까요? 테스트 코드 실행 결과를 보시면 위에서 정의한 필드명이 출력되는 것을 볼 수 있습니다.. 2023. 10. 25.
BigDecimal 사용 이유 목차 서문 float와 double의 문제점 BigDecimal에 대해서 결론 reference 1. 서문 자바에서는 소수점에 대해서 정확한 계산이 필요한 경우 float, double 타입을 사용하지 말고 BigDecimal을 사용하라고 권장하고 있습니다. 위 사진의 빨간 줄로 표시된 부분을 번역기를 통해서 해석해 보면 통화 같은 정확한 값을 사용해야 하는 경우에는 java.math.BigDecimal을 사용해야 돼!!라고 친절하게 알려주고 있습니다. 그럼 정확한 소수점에 대해서 계산이 필요할 때 float와 double을 사용하지 말아야 하는지 부터 알아보도록 하겠습니다. 2. float와 double의 문제점 먼저 초깃값 1.0을 가지는 float와 double 변수를 선언 후 값에 0.1을 더하는.. 2023. 10. 19.
Java Virtual Machine 목차 정의 JVM의 구조와 동작 방식 Class Loader Execution Engine Runtime Data Areas Method Area Heap PC Register JVM Stacks Native Method Stacks reference 1. 정의 자바 컴파일러로 자바 코드를 컴파일 시켜 얻은 바이트 코드를 해석하고 실행하는 가상 머신입니다. JVM은 WORA(Write Onece Run Anywhere)를 구현하기 위해 자바 언어와 기계어 사이에 바이트 코드를 사용하기 때문에 OS로부터 독립적으로 프로그램을 제약 없이 실행이 가능합니다. 2. JVM의 구조와 동작 방식 자바 컴파일러를 통해서 컴파일된 바이트 코드가 JVM의 Runtime Data Areas에 올라가기까지의 과정은 이렇습니.. 2023. 10. 14.
equals() 메서드와 hashCode() 메서드 이번 포스트에서는 자바의 equals() 메서드와 hashCode()메서드에 대해서 알아보도록 하겠습니다. 자바를 사용하여 개발을 하는 개발자분들은 equals() 메서드를 한 번씩 봤거나 사용해 봤을 겁니다. equals() 메서드는 두 객체가 같은 객체인지 비교할 때 사용하는 메소드입니다. 밑의 간단한 Member 클래스를 살펴보겠습니다. public class Member { private String name; private String email; public Member(String name, String email) { this.name = name; this.email = email; } public String getName() { return name; } public String ge.. 2023. 9. 16.
Stream Stream 이란? 데이터 처리 연산을 지원하도록 데이터 소스에서 추출된 연속된 요소라고 정의할 수 있습니다. 거의 모든 자바 애플리케이션은 collection으로 데이터를 그룹화하고 그룹에서 특정 값을 고르거나 연산하는 과정을 포함합니다. 이러한 과정을 밑의 SQL query 문처럼 구현 코드 대신 질의(선언) 형식으로 표현하고 select * from member m where m.gender = 'M'; 멀티 코어 아키텍처 환경에서 멀티 스레드 코드를 구현하지 않아도 collection에 대해서 병렬 처리를 할 수 있게 자바 8부터 새롭게 도입된 기능입니다. Stream의 간단한 예제 public class Main { public static void main(String[] args) { Lis.. 2023. 8. 20.
728x90