이 기사는 Java의 일시적 키워드 사용을 분석합니다. 참조를 위해 공유하십시오. 특정 분석은 다음과 같습니다.
Java는 직렬화 기능을 가지고 있으며,이 클래스는 물리적 공간에 저장할 수 있습니다 (물론 파일 형태로 존재합니다). 이는 네트워크에서 일부 작업을 크게 촉진 할 수 있지만 동시에 보안 문제가 포함되기 때문에 클래스에 모든 것을 저장하려는 것은 아닙니다 (이런 식으로 다른 사람들은 직렬화를 통해 클래스의 내용을 알 수 있기 때문입니다). 키워드 과도를 사용할 수 있습니다. 즉, 임시로 클래스와 로컬로 직렬화되지 않으므로 복원 후이 키워드로 정의 된 변수가 더 이상 존재하지 않습니다.
일반적으로, 우리가 쓰는 프로그램은 특정 정보를 하나의 프로그램 또는 동일한 프로그램에서 사용하기 위해 디스크에 지속되거나 저장되어야합니다 객체 직렬화 지원. 어떤 방법을 선택하든, 클래스 인스턴스의 지속성은 클래스 도메인의 상태를 저장하여 이러한 상태를 저장하여 향후에 액세스 할 수 있습니다. 그러나 인스턴스를 유지할 때 모든 도메인을 저장할 필요는 없을 수 있습니다. 일부 도메인은 지속될 필요가 없습니다. .
먼저 Java 직렬화 코드를 살펴 보겠습니다.
공개 로깅은 Java.io를 구현합니다. ) {string password = null; 날짜 : " + loggingdate.toString () +"/n 비밀번호 : " + 비밀번호;}}이제이 클래스의 인스턴스를 생성하고 직렬화 한 다음 디스크와 같은이 직렬화 된 객체를 작성합니다.
logginginfo = 새로운 logginginfo ( "mike", "mechanics"); (loginfo); o.close ()} catch (Exception e) {// 객체를 읽으려면 {objectInputStream in = new ObjectInputStream ( "loginfo.out")을 작성할 수 있습니다. logginginfo loginfo = (logginginfo) in.readobject ();이 코드를 실행하면 디스크의 객체 read-back (de-serializing))이 암호를 "not set"으로 인쇄한다는 것을 알 수 있습니다. 이것은 PWD 도메인을 과도로 정의 할 때 예상되는 올바른 결과입니다.
이제 일시적 영역의 부주의 한 처리로 인해 발생할 수있는 잠재적 문제를 살펴 보겠습니다. 클래스 정의를 수정하고 과도 도메인에 기본값을 제공한다고 가정하면 코드는 다음과 같습니다.
공개 클래스 guestinginfo는 java.io를 구현합니다. {// 위와 동일}} 이제 GuestLoggingInfo 인스턴스를 통과하고 디스크에 쓰고 디스크에서 읽는 경우 여전히 읽기 개체 인쇄 비밀번호를 "SET NOT SET"으로 볼 수 있습니다.
클래스 인스턴스가 디스크에서 읽히면이 클래스의 생성자가 실제로 실행되지 않습니다.
대신,이 클래스의 객체의 지속적인 상태가로드 되고이 상태는이 클래스의 다른 객체에 할당됩니다.
이 기사가 모든 사람의 Java 프로그래밍에 도움이되기를 바랍니다.