우리가 같은 노드와 포인터로 표시되는 임의의 그래프를 가정하자. 또한 검색 알고리즘 + 연관 배열을 사용하여이 작업을 수행 할 수 있음을 알고 있습니다. 그리고이 방법은 swizzling이라고합니다.자동 포인터 Swizzling by Java?</p> <pre><code>class Node { public ValueType data; public ArrayList<Node> adj; } </code></pre> <p>지금, 나는 (AKA 직렬화/역 직렬화)의 복사본을하거나/쓰기 디스크에 읽고 싶은 :
내가 자바 클래스로 직렬화 선언함으로써,이 기능이 자동으로 제공되는 것을 들었습니다 :
여기 내 질문에갑니다. (나에게 마술처럼 들린다!)
이 성명은 맞습니까? 자바가 자동으로 BFS를 실행하여 그래프를 탐색하고 포인터를 뒤 흔드는가? 즉, 나를 위해 개체를 serialize/deserialize 복제합니까? (동일한 구조이지만 새로운 노드와 업데이트 된 포인터를 가진 완전히 새로운 새로운 객체)
그렇다면 어떤 경우에 포인터를 복사하고 싶습니까? 원래 포인터를 유지하기 위해 객체를 직렬화하려면 어떻게해야합니까?
감사합니다. :-)
Java에 원시 포인터가 없습니다. 실제 메모리 주소에 액세스 할 권한이 없습니다. 당신은 객체에 대한 참조를 가지고있다. (실제로 포인터이지만, 아무에게도 말하지 말고, C++ 레퍼런스와 혼동하지 않는다.) –
읽어보십시오. 보시면 설명서에 모두 나와 있습니다. –
@BrianRoach : 실수해서 죄송합니다. 나는 C++ 사고 방식을 사용했다. – Nima