전체 글 90

Step13. 객체 직렬화(Object Serialization)

** 객체 직렬화(Object Serialization) **객체를 바이트 단위의 스트림으로 처리하여 외부에 전송하는 기술** 객체 역직렬화(Object Deserialization) **외부에 저장된 데이터를 다시 객체로 복원하는 것. ** 객체 직렬화를 하는 이유class를 인스턴스화되면 객체는 힙영역에 구조적으로 데이터가 적재되 있는데 이상태로는 파일에 쓸수 가 없어 객체를 직렬화를 시켜준다. 객체 직렬화를 위해서는 해당 객체가 만들어지는 클래스에서java.io.Serializable interface(maker interface 계열) 를 implements 해야 직렬화가 가능하다! Person p=new Person();// 만약 Person 이 implements Serializable 했다면..

Code Archive/JAVA 2014.09.12

Step12. Stream, 파일 입출력

** 노드 스트림과 프로세스 스트림 노드 스트림 : 물리적으로 직접 연결만된 스트림프로세스 스트림 : 노드 스트림으로 연결된 것을 가지고 부가적인 기능 수행 - 입출력 스트림 스트림은 데이터가 이동하는 통로라고 생각하면 된다. Stream으로 끝나면 8bit -> 영문까지 지원Reader, Writer로 16bit 지원 -> 한글, 한자 등등 기타언어 지원 노드 스트림 : 물리적으로 하드웨어와 연결되는 스트림프로세스 스트림 : 노드 스트림을 가지고 부가적인 기능을 수행하는 스트림 -텍스트 파일 읽기 import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOExcept..

Code Archive/JAVA 2014.09.12

Step11. Exception(예외처리)

**Exception 처리(예외 처리)**compile error : 컴파일 시 발생하는 에러Exception , Error : 실행시 발생하는 예외 및 에러 프로그램 수행시 Exception이 발생해도 강제 종료되지 않게 적절하게 대처하여프로그램을 정상적으로 수행하도록 한다. -Exception 문법 -try : Exception 발생예상 지점 블럭catch : Exception 처리 ( Exception 예외에 대한 대안 ) finally : Exception 발생시 catch 여부와 상관없이 항상 수행 throws : Exception 을 호출한 곳으로 던지는 keywordthrow : Exception 을 고의로 발생시킬 때 사용하는 keyword 사용자 정의 Exception classclass..

Code Archive/JAVA 2014.09.12

Step10. Wrapper class, Nested(inner) class

*Wrapper class 계열*기본형 데이터 타입을 참조형으로 변경하고자 할 때 사용ex) int -> Integer , boolean -> Boolean ......jdk1.4 이하에서 반드시 사용해야 한다. //1.4 이하에서는 컴파일 에러, 이유는 Object 는 참조형 데이터 타입이고 // 1 은 기본형 데이터 타입이므로.. Object o=1;//1.5 이상에서는 자동으로 Wrapper 객체로 변환 System.out.println(o.getClass());// Integer 객체 // 1.4 이하에서 코딩한다면 Object o1=new Integer(1); // int 에 대응되는 Integer 객체로 생성 int i=((Integer)o1).intValue();// Integer로 캐스팅하..

Code Archive/JAVA 2014.09.12

Step9. Set, List, Map, Generic, Iterator, 로또 출력 프로그램

**Generic(제네릭)**제네릭은 C++의 템플릿과 비슷한 역할을 하는 것으로 클래스들이 가지고 있는 속성의 데이터 타입을 보다 유연하게 사용하게 해준다.단 제네릭에 들어가는 데이터 타입은 레퍼런스 형만 지워한다. public class Test { // 나중에 클래스 생성시 이 T로 변수 타입 고정private T data; public Test(T data) {super();this.data = data;} public T getData() {return data;} public void setData(T data) {this.data = data;} @Overridepublic String toString() {return "Test [data=" + data + "]";}} public cla..

Code Archive/JAVA 2014.09.12

Step8. Polymorphism(다형성) interface 계층구조를 이용하여 구현

** interface **자바는 기본적으로 다중 상속을 금지하고 있다.그래서 다중 상속처럼 구현을 가능하게 해준는 것이 인터페이스로implement해서 사용한다.C++에선 클래스에서 가상 함수로 만들어서 강제 오버라이딩 하도록 하였다.하지만 자바에선 인터페이스라고 하여 따로 존재한다. public interface Player { public void play();// abstract 자동 삽입} 이런 형식으로 만들어 각 클래스에선 이렇게 적용한다.public class GomPlayer implements Player{ @Override public void play() { System.out.println("곰플레이어 동영상 재생하다"); } } public class Mp3Player implem..

Code Archive/JAVA 2014.09.12

Step7. Polymorphism(다형성) 클래스 계층구조를 이용하여 구현

**다형성(Polymorphism)**동일한 메세지에 대해 다양한 형식으로 수행되는 것즉 하나의 메서드로 여러가지 일이 수행되는 것이다.코드의 표준화를 위해 사용한다.다형성을 적용하기 위해서는 반드시 계층 구조 형성 되어야함예)재생버튼 - 곰플레이어 , CDPlayer 등같은 메세지에 대해 각자의 방식으로 다양하게 재생된다.--> 동일한 메서드명으로 오버라이딩 instanceof 객체 캐스팅---------------------------------------------------------------부모 타입의 변수로 자식 객체를 참조할 수 있다.이 경우(부모 타입의 참조 변수)에는 부모의 상속받은멤버와 오버라이딩한 메서드는 접근 가능.하지만 자식의 독자적인 멤버에는 접근 불가능--> 접근하기 위해서는..

Code Archive/JAVA 2014.09.12

Step6. 배열, Inheritance(상속)

- 배열 -같은 타입의 데이터를 하나의 객체로 관리하기 위해 사용1. primitive variable 타입의 배열 int a[]; // 선언 [] 위치 상관없음 int [] a; a=new int[3]; // 3개의 방을 가진 배열을 생성 // 인덱스는 0 부터 시작 System.out.println(a.length); // 3 출력 // 할당 ages[0]=10; ages[1]=20; ages[2]=30; System.out.println(a[1]);// 20 이 출력 2. Reference variable 타입의 배열 -> 배열 선언 MemberVO vo[]; -> 초기화 vo = new MemberVO[3];->할당 vo[0] = new MemberVO("철수",19); - 상속 -부모 클래스로 ..

Code Archive/JAVA 2014.09.12

Step5. 변수의 범위, Has a 관계

- 변수의 범위 -변수는 크게 3가지로 나누어 볼수 있다.1. local variable local variable은 생성자나 메서드 내에서 사용되는 임시 변수이다. 초기화가 필요하며, 주로 { }사이에서 생성과 소멸이 이루어진다. stack 영역에 저장되어 있다.2. instance variable 객체의 값이 저장되어 있고, 주로 class 멤버 변수이며 객체의 소멸 주기와 함께한다. heap 영역에 저장3. static variable 정적 변수로 클래스 로딩시에 적재 됨, non-static에서 객체 생성이 안되면 접근 불가 단 객체만 생성되있으면 어디서든 접근 가능 static area(class area) 에 독립적으로 적재된다. *접근 방법* 클래스명.static변수명 - Has a 관계 -..

Code Archive/JAVA 2014.09.12