JAVA (3) 썸네일형 리스트형 JAVA 객체 직렬화, ObjectOutputStream 그리고 implements Serializable 직렬화란 무엇이고 왜 쓰는가? 자바 코드 내부에서 사용되는 객체나 데이터를 외부에서도 사용할 수 있도록 하려면 직렬화가 필요하다. 직렬화가 되어야 파일에 읽고 쓸 수 있는 클래스가 된다. 내가 갖고 있는 메모리에서만 데이터를 사용하는 것이 아니라, DB에 저장하거나 파일로 전송하는 등 stream을 통해서 데이터를 보내게 된다. 이때 stream 단위가 byte 단위이다. 즉, 객체를 ----> byte 형태로 데이터를 변환하는 기술을 직렬화 라고 얘기한다. 반대로 byte 형태의 데이터를 받아와서 ----> 다시 객체로 전환하는 것을 역직렬화 라고 부른다. 직렬화 하기 전, 조건 일단 직렬화를 사용하기 전에 조건이 있다. 자바 기본형 타입(primitive) 또는 java.io.Serializable .. 자바 무슨말인지 모르겠는 제네릭(Generics) 메서드 제네릭 왜 씀? 간단하게 요약하면 type 변환 굳이 안해줘도 되고 클린 코드 되기 때문이라고 한다. 제네릭 사용시, type을 미리 지정하기 때문에 컴파일 시 체크할 수 있고 안전한 점도 있다. 제네릭에 넣을 수 있는 문자는? 일반적으로 라는 코드를 볼 수 있는데, Oracle 공식 문서에 따르면 Type 약자이며, 아무 문자나 넣어도 실행하는데는 사실 문제는 없다. 하지만 글로벌 코드 컨벤션을 위해 지키는 것이 좋다. 제네릭 위치와 메서드 보통 객체 생성시, 클래스 옆에 Class명 형식으로 붙는 제네릭. 메서드는 또 위치가 다르다. 메서드의 제네릭은 메서드 선언부의 리턴 타입 앞에 붙여준다. 메소드의 제네릭 는 리턴 타입(void, 자료형 등)과 다르고 클래스의 와도 또 다른 영역이다. 아래 코드처.. 자바 메서드 매개변수에 객체 넣어서 전달하기 메서드의 매개변수로 1) 원시 자료형의 값, 2) 객체 형태로 전달할 수 있다. 일반적으로 1) 원시 자료형인 int, short, long 등을 매개변수로 넣어서 전달한다. 하지만 두가지 경우 리턴 값이 다르게 나올 수도 있다. 1) 메서드 매개변수로 자료형 전달할 경우 public class Object01 { // 1. 매개변수로 자료형 전달 int objAdd(int a){ // a는 매개변수안에서만 쓰이는 변수이다. a++; return a; } public static void main(String[] args) { int b = 1; Object01 obj = new Object01(); obj.objAdd(b); System.out.println(b); } } b를 출력해보면 2일것 같지만.. 이전 1 다음