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

เผยแพร่แล้ว: 2022-03-06

เช่นเดียวกับภาษาโปรแกรมอื่น ๆ Java Programming Language มีรายการคำสงวนที่มีความหมายเฉพาะ ชุดคำ 52 คำที่ Java สงวนไว้นี้เรียกว่าคำหลัก เนื่องจากมีความหมายที่กำหนดไว้ล่วงหน้า โปรแกรมเมอร์จึงไม่สามารถใช้คีย์เวิร์ดเพื่อตั้งชื่อคลาส วัตถุ ตัวแปร และตัวระบุอื่นๆ ได้ หนึ่งใน 52 คีย์เวิร์ดเหล่านี้เป็นคีย์เวิร์ดชั่วคราว ซึ่งจะเป็นจุดสนใจของบล็อกของเรา!

สารบัญ

การทำความเข้าใจคีย์เวิร์ดชั่วคราวใน Java

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

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

ลองทำความเข้าใจการทำงานของคีย์เวิร์ดชั่วคราวใน Java โดยใช้ตัวอย่างพื้นฐาน อันดับแรก เราจะสร้างคลาสที่อยู่และกำหนดแอตทริบิวต์สามอย่างสำหรับคลาส – streetName, areaName และ houseNumber เราจะเก็บไว้ชั่วคราวเนื่องจากเราไม่ต้องการจัดเก็บหรือบันทึกแอตทริบิวต์ที่สาม – houseNumber

class Address ใช้ Serializable

{

ชื่อถนน สตริงส่วนตัว ;

พื้นที่สตริงส่วนตัว ชื่อ;

สตริง houseNumber ชั่วคราวส่วนตัว;

//เซ็ตเตอร์และเก็ตเตอร์

}

ตอนนี้ มาทำให้ลำดับอินสแตนซ์ของคลาสที่อยู่กันเป็นลำดับ

ลอง {

ObjectOutputStream oos = ObjectOutputStream ใหม่ (FileOutputStream ใหม่ (“addressinfo.ser”));

ที่อยู่ a = ที่อยู่ใหม่ ();

a.setstreetName("MIG");

a.setareaName("วิกาสนคร");

emp.sethouseNumber(“110”);

//เรียงลำดับวัตถุ

oos.writeObject(a);

oos.close();

} จับ (ข้อยกเว้น e)

{

System.out.println(จ);

}

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

ลอง {

ObjectInputStream o = ObjectInputStream ใหม่ (FileInputStream ใหม่ (“addressinfo.ser”));

//อ่านวัตถุย้อนหลัง

ที่อยู่ readAddressInfo = (ที่อยู่) o.readObject();

System.out.println(readAddressInfo.getstreetName());

System.out.println(readAddressInfo.getareaName());

System.out.println(readAddressInfo.gethouseNumber());

o.close();

} จับ (ข้อยกเว้น e)

{

System.out.println(จ);

}

หากคุณเรียกใช้โปรแกรม Java ด้านบน คุณจะได้รับผลลัพธ์ต่อไปนี้:

MIG

วิกาสนคร

โมฆะ

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

กรณีการใช้งานสำหรับคำหลัก 'ชั่วคราว' ใน Java

เมื่อคุณเข้าใจคีย์เวิร์ดชั่วคราวแล้วและมันทำงานอย่างไร คำถามเชิงตรรกะต่อไปที่จะเกิดขึ้นคือ เราจะใช้คีย์เวิร์ดชั่วคราวเมื่อใด

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

ต่อไปนี้คือกรณีการใช้งานทั่วไปที่คุณควรจำไว้:

  • กรณีการใช้งานครั้งแรกของคีย์เวิร์ดชั่วคราวคือในระหว่างสถานการณ์ที่คุณอาจมีฟิลด์ข้อมูลที่คำนวณหรือได้รับมาจากฟิลด์อื่นภายในอินสแตนซ์ของคลาส ด้วยเหตุนี้ ฟิลด์เหล่านี้จึงต้องถูกคำนวณโดยทางโปรแกรม และฟิลด์เหล่านี้ขึ้นอยู่กับค่าอื่นๆ นั่นคือเหตุผลที่ แทนที่จะมีฟิลด์ดังกล่าวแบบถาวร ฟิลด์เหล่านี้อาจไม่สามารถทำให้เป็นอนุกรมได้โดยใช้คีย์เวิร์ดชั่วคราว ตัวอย่างของค่าชั่วคราวดังกล่าวที่คำนวณจากตัวเลขอื่นๆ อาจรวมถึงค่าตามเวลาประทับ ค่าตามเปอร์เซ็นต์ ฯลฯ ในทุกกรณี คุณกำลังคำนวณค่าของตัวแปรตามค่าที่มีอยู่ในปัจจุบัน
  • กรณีการใช้งานที่สำคัญอีกกรณีหนึ่งอาจเป็นเมื่อคุณทำงานกับข้อมูลความปลอดภัยประเภทใดก็ตามที่ไม่ควรรั่วไหลออกนอก JVM ไม่ว่าในกรณีใดๆ จากนั้นจะไม่สามารถทำให้เป็นอนุกรมได้โดยใช้คีย์เวิร์ดชั่วคราว
  • ฟิลด์ที่ไม่ได้ทำเครื่องหมายเป็น "ซีเรียลไลซ์ได้" ภายใน Java Development Kit สามารถใช้กับคีย์เวิร์ดชั่วคราวได้ สิ่งสำคัญที่ควรทราบในที่นี้คือคลาส Java ทั้งหมดที่ไม่ได้ใช้อินเทอร์เฟซที่ทำให้ซีเรียลไลซ์ได้นั้นไม่สามารถทำให้เป็นอนุกรมได้เนื่องจากไม่ได้อ้างอิงภายในคลาสที่ทำให้ซีเรียลไลซ์ได้ ด้วยเหตุนี้ สิ่งเหล่านี้อาจส่ง "java.io.NotSerializableException" ออกไป หากไม่ทำเครื่องหมาย "ชั่วคราว" ก่อนทำให้เป็นอนุกรมคลาสหลัก
  • และสุดท้าย มีบางครั้งที่การเรียงลำดับฟิลด์บางฟิลด์ไม่สมเหตุสมผล ตัวอย่างเช่น หากคุณได้เพิ่มการอ้างอิงตัวบันทึกในโค้ดของคุณ คุณจะไม่ต้องการให้ข้อมูลเป็นอนุกรม คุณควรจัดลำดับข้อมูลที่แสดงถึงสถานะของอินสแตนซ์ ในทางกลับกัน คนตัดไม้ไม่ได้เป็นตัวแทนของสถานะใด ๆ ดังนั้นจึงไม่มีประโยชน์ในการทำให้เป็นอนุกรม ดังนั้น จึงควรใช้ร่วมกับคีย์เวิร์ดชั่วคราว

สรุปแล้ว

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

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

ที่ upGrad เราได้ให้คำปรึกษาและแนะนำนักเรียนจากทั่วโลก ซึ่งเป็นของโดเมนต่างๆ และช่วยให้พวกเขาเริ่มต้นอาชีพในการพัฒนาซอฟต์แวร์ PGP ของเรา ในการพัฒนาซอฟต์แวร์ - ความเชี่ยวชาญด้านการพัฒนาแบบครบวงจร ได้รับการออกแบบมาสำหรับนักศึกษาใหม่และมืออาชีพที่มีประสบการณ์ นอกจากผู้สอนที่เชี่ยวชาญและสื่อการเรียนรู้ที่ล้ำสมัยแล้ว คุณยังได้รับเพื่อนร่วมงานที่มีความสามารถ การสนับสนุนตำแหน่งที่ครอบคลุม และการให้คำปรึกษาแบบตัวต่อตัวกับผู้นำในอุตสาหกรรม ดังนั้นตรวจสอบเนื้อหาหลักสูตรและลงทะเบียนเร็ว ๆ นี้!

1. คีย์เวิร์ดชั่วคราวใน Java คืออะไร?

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

2. คีย์เวิร์ดชั่วคราวสามารถใช้กับอิลิเมนต์ใดใน Java ได้?

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

3. คีย์เวิร์ดชั่วคราวและคีย์เวิร์ดระเหยต่างกันอย่างไรใน Java

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