เออ เรียนจาวาผ่านมาได้ไงก็ไม่รู้แฮะ ไม่รู้จัก Method นี้ แย่จิง ที่จริงแล้วก็ไม่ได้เป็นอะไรที่แปลกใหม่เลย ถ้าใครผ่าน C มามันก็คือ free() นั่นเอง แต่ถ้าใครเขียน C++ ก็คงเจอ delete มาFinalize() คือ method ที่ใช้สำหรับคืน memory ให้กับระบบ แต่วิธีการคืนนั้นอาจจะต่างจาก C/C++ หน่อยเพราะ Java มี Garbage collector ที่จะทำงานในส่วนนี้ แต่ C/C++ คน เขียนโปรแกรมต้องเป็นคนสั่งเอง แต่เมื่อไหร่ที่มันจะทำงานหละ เนื่องจากมันคาดเดาไม่ได้ว่ามันจะถูกเรียกเมื่อไหร่ ทำให้คนเขียนโปรแกรมต่างๆ ต้องคอยระวังเพื่อไม่ให้ผลลัพธ์ที่เกิดขึ้นผิดพลาดคำถาม: เมื่อไหร่ Finalize จะทำงานอย่างแรกเลยมาดูการทำงานของ JVM กันก่อน JVM มีหน้าที่ในการรันคำสั่งต่างๆของโปรแกรมจาวา ซึ่งก็ได้แก้ โหลดคลาส นำคลาสออก สร้างวัตถุ หรือแม้แต่ทำลายวัตถุทิ้ง ซึ่ง JVM จะตรวจสอบว่าวัตถุใดควรจะเรียก finalize ได้แล้วนั้น [...]
More
ตอนแรกที่เจอก็งงๆ ว่า String immutable ยังไง และอะไรคือ Immutable pattern แล้วก็เลยไปค้นเพิ่มเติมมาImmutable pattern เป็น pattern ที่สร้างขึ้นเพื่อให้ วัตถุ ไม่มีการเปลี่ยนค่า หลังจากสร้างขึ้นมา สำหรับจาวาแล้ว วิธีการที่จะทำแบบนี้ก็ง่ายมาก ใน คลาส กำหนด final ที่ property แล้วสร้าง constructor สำหรับการเก็บค่าที่กำหนดเท่านั้นก็เรียบร้อย เออมันง่ายแฮะ แล้วทำไม String ถึงต้องใช้ pattern แบบนี้หละ งั้นมาดูข้อดีของ Immutable pattern ดีกว่า
วัตถุที่สร้างจาก pattern นี้เมื่อถูกส่งไปยังคลาสอื่นๆ แล้วไม่ต้องกลัวเลยว่า คลาสนั้นจะแก้ไขค่าในวัตถุ
เนื่องจาก ไม่ต้องป้องกันการ copy ค่า ดังนั้น garbage collector ก็ทำงานน้อยลง ประสิทธิภาพก็ดีขึ้น นอกจากนี้ยังลดการใช้เนื้อที่ในหน่วยความจำด้วย
การทำงาน ที่เกี่ยวข้องกับ concurency ง่ายขึ้น เนื่องจากวัตถุที่สร้างขึ้นจะไม่มีการเปลี่ยนค่าอีก จึงไม่จำเป็นต้องกังวลเกี่ยวกับ [...]
More
ช่วงนี้จาวาอาจจะเยอะหน่อย เนื่องจากเริ่มทำงานแล้วได้พวกนี้มาเรียนอื้อเลย >
More