ฉันชอบใช้การวนรอบสักครู่แต่นิพจน์เป็นโมฆะช่วยให้คุณเขียนนี้
for (;;) { thread.run(); }
อย่างไรก็ตามคำสั่ง null ให้คุณเขียนสิ่งนี้:
while(true);
{
thread.run();
}
วัตถุประสงค์หลักคือการเสียเวลาของโปรแกรมเมอร์บำรุงรักษาที่ไม่ดีซึ่งมาหลังจากคุณและสงสัยว่าทำไมเธรดไม่ทำงาน คำสั่งจะต้องปฏิบัติตามในขณะ โดดเดี่ยว เป็นคำสั่ง ดังนั้นบล็อกคำสั่งนี้ไม่ได้เป็นส่วนหนึ่งของลูป
ไม่ได้หมายความว่าจะไม่มีประโยชน์อะไร พวกมันแค่หายาก พวกเขามักจะมีลักษณะเช่นนี้:
{
;
}
เพราะวิธีนี้ดูเหมือนว่าคุณตั้งใจจะทำเช่นนั้น (บางครั้งก็ไม่พอ)
ในการประกอบงบ null นี้เรียกว่าNOP ในหลามก็เรียกว่าผ่าน ใน java (และลูก ๆ ของ c) มันคือเครื่องหมายอัฒภาคตามที่คุณพูดหรือแม้แต่ยืนยันความจริง
ฉันรู้ของใช้ไม่กี่:
ความหมาย
มีความแตกต่างระหว่างพื้นที่ว่างกับการวางศูนย์ลงเป็นคำตอบ มันบอกอย่างชัดเจนว่าไม่ฉันไม่ลืมที่จะใส่อะไรที่นี่ สิ่งนี้ไม่ได้มีไว้เพื่ออะไร ไม่มีอะไรชัดเจน พื้นที่นี้เว้นว่างโดยเจตนา นี่คือวิธีที่เราได้รับ N / A เพื่อรวบรวม
รูปแบบ null
ลองนึกภาพเครื่องส่งสัญญาณแสงที่มีความซับซ้อนและมีราคาแพงซึ่งหยิบหลอดไฟสีขึ้นมาซ้ำ ๆ จากสายพานลำเลียงแล้วขันเข้ากับซ็อกเก็ตเปิดเครื่องถอดและถอดหลอดถัดไป คุณสามารถควบคุมสิ่งที่สิ่งนี้ส่งสัญญาณโดยสีของหลอดไฟที่คุณใส่บนสายพาน เยี่ยมมากตอนนี้ในที่สุดมันก็ทำงานได้อย่างไร้ที่ติเจ้านายของคุณต้องการให้คุณสร้างวิธีควบคุมเวลาของสัญญาณเหล่านี้ เขาต้องการเพิ่มช่องว่างระหว่างข้อความ คุณจำได้ด้วยความสยองขวัญที่หลายส่วนสนใจเกี่ยวกับจังหวะเวลาของสัญญาณเหล่านี้และมันเจ็บปวดแค่ไหนที่จะทำให้มันตรงกัน คุณจะควบคุมเวลาโดยไม่ทำให้คุณทำงานในช่วงสุดสัปดาห์ได้อย่างไร คุณมองไปที่ถังขยะที่มีหลอดไฟแล้วให้ความคิดที่สดใสไม่ใช่อย่างแท้จริง
บางครั้งคุณต้องการใช้ polymorphism เพื่อปิดบางสิ่งโดยไม่ทำให้แตกหัก
แก้จุดบกพร่อง
เมื่อคุณตั้งค่าเบรกพอยต์คุณจำเป็นต้องมีที่สำหรับให้เบรกพอยต์อยู่ ตอนนี้ให้แน่ใจว่า debuggers บางคนจะให้คุณวางไว้ในวงเล็บปีกกาปิด แต่ถ้าพวกเขาทำไม่ได้มันก็ดีภาษาที่ให้คุณบังคับให้มีที่วางหนึ่งแม้ว่าที่นั่นจะไม่ทำอะไรเลย
ไม่ใช่สิ่ง java จริงๆ แต่ยังมี:
เล่นซอไบนารี
แอสเซมบลี NOP คำสั่งอนุญาตให้เล่นซอกับปฏิบัติการไบนารีที่คอมไพล์แล้ว แต่คอมไพเลอร์ java สมัยใหม่ปรับให้เหมาะสมมากขึ้นฉันไม่แน่ใจว่าเซมิโคลอนไม่เพียงแค่ไปที่ไอ แต่ในสมัยก่อนเรายังใช้จุดที่ว่างเปล่าเหล่านี้ในการปฏิบัติการเพื่อควบคุมเวลาหรืออนุญาตให้เราหล่นตะขอ หากไม่มี NOP จะมีคำแนะนำจริงอยู่ที่นั่นดังนั้นหากคุณต้องการขอคุณจะต้องคัดลอกคำแนะนำเหล่านั้นไปที่อื่นเพื่อให้มีที่ว่างสำหรับเบ็ด มันใช้งานได้ดีในภาษา c ซึ่ง Java ได้รับไวยากรณ์มาก แต่ฉันไม่คิดว่าการเล่นซอเบ็ดนี้เกิดขึ้นมากใน Java เราใช้Aspect Oriented Programmingเพื่อทำสิ่งนั้น