บทความนี้วิเคราะห์การใช้คำหลักชั่วคราวใน Java แบ่งปันสำหรับการอ้างอิงของคุณ การวิเคราะห์เฉพาะมีดังนี้:
Java มีคุณสมบัติของการทำให้เป็นอนุกรม สิ่งนี้สามารถอำนวยความสะดวกอย่างมากในการดำเนินงานในเครือข่าย แต่ในเวลาเดียวกันเพราะมันเกี่ยวข้องกับปัญหาด้านความปลอดภัยมันไม่ได้มีวัตถุประสงค์เพื่อจัดเก็บทุกอย่างในชั้นเรียน (เพราะด้วยวิธีนี้คนอื่น ๆ สามารถรู้เนื้อหาในชั้นเรียนผ่านการจัดลำดับต่อเนื่อง) เราสามารถใช้คำหลักชั่วคราวซึ่งหมายถึงชั่วคราวนั่นคือมันจะไม่ถูกทำให้เป็นอนุกรมกับคลาสดังนั้นหลังจากกู้คืนตัวแปรที่กำหนดโดยคำหลักนี้ไม่มีอยู่อีกต่อไป
โดยปกติแล้วโปรแกรมที่เราเขียนไว้นั้นต้องการข้อมูลที่เฉพาะเจาะจงหรือบันทึกไว้ในดิสก์สำหรับการใช้งานโดยโปรแกรมหนึ่งหรือในโปรแกรมอื่นของโปรแกรมเดียวกัน การสนับสนุนการทำให้เป็นอนุกรมของวัตถุ อย่างไรก็ตามเป็นไปได้ว่าไม่จำเป็นต้องบันทึกโดเมนทั้งหมด .
ก่อนอื่นมาดูรหัส Serialization Java:
Public Class LogyInfo ใช้ Java.io.serializable {วันที่ส่วนตัว loggingDate = วันที่ใหม่ (); ) {String Password = NULL; วันที่: " + LoggingDate.toString () +"/n รหัสผ่าน: " + รหัสผ่าน;}}ตอนนี้เราสร้างอินสแตนซ์ของคลาสนี้ทำให้เป็นอนุกรมแล้วเขียนวัตถุที่เป็นอนุกรมนี้เช่นดิสก์
LoggingInfo loginfo = ใหม่ LoggingInfo ("Mike", "Mechanics"); (loginfo); O.close (); ;หากเราเรียกใช้รหัสนี้เราจะสังเกตเห็นว่าการอ่านอ็อบเจ็กต์ (de-serializing)) จากดิสก์พิมพ์รหัสผ่านเป็น "ไม่ได้ตั้งค่า" นี่คือผลลัพธ์ที่ถูกต้องที่เราคาดหวังเมื่อเรากำหนดโดเมน PWD เป็นชั่วคราว
ทีนี้มาดูปัญหาที่อาจเกิดขึ้นจากการรักษาโดเมนชั่วคราวอย่างประมาท สมมติว่าเราแก้ไขคำจำกัดความของคลาสและให้ค่าเริ่มต้นกับโดเมนชั่วคราวรหัสมีดังนี้:
Public GuestloggingInfo ใช้ java.io.serializable {วันที่ส่วนตัว loggingdate = วันที่ใหม่ (); {// เหมือนกับข้างบน}} ตอนนี้ถ้าเราผ่านอินสแตนซ์ของ GuestloggingInfo เขียนลงในดิสก์และอ่านจากดิสก์เรายังคงเห็นรหัสผ่านการพิมพ์ของวัตถุที่อ่านได้ว่า "ไม่ได้ตั้งค่า"
เมื่ออินสแตนซ์ของคลาสถูกอ่านจากดิสก์ตัวสร้างของคลาสนี้จะไม่ถูกดำเนินการจริง
แต่สถานะถาวรของวัตถุของคลาสนี้ถูกโหลดและสถานะนี้ได้รับมอบหมายให้กับวัตถุอื่นของคลาสนี้
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคน