serializable 직렬화 컴퓨터에 저장했다가 다음에 다시 꺼내 쓸 수는 없을지 또는 네트웍을 통해 컴퓨터 간에 서로 객체를 주고 받을 수는 없을까라고 고민해 본 적이 있는가? 과연 이러한 일들이 가능할까?가능하다. 이러한 것을 직렬화가 처리해준다. 1. 직렬화란 직렬화(스트림으로)란 객체를 데이터 스트림으로 만드는 것을 뜻한다. 즉, 객체에 저장된 데이터를 스트림에 쓰기 위해 연속적인 데이터로 변환하는 것을 말한다.반대로 스트림으로부터 데이터를 읽어서 객체를 만드는 것을 역직렬화(객체로)라고 한다.객체 스트림은 프로그램 메모리상에 존재하는 객체를 직접 입출력해 줄 수 있는 스트림으로 현재 상태를 보존하기 위한 영속성을 지원할 수 있다.자바에서 객체 안에 저장되어 있는 내용을 파일로 저장하거나 네트워크를 통하여 다른 곳으로.. 더보기 Thread Synchronized 공유 아래와 같은 방식으로 run()에서 공유할 객체에 접근하는 것이 가능해진다. 예) 쓰레드가 객체를 공유하게 되는 방식 1 - Runnable 인터페이스 상속?12345678910111213141516171819202122232425262728import java.util.*; class example { public static void main(String[] args) { RunnableImpl r = new RunnableImpl(); Thread t1 = new Thread(r); Thread t2 = new Thread(r); t1.start(); t2.start(); }} class RunnableImpl implements Runnable { int iv = 0; @Override pu.. 더보기 vector 여기서는 2D 벡터를 쉽게 사용할 수 있는 클래스를 생성하려고 한다. 이 클래스는 Vector2라고 부르겠다. 이 클래스에는 벡터의 x, y 요소를 포함하기 위한 두 개의 멤버가 있어야 한다. 추가로 다음과 같은 기능을 하는 메서드도 제공해야 한다.벡터의 덧셈과 뺄셈스칼라를 사용한 벡터 요소의 곱셈벡터 길이의 측정벡터의 정규화벡터와 x축 사이의 각도 계산벡터의 회전자바에는 연산자 오버로딩 기능이 없으므로 Vector2 클래스를 사용하기 쉽게 하려면 자체 메커니즘을 만들어야 한다. 이 메커니즘은 다음과 같이 구현하는 게 좋다.Vector2 v = new Vector2(); v.add(10,5).mul(10).rotate(54); Vector2 메서드 각각이 벡터 자체에 대한 참조를 반환하게 하면 이를 쉽게.. 더보기 이전 1 ··· 7 8 9 10 11 12 13 ··· 15 다음