ชั่วคราวใน Java: อะไรทำไมและทำงานอย่างไร



Transient ใน Java เป็นคำสำคัญที่ใช้ในการทำให้เป็นอนุกรม ใช้เมื่อคุณไม่ต้องการบันทึกค่าของตัวแปรในไฟล์

Transient ใน Java ใช้เพื่อทำเครื่องหมายตัวแปรสมาชิกไม่ให้เป็นอนุกรมเมื่อยังคงอยู่ในสตรีมของไบต์ คำหลักนี้มีบทบาทสำคัญในการปฏิบัติตามข้อ จำกัด ด้านความปลอดภัยใน . จะไม่สนใจค่าดั้งเดิมของ a ตัวแปร และบันทึกค่าเริ่มต้นของตัวแปรนั้น .

ต่อไปนี้เป็นหัวข้อที่จะกล่าวถึงในบทความนี้:





มาเริ่มกันเลย!

คำหลักชั่วคราวใน Java คืออะไร?

Transient เป็นตัวปรับเปลี่ยนตัวแปรที่ใช้สำหรับการทำให้เป็นอนุกรม ตอนนี้ Serialization คืออะไร? Serialization ใน Java เป็นกลไกที่ใช้ในการแปลงสถานะของวัตถุให้เป็นกระแสไบต์ ในช่วงเวลาของการทำให้เป็นอนุกรมหากคุณไม่ต้องการบันทึกค่าของตัวแปรเฉพาะในไฟล์ให้ใช้คีย์เวิร์ดชั่วคราว



ไวยากรณ์ :

ส่วนตัวชั่วคราว

หรือ

ส่วนตัวชั่วคราว

ในกรณีที่คุณกำหนดสมาชิกข้อมูลเป็นชั่วคราวข้อมูลนั้นจะไม่ถูกทำให้เป็นอนุกรม เนื่องจากทุกช่องที่ทำเครื่องหมายเป็น ชั่วคราว จะไม่ถูกทำให้เป็นอนุกรม คุณสามารถใช้คีย์เวิร์ดชั่วคราวนี้เพื่อระบุ Java virtual machine (JVM) ว่าตัวแปรชั่วคราวไม่ได้เป็นส่วนหนึ่งของสถานะถาวรของอ็อบเจ็กต์



มาเขียนตัวอย่างพื้นฐานเพื่อทำความเข้าใจเกี่ยวกับ Transient ใน Java

java เมื่อใดควรใช้สิ่งนี้
class Demo ดำเนินการต่ออนุกรมได้ {// การสร้างสตริงชั่วคราวของมนุษย์ชั่วคราวของมนุษย์ชั่วคราวอายุ int ของมนุษย์ // อนุกรมชื่อสตริงส่วนตัวที่อยู่วันที่ dob // ส่วนที่เหลือของโค้ด}

ที่นี่ฉันสร้างคลาสที่เรียกว่า Demo ซึ่งใช้ Serial ได้ สมาชิกข้อมูลอายุของคลาสสาธิตถูกประกาศเป็นชั่วคราวค่าของมันจะไม่ถูกทำให้เป็นอนุกรม แต่ถ้าคุณยกเลิกการกำหนดค่าวัตถุ คุณจะได้รับค่าเริ่มต้นสำหรับตัวแปรชั่วคราว

เหตุใดจึงใช้โมดิฟายเออร์ชั่วคราว

ชั่วคราวใน Java ใช้เพื่อระบุว่าฟิลด์ไม่ควรเป็นส่วนหนึ่งของกระบวนการทำให้เป็นอนุกรม

ตัวปรับเปลี่ยน Transient สามารถนำไปใช้กับตัวแปรสมาชิกของคลาสเพื่อปิดการทำให้อนุกรมกับตัวแปรสมาชิกเหล่านี้ ทุกฟิลด์ที่ถูกทำเครื่องหมายว่าชั่วคราวจะไม่ถูกทำให้เป็นอนุกรม คุณสามารถใช้คีย์เวิร์ดชั่วคราวนี้เพื่อระบุถึงไฟล์ เครื่องเสมือน Java ตัวแปรชั่วคราวไม่ได้เป็นส่วนหนึ่งของสถานะถาวรของวัตถุ

คุณอาจมีคำถามนี้อยู่ในหัว เมื่อใดควรใช้ Transient นี้ใน Java

คำตอบคือ:

  1. คุณสามารถใช้คีย์เวิร์ดชั่วคราวนี้ได้เมื่อคุณมีฟิลด์ที่ได้รับ / คำนวณจากฟิลด์อื่นภายในอินสแตนซ์ของคลาส
  2. ใช้กับฟิลด์ที่ไม่ได้ระบุว่าเป็น 'Serializable' ภายใน JDK หรือรหัสแอปพลิเคชัน เนื่องจากคลาสที่ไม่ได้ใช้อินเทอร์เฟซแบบอนุกรมได้ถูกอ้างอิงภายในคลาสที่ทำให้เป็นอนุกรมใด ๆ และไม่สามารถทำให้เป็นอนุกรมได้และจะทำให้เกิดข้อยกเว้น“ java.io.NotSerializableException” โปรดทราบว่าการอ้างอิงที่ไม่สามารถต่ออนุกรมได้เหล่านี้ควรทำเครื่องหมาย 'ชั่วคราว' ไว้ก่อน การจัดลำดับคลาสหลัก

จะใช้ Transient กับ Final keyword ได้อย่างไร?

Transient ใน Java สามารถใช้กับไฟล์ คำหลักสุดท้าย เพราะมันทำงานแตกต่างกันในสถานการณ์ที่แตกต่างกันซึ่งโดยทั่วไปแล้วจะไม่เป็นเช่นนั้นกับคนอื่น ๆ คำหลักใน Java .

ลองดูตัวอย่างนี้

ความแตกต่างระหว่างการเอาชนะและการโอเวอร์โหลด
Private String firstName private String lastName // final field 1 public final transient String pass = 'password' // final field 2 public final transient lock lock = Lock.getLock ('demo')

ตอนนี้เมื่อคุณเรียกใช้การทำให้เป็นอนุกรม (เขียน / อ่าน) อีกครั้งคุณจะได้รับผลลัพธ์นี้:

เคนนี่
แข็งแรง
รหัสผ่าน
โมฆะ

เนื่องจากเราได้ทำเครื่องหมาย 'pass' เป็นชั่วคราวและยังคงมีการจัดลำดับฟิลด์นั้นไว้ สำหรับคำประกาศที่คล้ายกันการล็อกไม่ได้ถูกทำให้เป็นอนุกรม เหตุผลก็คือเมื่อใดก็ตามที่ฟิลด์สุดท้ายถูกประเมินเป็นนิพจน์คงที่มันถูกจัดลำดับโดย JVM โดยไม่สนใจการมีอยู่ของคีย์เวิร์ดชั่วคราว

ความแตกต่างระหว่างชั่วคราวและระเหย

นี่เป็นคำถามสำคัญที่ถามในช่วง . อะไรคือความแตกต่างระหว่างคีย์เวิร์ดชั่วคราวและคีย์เวิร์ดระเหยใน Java?

ระเหย และชั่วคราวเป็นคำหลักสองคำที่แตกต่างกันโดยสิ้นเชิงที่ใช้ . คำสำคัญชั่วคราวถูกใช้ระหว่างการทำให้เป็นอนุกรมของวัตถุ Java Volatile เกี่ยวข้องกับการมองเห็นของตัวแปรที่แก้ไขโดยหลายเธรด

ความคล้ายคลึงกันเพียงอย่างเดียวระหว่างคำหลักเหล่านี้คือคำหลักที่ใช้น้อยหรือผิดปกติและไม่ได้รับความนิยมเท่ากับสาธารณะคงที่หรือคำสุดท้าย

เรามาถึงตอนท้ายของบทความนี้ซึ่งเราได้เรียนรู้เกี่ยวกับ Transient ใน Java หวังว่าคุณจะชัดเจนกับทุกสิ่งที่แบ่งปันกับคุณในบทช่วยสอนนี้

หากคุณพบบทความเกี่ยวกับ“ ชั่วคราวใน Java” ที่เกี่ยวข้องโปรดดูที่ไฟล์ บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้พร้อมเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก

เราพร้อมที่จะช่วยเหลือคุณในทุกขั้นตอนในการเดินทางของคุณสำหรับการเป็นนอกเหนือจากคำถามสัมภาษณ์ java นี้เรามาพร้อมกับหลักสูตรที่ออกแบบมาสำหรับนักเรียนและมืออาชีพที่ต้องการเป็น Java Developer หลักสูตรนี้ออกแบบมาเพื่อให้คุณเริ่มต้นการเขียนโปรแกรม Java และฝึกอบรมแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับเฟรมเวิร์ก Java ต่างๆเช่น Hibernate & Spring

หากคุณพบคำถามใด ๆ อย่าลังเลที่จะถามคำถามทั้งหมดของคุณในส่วนความคิดเห็นของ“ Transient in Java” และทีมงานของเรายินดีที่จะตอบ