본문 바로가기

자바 한계단15

직렬화 Serialize 란? 직렬화 Serialize 자바 시스템 내부에서 사용되는 Object 또는 Data를 외부의 자바 시스템에서도 사용할 수 있도록 Byte 형태로 데이터를 변환하는 기술 JVM 의 메모리에 상주 (힙 또는 스택)되어 있는 객체 데이터를 바이트 형태로 변환하는 기술 역직렬화 Deserialize Byte로 변환된 Data를 원래대로 Object나 Data 로 변환하는 기술이다. 직렬화된 바이트 형태의 데이터를 객체로 변환해서 JVM으로 상주 시키는 형태 직렬화 시작하기 직렬화 조건 java.io.Serializable 인터페이스를 상속받은 객체는 직렬화 할 수 있는 기본 조건입니다. public class Member implements Serializable { private String name; priv.. 2022. 1. 27.
제네릭 Generic 제네릭을 사용해야 하는 이유 제네릭타입을 사용하므로서 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거 할 수 있기 때문에 사용한다. ArrayList list = new ArrayList(); //제네릭을 사용하지 않을경우 list.add("test"); String temp = (String) list.get(0); //타입변환이 필요함 ArrayList list2 = new ArrayList(); //제네릭을 사용할 경우 list2.add("test"); temp = list2.get(0); //타입변환이 필요없음 제네릭 사용법 제네릭 타입은 타입을 피라미터로 가지는 클래스와 인터페이스를 말합니다. 제네릭 타입은 클래스 또는 인터페이스 이름 뒤이 부호가 붙고 사이에 타입 피라미터가 위치 한.. 2022. 1. 27.
자바 Iterator, Enumeration 인터페이스 Iterator 반복자라는 뜻으로 자료를 얻어 내는데 사용. 이 자료를 얻어내는 iterator()메소드는 컬렉션(Collection) 자료형이라면 관계없이 사용가능하다. For 문 등으로 충분히 자료들을 꺼내올 수 있는데, 굳이 Iterator 가 필요한 이유는? 혹 ArrayList 에 담긴 데이터를 Set으로 옮겼다면 일반적으로 출력문까지 전면 수정이 필요하지만 Iterator는 데이터를 빼오는 방식을 표준화하는데 목적이 있어 코드 재활용이 가능하다(다형성) Iterator 대표 메소드 hasNext(): 뒤에 남은 데이터가 있으면 True, 없으면 False 반환 while 루프를 통한 제어처리시 사용한다. next() 자료구조의 다음 데이터를 반환하여, 다음 객체의 레퍼런스를 얻는다. remov.. 2021. 12. 26.
Map 컬렉션 - HasMap, Hashtable HashMap package com.kh.practice.run; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; public class HasMap01 { public static void main(String[] args) { //key는 String 타입으로, value 는 Integer 타입으로 지정 Map hm = new HashMap(); //put 메서드 이용 key 와 value 추가 hm.put("A", 90); hm.put("B", 80); hm.put("C", 89); hm.put("D", 60); //size 메서드를 이용 저장된 객체 수 출력 System.o.. 2021. 12. 8.