Posts

Showing posts from June, 2012

[Java] Debug คืออะไร และ ทำอย่างไร ??

Image
สำหรับนักเขียนโปรแกรมมือใหม่หลายท่านอาจจะยังไม่เคยได้ลองใช้การ Debug ซึ่งมักจะมีใน Editor เก่งๆหลายตัว ก่อนอื่นก็ต้องขอแนะนำก่อนเลยครับว่า ปกติแล้ว เวลาเราเขียนโปรแกรมเล็กๆ บางทีก็อาจจะไม่ได้สนใจอะไรมาก เขียนโปรแกรมไป print ค่าออกมาดูแทรกๆไป เพื่อให้เรารู้ว่าค่านั้นมาหรือไม่ หรือ ณ ขณะนั้นมีค่าเท่าไร อะไรประมาณนั้น จริงๆ พวกนี้ผมก็เคยทำ ทั้ง System.out.println หรือ อาจจะใช้เป็น log ที่ดูมีความรู้ขึ้นมาอีกนิด แต่มันก็ยังไม่ดีพอครับ

*จาก NetBeans ขยับมาพัฒนาโปรแกรมด้วย Eclipse เนื่องจากความสามารถที่หลากหลายกว่า (แต่ยุ่งยากไปนิด) ทำให้หลังจากนี้ผมจะอ้างอิงจาก Eclipse เป็นหลักนะครับ ^^



โหมดการรันแบบปกติ (ปุ่มสีเขียว)
ตัวนี้ผมคิดว่าถ้าใครเขียนโปรแกรมด้วย Eclipse คงจะได้กดมันบ่อยพอสมควร (ถ้าไม่ใช้คีย์ลัดนะ) มันก็คือการรันแบบปกติครับ แต่ไอ้การรันแบบปกติเนี่ย มันจะมีการ Optimize โปรแกรมของเราด้วย เพื่อให้มีประสิทธิภาพดียิ่งขึ้น(บ้าง) ทำให้ความเร็วจะเร็วกว่าโหมดอื่น

โหมดการรันแบบดีบัก (ปุ่มแมลง)
ตัวนี้แหละที่ผมจะเป็นประเด็นสำคัญของบทความนี้ โหมด Debug จะทำให้เราสังเกตค่าต่างๆได้ในขณะ Runtime ซึ่…

[Android] Engineering Mode

Image
พอดีว่าไปเจอมา ก็เลยเอามาอัพเดตบล็อกกันหน่อย ใครที่เล่น Android อยู่ลองกดๆ ดูนะครับ ค่อนข้างมีประโยชน์ทีเดียว Engineering Mode เนี่ยคือ รหัสที่ใช้สำหรับดูค่า ทดสอบเครื่อง หรือทดสอบบางอุปกรณ์ของเราครับ หรือใครเคยสังเกตเวลาเครื่องมีปัญหา แล้วเอาไปให้เจ้าหน้าที่ที่ศูนย์เชค เขาจะกดๆอะไรไม่รู้สักอย่าง นี่แหละครับ รหัส Engineering Mode

สำหรับผม ที่ใช้บ่อยๆ คือ Wlan Test ครับ หลายๆคนอาจจะเจอปัญหาเหมือนเครื่องผมคือ เวลาเปิดปิด Wifi บางครั้งก็ไม่เปิดให้ ไปดูใน Setting ก็ขึ้น Error แบบงงๆว่า Error อะไร พอปิดเปิดเครื่องใหม่ก็ใช้งานได้ปกติ กรณีนี้ถ้าลองกด Wlan Test ก็จะมีการ unload driver แล้ว load ให้ใหม่ พอลองเปิด Wifi ก็จะใช้ได้ตามปกติโดยไม่ต้องปิดเปิดเครื่องใหม่ครับ

รหัสด้านล่างนี้ ผมเอามาจากลิงค์ที่อยู่ด้านล่างอีกทีนะครับ บางตัวใช้ได้ บางตัวใช้ไม่ได้ บางตัว ผมก็ไม่รู้ว่ามันคืออะไร แหะๆ ก็ลองๆเล่นๆดูนะครับ เผื่อมีประโยชน์ (ที่ผมเขียนเป็นบล็อกขึ้นมาก็เผื่อได้ใช้เองด้วยแหละ ^^)


*#1234#(View SW Version PDA, CSC, MODEM)*#0*#(General Test Mode) recommended for buy new phone*#12580*369#(SW & HW …

[Java] Java Static Variable และ Static Method

Image
เรื่องนี้ความจริงเป็นส่วนขยายจาก keyword และสิทธิ์การเข้าถึงตัวแปร/method ภาษา Java โดยจะเป็นเฉพาะส่วนของ static ซึ่ง static คืออะไรนั้น น่าจะเข้าใจได้ชัดเจนมากยิ่งขึ้นในหัวข้อนี้นะครับ

static เป็นคำสงวน (Reserved Word) ซึ่งใช้ระบุว่าตัวแปรหรือฟังก์ชันให้มีความเป็นหนึ่งเดียว Attribute หรือ Method ที่เป็น static แม้ว่าเราจะมีการสร้าง Object ใหม่ไม่ว่ากี่ครั้งก็ตาม ค่าต่างๆก็จะเป็นค่าเดียวกัน ซึ่งส่วนใหญ่แล้ว static มักใช้ในการทำอะไรที่เหมือนๆกัน เช่น config ของ Logger เพราะว่า ไม่ว่า Logger ยังไงๆ เราก็ใช้เก็บ log ไม่มีการคำนวณอะไรอย่างอื่นแน่ๆ ดังนั้นเพื่อให้ไม่เป็นการเปลืองทรัพยากรมาก ดังนั้นจอง Memory เพียงครั้งเดียวแล้วใช้กับทุกๆ Class ก็เพียงพอ

static variable หรือ ประเภทตัวแปรแบบ static
จากที่กล่าวไปข้างต้นแล้วว่า static จะจอง Memory เพียงครั้งเดียว ไม่ว่าเราจะเอา Class ไป new ใหม่สักกี่ครั้ง เช่น

//สมมุติให้ MyClass มี Attribute ชื่อ myStatic ซึ่งเป็นประเภท static MyClass myObj1 = new MyClass(); MyClass myObj2 = new MyClass(); myObj1.myStatic = 999999; Sy…

Facebook Comment