บทความ

กำลังแสดงโพสต์จาก 2011

SQL Tuning หรือ SQL Optimization Query Part Only

บทความเกี่ยวกับ : SQL Tuning หรือ SQL Optimization Query Part Only SQL  Tuning หรือ SQL Optimization Query Part Only เห่อ สร้างหัวข้อซะ อินเตอร์ วันนี้เด็ดครับ เอาของดีมาฝาก ผมว่าเพื่อนๆ Developer ทุกคนถ้าจับงานใหญ่ๆ เล่นกับ Data เยอะๆ ต้องเจอปัญหานี้แน่นอน Query ข้อมูลไม่ขึ้นว่ะ หรือ กำ Query แล้วค้าง แงๆๆ ทำไงดี วันนี้ห้ามพลาดครับกับไม้เด็ดในการ Tuning Query ให้เร็วขั้นเทพ เทคนิคง่ายๆ ผมเคยโพสไปแล้ว จะไม่กล่าวถึงนะครับ วันนี้เอาแบบมือโปร เท่านั้น หุหุ โม้ซะเยอะ เริ่มกันเลยดีกว่า 1. Query ด้วยการระบุ field ให้ชัดเจนเร็วกว่าแน่นอน      แม้จะไม่ค่อยเห็นผลใน 1 query     แต่คิดดูถ้าคุณ query ซัก สิบล้านรอบมันจะมีผลแค่ใหน หุหุ      select  f1,f2,f3  from my_table      เร็วกว่า      select * from my_table     ฟันธง 2. ใช้ Select ซ้อน Select ให้ฉลาด ๆ ในบางเคส ยกตัวอย่างเช่น           select f1,f2,f3  from my_table where           (f1,f2) = (select max(f1),max(f2) from my_table)       เร็วกว่า      select f1,f2,f3  from my_table where           f1 = (

Oracle PLSQL Tuning ปรับแต่ง ตัวแปรใน PLSQL เพื่อการทำงานที่เร็วขึ้น

บทความเกี่ยวกับ : Oracle PLSQL Tuning ปรับแต่ง ตัวแปรใน PLSQL เพื่อการทำงานที่เร็วขึ้น Oracle PLSQL Tuning ปรับแต่ง ตัวแปรใน PLSQL เพื่อการทำงานที่เร็วขึ้น วันนี้จะเอาเทคนิคเิล็กๆ น้อยในการเขียน PL SQL  ให้ทำงานเร็วๆมาฝากครับ เริ่มต้นตั้งแต่สิ่งเล็กๆ น้อยๆ คือเรื่องการประกาศตัวแปร และการกำหนดค่า ตัวอย่าง DECLARE    n NUMBER;    c CHAR(5); BEGIN    n := n + 15;      -- ช้าครับเนื่องจากต้องแปลงค่า    n := n + 15.0;    -- เร็วครับ เพราะไม่ต้องแปลงค่า    c := 25;          -- ช้าครับ เพราะต้องแปลงค่า จาก 25 ให้เป็น char    c := TO_CHAR(25); -- เหมือนจะดีนะแต่ ช้าครับ ยังไงก็ต้องแปลงอยู่ดีใน function TO_CHAR    c := '25';        -- เร็วครับ ต้องแบบนี้ไม่ต้องแปลงอะไร END; จากตัวอย่างสรุปได้ว่า การกำหนดค่าให้กับตัวแปรต่างๆ ใน PLSQL ให้ระวังเรื่อง data type ด้วยนะครับเพราะบางครั้ง เราแทนค่าอะไรลงไปมันก็ได้หมดไม่ error แต่พอทำงานจริงโปรแกรมมันต้องมาคอยแปลงค่าให้ตลอดทำให้ช้าได้ครับ

Oracle date format จัด format date ให้แสดง พศ และ เดือน ภาษาไทยหรือตามภาษาที่เราเลือก

บทความเกี่ยวกับ : Oracle date format จัด format date ให้แสดง พศ และ เดือน ภาษาไทยหรือตามภาษาที่เราเลือก วันนี้จะนำเสอนวิธีการจัด Format วันที่ใน Oracle ครับ หลายๆ คนคงเคยเจอปัญหาเรื่องการแสดง พ.ศ. หรือ ชื่อเดือนให้เป็นภาษาไทยหรือจะเอาภาษาอะไรก็ได้ตามที่เราต้องการ วันนี้จะเอาวิธีง่่ายๆ มาฝากครับ หากคุณกำลังต้องการ จัด Format วันที่ใน Oracle ให้เป็นแบบนี้ คุณมาถูกที่แล้วครับ 20 พ.ย. 2554 20 NOV 2011 วิธีการทำแบบนี้ครับ SELECT TO_CHAR(SYSDATE, 'dd MON yyyy', 'NLS_CALENDAR=''THAI BUDDHA'' NLS_DATE_LANGUAGE=THAI')  FROM DUAL แบบนี้จะแสดง 28 ธ.ค. 2554 ครับ ตัวแปรที่สำคัญคือ - 'dd MON yyyy'   อันนี้เป็น format ครับ MON เพราะผมต้องการตัวย่อเดือน - NLS_CALENDAR ตัวนี้แหละครับที่ทำให้ พศ แสดงเป็น พุทธศักราช 2554 (THAI BUDDHA) - NLS_DATE_LANGUAGE  ตัวนี้กำหนดให้แสดงเดือนเป็นภาษาไทยครับ (THAI) ถ้าเราอยากแสดงเป็นภาษาอังกฤษ ก็ง่ายๆตามนี้ครับ SELECT TO_CHAR(SYSDATE, 'dd MON yyyy', ' NLS_DATE_LANGUAGE=AMERICAN

Java Class พื้นฐานง่ายๆ ที่ต้องทำความเข้าใจ Class คืออะไรรู้หรือเปล่าเอ่ย

บทความเกี่ยวกับ : Java Class พื้นฐานง่ายๆ ที่ต้องทำความเข้าใจ Class คืออะไรรู้หรือเปล่าเอ่ย Advertisements Java Class  พื้นฐานง่ายๆ ที่ต้องทำความเข้าใจ Class คืออะไรรู้หรือเปล่าเอ่ย ในบทเรียน OOP ถ้าพูดถึง Class หลายๆ คนคงคุ้นเคยกันดี โดยเฉพาะ Class ในภาษา Java ที่หลายคนเข้าใจกันว่าเป็น OOP โดยแท้ๆ แต่ถ้าถามความหมายจริงๆ ว่า Class คืออะไร ก็มักจะเกิดคำถามตามมาว่าทุกสิ่งหย่างในภาษา Java เป็น Class ทั้งหมดหรือเปล่า และภาษา Java เป็น OOP 100 % หรือไม่ แน่นอนถ้าพูดถึง Class ย่อมหมายถึงโครงสร้างอะไรซักอย่างที่สามารถนำมาสร้างเป็น Object ได้ ตามโครงสร้างของภาษา Java ก็คือ   Class obj = new Class(); แล้ว String เป็น Class หรือเปล่า ทำไมถึงใช้งานอย่างงี้ได้  String a= "ABCD"; แล้วพวก int,long,float .... ตัวแปร primitive ทั้งหลายแหล่ล่ะเป็น Class หรือไม่ พวกนี้ต้องเก็บไปคิดให้เข้าใจถึงแก่น โครงสร้างของ Class ในภาษา Java คือ คำนำหน้าเช่น(public,protected) class ClassName {   } ตัวอย่างเช่น public class MyClass{ }

File in Java วิธีการ Read and Write File ในภาษา Java

บทความเกี่ยวกับ : File in Java วิธีการ Read and Write File ในภาษา Java Advertisements File in Java วิธีการ Read and Write File ในภาษา Java พูดดึงเรื่องการเขียนโปรแกรมเพื่ออ่านและ เขียนไฟล์นั้นหลายคนคงมองว่าเป็นเรื่องยาก แต่จริงๆ แล้วถ้าเราเข้าใจมันง่ายนิดเดียว เรื่องของการ อ่านและเขียนไฟล์จัดอยู่ในหมวด Java IO  Class หรือ Interface ต่างๆ อยู่ใน package  java.io.* ตัวอย่างการอ่านไฟล์ทีละบรรทัดด้วย ภาษา Java   FileInputStream fs = new FileInputStream("filename.txt");    DataInputStream ds = new DataInputStream(fs);   BufferedReader br = new BufferedReader(new InputStreamReader(ds));   String tmp;    while ((tmp = br.readLine()) != null)   {       System.out.println (tmp);   }    ds.close(); ตัวอย่างการ Write File ด้วยภาษา Java   FileWriter fw = new FileWriter("file_name.txt");   BufferedWriter out = new BufferedWriter(fw);   out.write("Test Wrrite1");   out.write("Test Wrrite2");   out.write("Test Wrrite3");   

Java Object พื้นฐาน OOP กับ ภาษา Java คุณแน่นพอหรือยัง

บทความเกี่ยวกับ : Java Object พื้นฐาน OOP กับ ภาษา Java คุณแน่นพอหรือยัง ผมเชื่อว่าเมื่อเริ่มเรียน OOP อาจารย์มักจะหยิบเอาภาษา Java มาเป็นภาษาที่ใช้ในการสอน เนื่องจาก Java เป็นภาษาที่มีโครงสร้างแบบ OOP นั่นเอง สิ่งแรกที่อาจารย์สอนให้เรารู้จักก็คือ Class กับ Object แบบว่าเข้าเรียนชั่วโมงแรกก็ต้องได้ยกตัวอย่าง Class กับ Object กันแล้ว ในตำราตั้งแต่สมัยเรียนบอกไว้่ว่า Class คือแบบแปลนหรือ พิมพ์เขียว Object คือ สิ่งที่ผลิตจาก แบบแปลน หรือ Class นั้นๆ หุหุแค่นี้เองไม่เห็นจะยาก ชิมิ ลองมาดูคำตอบของเพื่อนๆแต่ละคนกันผมเชื่อว่าเกิน 80 % จะเจอคำตอบประมาณนี้  - Class ของ ต้นมะม่วง คือ แบบแปลนต้นมะม่วง  Object ของ ต้นมะม่วง คือ ลูกมะม่วง  .. Fail  !!!    ที่ตอบแบบนี้เพราะ เข้าใจว่าลูกมะม่วงคือสิ่งที่ผลิตออกมาจากต้นมะม่วงสินะ T_T -  Class ของห้องเรียน คือ แปบแปลนห้องเรียน Object ของห้องเรียน คือ กระดานดำ , เก้าอี้   .. Fail !!!     ที่ตอบแบบนี้เพราะเข้าใจว่า Class คือ ห้อง ส่วน Object คือ วัตถุ ในห้อง 555+ อันนี้หนักกว่า ขนาดอ่านความหมายมาแล้วยังตอบกันแบบ Fail !!  

Java Virtual Machine (JVM) คืออะไร

บทความเกี่ยวกับ : Java Virtual Machin e(JVM) คืออะไร Java Virtual Machine  หรือ JVM คือ เครื่องจักรกลเสมือนที่จำลองตนไว้พื่อ Run งานที่เป็นภาษา Java เรียกได้ว่าถ้าคุณจะ Run Program ที่พัฒนาด้วยภาษา Java คุณจะต้องมี JVM ภายใน JVM ต้องการ Resource จาก Machine หลักไม่ว่าจะเป็น ... หน่วยความจำ เรียกว่า Heap memory เพื่อการใช้งานสำหรับ Java application   ต่างๆ รวมทั้งยังมีการทำงานของ garbage collection ที่จะตื่นมาเพื่อ clear memory ที่จองไว้แล้วไม่ได้ใช้ ออกไปเพื่อให้ JVM ใช้งาน Memory ได้อย่างมีประสิทธิภาพนั่นเอง Java Virtual Machine ( JVM ) ประกอบด้วยการทำงานหลักๆ สามส่วนได้แก่     Class Loader เป็นตัวอ่านไฟล์ .class เข้ามาทำงานใน Heap Memory  บน JVM     Runtime Data Area (JVM Memory) ส่วนนี้เป็นการจัดสรรพื้นที่ Memory เพื่อใช้งานในแต่ละส่วน โดยประกอบไปด้วย Method area , Heap Area ,Stack Area , PC Register , Native Method Stack ซึ่งแต่ละส่วนก็จัดเก็บข้อมูลแยกกันไป     Execution Engine ส่วนนี้เป็นตัวควบคุมกระบวนการทำงานต่างๆ ได้แก่ Interpreter เป็นตัวอ่าน byte cod

Java jar , war,ear นามสกุลไฟล์สำหรับ Deploy ในรูปแบบต่างๆของ Java

บทความเกี่ยวกับ : Java jar , war,ear นามสกุลไฟล์สำหรับ Deploy ในรูปแบบต่างๆของ Java พูดถึงไฟล์ ดอท .jar  แล้วหลายคนคงพอรู้จัก แต่ถ้าบอกว่า ดอท .war  , ดอท .ear แล้วคงจะได้ยินกันใหนหมู่ Enterprise ที่พัฒนากันในรูปแบบ Web Application เนื่องจาก Source ในภาษา Java จะถูก Compile ออกมาเป็น Class มากมาย ทำให้ไม่สะดวกเวลาเอาไปใช้งานจึงทำให้เกิด zip Format ออกมาเป็นนามสกุลต่างๆ เช่น - ไฟล์ java  .jar   หมายถึง Java Library ทั่วไปที่ Compile แล้ว Pack หรือ Zip ไว้ในรูปแบบของ jar file - ไฟล์ Web Application .war เ็ป็น Zip ไฟล์ที่เกิดจากการ Pack Code ตามโครงสร้าของ Web Application  - ไฟล์ Enterprise Application  .ear เป็นไฟล์ที่ใหญ่ที่สุดที่อาจรวม หลายๆ war ไว้ข้างใน หรือ หลาย application ไว้ข้างใน ไฟล์ .ear เกิดขึ้นมาพร้อมๆ กับ ยุคของ EJB ที่มีการกำหนด Deployment Format ไว้ ไฟล์แต่ละนามสกุลก็จะมีโครงสร้างภายในแตกต่างกันและถูกนำไปใช้งานแตกต่างกันไป ไว้บทความต่อไปค่อยมาลงลึกทีละ Format กัน

Java XML Read and Write XML บนภาษา Java ด้วย jdom

บทความเกี่ยวกับ : Java XML Read and Write XML บนภาษา Java ด้วย jdom XML เป็นโครงสร้างภาษาในรูปแบบ Tag ที่ปัจจุบันนำมาใช้อย่างแพร่หลายไม่ว่าจะเป็นพวก Configuration หรือ Data Format ต่างๆ ทำให้เราเลี่ยงไม่ได้ที่จะต้องมีการเขียนโปรแกรมเพื่อ Read หรือ Write เอกสาร XML ตัวอย่างต่อไปนี้จะเป็นการใช้ Jdom ซึ่งเป็น Library ที่สามารถ download มาใช้ได้แบบฟรีๆ ยกตัวอย่างเรามี XML ที่เป็นโครงสร้างง่ายๆ ชื่อ tets.xml ตามนี้ <XML>     <ELM1>Value</ELM1> </XML> ก่อนอื่นทำการสร้าง Document ด้วยคำสั่งนี้ Document d = new SAXBuilder().build("c:\test.xml"); ด้วยคำสั่งนี้เราจะได้ Object ของ Documetn มา ซึ่งเราสามารถนำ Object นี้มาเล่นต่อได้ครับเช่น Element root=doc.getRootElement(); จะทำให้เราได้ Object ของ Root Element ออกมา หากต้องการ วน Loop ทุก Element ออกมาสามารถใช้ Iterator ช่วยได้ครับ เช่น Iterator itr = root.getChildren().iterator(); method getChildren() จะ return list ของ Element ลูกที่อยู่ในระดับถัดมา 1 ระดับจาก Element ท

java -Xms , java -Xmx กำหมด memory ให้ JVM เพื่อป้องกันปัญหา Out of Memory

บทความเกี่ยวกับ : java -Xms , java -Xmx กำหมด memory ให้ JVM เพื่อป้องกันปัญหา Out of Memory หลายคนคงจะเจอปัญหา out of memory เนื่องจากแรมไม่พอให้ JVM ใช้งาน เหตุการแบบนี้อาจะเกิดจากความผิดพลาดในการคืน resource ของ Programmer เอง แต่บางครั้ง Program ที่เขียนก็มีความต้องการใช้ Memory จำนวนมากจริงๆ เกินกว่าค่า default ที่กำหนดไว้ ซึ่งหากเราต้องการปรับแก้ให้ใช้คำสั่ง    - java -Xms init ค่า heap size     โดย Xms นั้นจะเป็นการกำหนดค่า ตั้งต้นของ Memory ไว้เป็นขั้นต่ำจากนั้นจะค่อยๆ เพิ่ม      ถ้าหากมีความจำเป็นต้องการใช้ Memory  ในบางช่วง Peak โดยมากสุดจะไม่เกิน Xmx      ค่าตั้งต้นควรกำหนดให้เหมาะสม ถ้าน้อยเกินไปก็จะทำให้ต้องเสียเวลานในการขยาย      แต่ถ้ามากเกินไปก็จะเป็นการจอง Memory ไว้จนเกินความจำเป็น    - java -Xmx max heap size      ค่านี้เป็นค่าสูงสุดที่ Java จะทำการขยาย Memory เพื่อให้รองรับ load งานต่างๆ ของเราได้      การกำหนด Value ตรงนี้น้อยไปอาจมีผลเสีย กรณีที่ระบบเรา Peak ขึ้นมาในบางช่วง      ในทางตรงกันข้ามหากกำหนดไว้มากเกินไปจะมีผลให้ Memory ถูกจองมาใช้เยอ

Java this กับ super การใช้งานคำสั่ง this กับ super ใน ภาษา Java

บทความเกี่ยวกับ : Java this กับ super การใช้งานคำสั่ง this กับ super ใน ภาษา Java คำสั่ง this กับ super มีความสำคัญกับการเขียนโปรแกรมในภาษา Java แน่นอน เนื่องจาก ภาษา Java มีโครงสร้างภาษาแบบ OOP ซึ่งจุดเด่นที่ขาดไม่ได้คือ เรื่องของ การสืบทอดคุณสมบัติ แล้วการสืบทอดคุณสมบัติ หรือ Inherit มันเกี่ยวกับ this หรือ super ยังไง เรามาดูกัน แน่นอนเมื่อมีการสืบทอดมันก็ย่อมมีเรื่องของการทับซ้อนของ method ต่างๆ ของ Class แม่กับ Class ลูก อาจเนื่องมาจากการทำ Override Method เมื่อเกิดเหตุการณ์แบบนี้ขึ้น คำถามก็มีอยู่ว่า เราจะแยกแยะ Method ที่เหมือนกันของ Class แม่กับ class ปัจจุบันยังไง นี่คือที่มาที่ทำให้เราต้องเรียกใช้ คำสั่ง this และ super - this  ใช้เพื่อเรียก ตัวแปร หรือ method ของ Class เราเอง - super ใช้เพื่อเรียก ตัวแปร หรือ method ของ Classแม่ที่เราสืบทอดมา

Java if else เช็คเงื่อนไข and or not พื้นฐานการเขียนโปรแกรมที่ต้องรู้

บทความเกี่ยวกับ : Java if else เช็คเงื่อนไข and or not พื้นฐานการเขียนโปรแกรมที่ต้องรู้ การเช็คเงื่อนไขเป็นสิ่งที่ขาดเสียไม่ได้ในการเขียนโปรแกรมไม่ว่าจะภาษาใหนๆ ก็ตาม วันนี้จะนำเสนอตัวอย่างการเช็คเงื่อนไข  if ใน ภาษา Java ในการเช็ค Logic  AND OR ..NOT โครงสร้าง if ในภาษา Java if(เงื่อนไข) {    //Statement     //Statement }else if(เงื่อนไข){    //Statement    //Statement   }else{    //Statement } ตัวอย่าง Code การเช็คเงื่อนไข if ใน Java ตัวอย่างแรกการเช็คเงื่อนไข if กับค่าตัวแปร int Operator ในการเปรียบเทียบ Logic แบบ พื้นฐาน ประกอบด้วย ==  เท่ากับ !=   ไม่เท่ากับ >    มากกว่า <    น้อยกว่า >=  มากกว่าหรือเท่ากับ <=  น้อยกว่าหรือเท่ากับ         int i = 10;         if(i==10){             System.out.println("If 1 is true");         }else if(i != 9){             System.out.println("If 2 is true");         }else{             System.out.println("If 3 is true");         }  จาก Code ตัวอย่างข้างต้น

Java loop for เขียนโปรแกรมวน Loop ใน ภาษา Java

บทความเกี่ยวกับ : Java loop for เขียนโปรแกรมวน Loop ใน ภาษา Java Java loop for เขียนโปรแกรมวน Loop ใน ภาษา Java การเขียนโปรแกรมไม่ว่าภาษาใดๆ ก็ตาม พื้นฐานที่เราต้องรู้จะมีอยู่ไม่กี่เรื่อง หลักๆ เ่ช่น การใช้งานตัวแปร, การเช็คเงื่อนไข และก็ การทำงานซ้ำๆ หรือการ วน Loop นั่นเอง วันนี้จะสอนวิธีการ วน Loop ใน ภาษาจาวา การวน Loop ในภาษา จาวา มีหลายแบบ แบบที่จะพูดถึงวันนี้คือ For Loop โครงสร้าง คือ For (เงื่อนไข) {    --  Statement    --  Stetement } ตัวอย่าง Code Java Loop For ตัวอย่างวน Loop ค่า i ตั้งแต่ 1 ถึง 10         for(int i=0;i<=10;i++){             System.out.println("i Value "+i);         } ตัวอย่างการวน Loop ค่าจาก Vector         Vector<String> v =new Vector<String>();         v.add("d1");         v.add("d2");         v.add("d3");         v.add("d4");         for(int i=0;i<v.size();i++){             System.out.println(v.get(i));         }         หรือจะเป็นแบบนี้ก็ได้ สั้นๆ   

การใช้งาน StringBuffer เพื่อเพิ่มความเร็วใน Java Program

บทความเกี่ยวกับ : การใช้งาน StringBuffer เพื่อเพิ่มความเร็วใน Java Program เพื่อนๆ หลายคนคงจะเคยเขียนโปรแกรมโดยการ ประกาศตัวแปร String แล้วมีการ วน Loop ต่อ String ยาวๆ เคยสังเกตมั้ยครับว่ามันทำงานช้ามากๆ ยิ่งถ้าต่อ String เยอะเข้าจริงๆ แล้วยิ่งจะทำให้ โปรแกรม เดี้ยงไปเลย ลองเปลี่ยนมาใช้ StringBuffer  ครับ append ไปเรื่อยๆ แล้วค่อยไป toString ตอนที่จะเอาไปใช้งาน รับรอง ผลได้เลยครับ

Java StringBuffer ต่อ String ให้เร็วด้วย String Buffer

บทความเกี่ยวกับ : Java StringBuffer ต่อ String ให้เร็วด้วย String Buffer Advertisements เชื่อว่าเพื่อนๆ หลายๆ คนคงจะเคยเขียนโปรแกรมที่มีการ เอา String มาต่อกันยาวๆ เช่น String a ="Test"; a+="Test2"; a+="Test3"; . . . ต่อกันไปเรื่อยๆ แล้วพบว่า ยิ่งเยอะก็ยิ่งทำงานช้าลงๆ อย่ามองข้ามความปลอดภัยครับ บางคนเห็นว่าทำไม โปรแกรมเราทำงานช้าจัง ก็ไปไล่ดูอ้อมโลกโดยมองข้ามจุดนี้ไปเพราะคิดว่ามันไม่น่าจะมีอะไร แนวทางแก้ให้ใช้  java.lang.StringBuffer  ครับ ตัวอย่างก็ง่ายๆ เพียงแี่ค่นี้ StringBuffer sb=new StringBuffer(); sb.append("Test1"); sb.append("Test2"); sb.append("Test3"); . . . Add ไปเหอะครับเอาให้พอเยอะแค่ใหนก็ยังวิ่งปร๋อ สุดท้ายตอนที่จะใช้งานก็ค่อย toString() ออกมา สุดท้ายนี้หวังว่าจะเป็นประโยชน์กับผู้อ่านไม่มากก็น้อยนะคร้าบ

Oracle ปัดเศษ แบบต่างๆ

บทความเกี่ยวกับ : Oracle ปัดเศษ แบบต่างๆ คำสั่งปัดลงตลอด select floor(1.1) from dual   // 1 คำสั่ง ปัดขึ้นตลอด select ciel (1.1) from dual // 2 คำสั่งปัดเศษแบบต่างๆ round(10.25) from dual  // 10 round(10.65) from dual  // 10.1 ลองเอาไปใช้กันดูนะคร้าบบ

JAVA Keywords คำสงวนหรือ Reserved Word ในภาษา จาวา

บทความเกี่ยวกับ : JAVA Keywords คำสงวนหรือ Reserved Word ในภาษา จาวา วันนี้ไม่มีอะไรมากครับเคยเห็นเวลาทำข้อสอบแล้วมักจะมีการถามเรื่องนี้อยู่บ่อยๆ เลยเอามาฝากกันซักหน่อย คำสงวนในภาษา Java คือคำที่ห้ามนำไปใช้ในการ ตั้งชื่อ Class , Method ตลอดจนชื่อ ตัวแปร ต่างๆ มีดังต่อไปนี้ครับ 49 Reserved ใน Java abstract, assert, boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, extends, final, finally, float, for, goto, if, implements, import, instanceof, int, interface, long, native, new, package, private, protected, public, return, short, static, strictfp, super, switch, synchronized, this, throw, throws, transient, try, void, volatile, while อย่าเผลอเอาไปใช้นะครับพี่น้อง หุหุ

synchronized block กับ synchronized method ต่างกันยังไง

บทความเกี่ยวกับ : synchronized block กับ synchronized method ต่างกันยังไง เคยมีคนถามมาว่า synchronized block  กับ synchronized method ต่างกันยังไง เวลาไปสัมภาษณ์งานคำถามนี้ก็มักจะถูกหยิบมาถามอยู่ประจำ อย่าว่าแต่ block หรือ method เลยครับเอาแค่คำว่า synchronized คืออะไรให้มันได้เสียก่อน synchronized  จะนำมาใช้เมื่อต้องการ Lock ให้ทำงานในขึ้นตอนใดเสร็จสิ้นเสียก่อน พูดง่ายๆคือถ้ามีการทำงานพร้อมๆกันหลาย Thread ถ้าถึงจุดที่ synchronized จะต้อง รอเพื่อทำงานทีละตัวๆ  ... ทำไมเราอธิบายได้งงขนาดนี้เนี่ย 55+ เข้าประเด็นเลยละกัน synchronized block  กับ synchronized method ขอสรุปสั้นๆ ตามนี้นะครับ synchronized method ->ถ้ามีหลายๆ Thread เรียก method นี้พร้อมกันคนละ instance มันจะไม่ Lock ครับ synchronized block -> สามารถกำหนดให้ Lock ที่ระดับ instance ได้ครับจะทำให้ Lock ได้ดั่งใจนึก เห่อพอแค่นี้ก่อนที่จะงงกันไปกว่านี้ T_T

สำภาษณ์งาน Java คำถาม Operator | กับ || ต่างกันยังไง

บทความเกี่ยวกับ : สำภาษณ์งาน Java คำถาม Operator | กับ || ต่างกันยังไง เอามาถามเล่นๆนะครับสมัยผมเดินหางานเคยเจอคำถามแบบนี้ เค้าก็ถามประมาณว่า 1. if( a==b || a==c) 2. if(a==b | a ==c ) สองบรรทัดนี้อันใหนถูก ผมตอบอย่างมั่นใจเลยครับว่า ข้อ 1 ถูก แต่ข้อสอง compile ไม่ผ่าน นั่นก็เป็นเพราะว่าประติแล้วผมจะเขียนแบบข้อ 1 ไม่เคยเขียนแบบข้อ 2 ข้อนี้ผมชิลๆ ครับมั่นใจมากพอตอบเสร็จก็เฉยๆนะครับคนถามเค้าก็ไม่ได้ว่าอะไร ไม่ได้บอกว่าถูกหรือผิดแต่ผลการสัมภาษณ์วันนั้นผมตกครับ เห่อๆ เซ็งมากเลยมานั่งลองเขียนดูตามที่เค้าถาม ผลปรากฏว่า พระเจ้า ข้อ 2 มันไม่ Error ครับ Run ได้ปรกติ ลองใช้  &  กับ && ก็ได้มีค่าเท่ากันครับ ถึงตอนนี้บอกตามตรงว่ายังไม่ได้คำตอบ แต่นึกย้อนไปทีไรก็รู้สึกอายตัวเองทุกที เพราะไปคุยไว้เยอะแล้วตอบแบบมั่นใจสุดๆ ผมว่าคนถามเค้าคงขำในใจอ่ะ เห่อๆ ชิลๆ

Java Array ปรกาศตัวแปร Array และการใช้งาน

บทความเกี่ยวกับ : Java Array ปรกาศตัวแปร Array และการใช้งาน หลายๆ คนจะงงกับการใช้งาน Array โดยเฉพาะน้องๆมือใหม่ที่เพิ่งหัดเขียน Array ถือเป็นของแสลงชั้นดี หุหุ Format การประกาศตัวแปร Array Datatype[] ชื่อตัวแปร = new Datatype[จำนวนช่อง]; Datatype ชื่อตัวแปร[] = new Datatype[จำนวนช่อง]; ได้ทั้งสองแบบน่อ ดูตัวอย่างได้เลยครับ package example.util; public class ArrayExample {     public void arraypExample(){         //Create Array         String arr[]=new String[10];                 //Store data to Array         arr[0]="0";         arr[1]="1";         arr[2]="2";         System.out.println("-- Example for Get Value from Array --");         System.out.println(arr[0]);         System.out.println(arr[1]);         System.out.println(arr[2]);         for(int i=0;i<arr.length;i++){             System.out.println("Loop "+arr[i]);         }     }     public static void main (String args[]){         Arra

Oracle Hint เทคนิคการ Query เพื่อ Tuning Performance

บทความเกี่ยวกับ : Oracle Hint เทคนิคการ Query เพื่อ Tuning Performance การใส่ Hint ตาม Format นี้เลยครับ SELECT /*+ HINT */  * from  tbl ตัวอย่างเช่นการบังคับให้ Query แบบ FULL คือไม่ใช้ Index SELECT /*+ FULL(x) */ FROM tab1  ตัวอย่างการบังคับให้ Query โดยใจ Index ตามที่ระบุ SELECT /*+ INDEX(test_idx1) */ * FROM tbl ตามนี้เลยครับสามารถช่วยได้เยอะเลยทีเดียวส่วน Hint มีอะไรบ้างนั้นตามด้านล่างเลยครับ     *  ORDERED - usually with USE_NL to get Oracle to not hash join     * INDEX (t index_name) - where Oracle chooses the wrong index over the correct one     * NO_INDEX - prevent an index from being used     * I NDEX_COMBINE - merging bitmap indexes (use when Oracle does not merge bitmap indexes)     * FIRST_ROWS (n) - when you only want the first few rows     * PARALLEL - to force parallel query on certain specific queries     * GATHER_PLAN_STATISTICS - used as a handy sql trace     * DYNAMIC_SAMPLING - used as alternative to statistics for large-scale

Java Video วีดีโอ สอน Java

รูปภาพ
บทความเกี่ยวกับ : Java Video วีดีโอ สอน Java วันนี้นั่งเล่นเน็ตอยู่ดีๆ ก็ไปเจอคลังแสงเข้าให้ ผมว่าน่าจะเป็นประโยชน์กับน้องๆมือใหม่นะครับ เอาไว้ดูเล่น เป็นวีดีโอสอน Java ครับฟังดูแล้วเค้าอธิบายได้ดีน่ะ

Java Vector การใช้งาน Vector พร้อมตัวอย่าง Java โค้ด ให้ โหลด ฟรี

บทความเกี่ยวกับ : Java Vector การใช้งาน Vector พร้อมตัวอย่าง Java โค้ด ให้ โหลด ฟรี Vector เป็น Class ใน package java.util การใช้งานคล้ายๆ ArrayList ที่ได้นำเสนอไปแล้วก่อนหน้านี้ จะว่าไปมันก็แทบจะใช้งานเหมือนกันเลยแหละแต่จะแตกต่างกันยังไงนั้นเดี๋ยวเล่าให้ฟังอีกที ตอนนี้มาดูตัวอย่างกันเลยดีกว่า ตัวอย่างการใช้งาน Vector package example.util; import java.util.Iterator; import java.util.Vector; public class VectorExample {     public void vectorExample(){         //Create Vector Object         Vector<String> vector=new Vector<String>();         //Store and Remove data from vector         vector.add("value1");         vector.add("value2");         vector.add("value3");         String value3=vector.remove(2);                System.out.println("-- Example for Get Value from vector --");         System.out.println("Get vector value: "+vector.get(0));         System.out.println("Remove vector value: "+v

Java StringTokenizer การใช้งาน StringTokenizer เพื่อตัด String ใน Java พร้อม Source code ให้โหลด

บทความเกี่ยวกับ : Java StringTokenizer การใช้งาน StringTokenizer เพื่อตัด String ใน Java พร้อม Source code ให้โหลด StringTokenizer เป็น Class ใน paclage java.util ใช้ในการตัด String โดยการใส่ String เข้าไปเป็นแผงแล้วทำการตัดออกมาเป็นช่วงๆ สามารถกำหนดตัวตัดคำได้ ตามตัวอย่าง ตัวอย่างการตัด String โดยใช้ Java StringTokenizer package example.util; import java.util.StringTokenizer; public class StringTokenizerExample {     public void stringTokenizerExample(){         //Create StringTokenizer Object         String data="1234,5667,2222,3333";         StringTokenizer st=new StringTokenizer(data,",");         while(st.hasMoreTokens()){             String temp=st.nextToken();             System.out.println("Next Token "+temp);         }            }         public static void main (String args[]){         StringTokenizerExample stex=new StringTokenizerExample();         stex.stringTokenizerExample();     } } ผลการ Run Program

Java ArrayList ตัวอย่างการใช้งาน ArrayList พร้อม Source Code ให้โฟลด

บทความเกี่ยวกับ : Java ArrayList ตัวอย่างการใช้งาน ArrayList พร้อม Source Code ให้โฟลด ArrayList เป็น Class ใน package java.util การใช้งานก็คล้าย Array นั่นแหละครับ เพียงแต่ว่าถูกออกแบบมาให้ใช้งานได้ง่ายและลดข้อจำกัดหลายๆอย่างของ Array ลงไป การอ้างถึงข้อมูลใน ArrayList จะใช้ index โดยเริ่มนับจาก 0 เช่นเดียวกับ Array ทั่วไปครับ ตัวอย่างการใช้งาน Java ArrayList package example.util; import java.util.ArrayList; import java.util.Iterator; public class ArrayListExample {     public void arrayListExample(){         //Create ArrayList Object         ArrayList<String> arrayList=new ArrayList<String>();         //Store and Remove data from ArrayList         arrayList.add("value1");         arrayList.add("value2");         arrayList.add("value3");         String value3=arrayList.remove(2);                System.out.println("-- Example for Get Value from ArrayList --");         System.out.println("Get ArrayList val

Java Hashtable ตัวอย่าง การใช้งาน Hashtable พร้อม Source Code ให้โหลด

บทความเกี่ยวกับ : Java Hashtable ตัวอย่าง การใช้งาน Hashtable พร้อม Source Code ให้โหลด Class ใน package java.util อีกตัวคือ Hashtable ตัวนี้จัดเก็บในรูปแบบคู่อันดับเช่นเดียวกันกับ HashMap ต่างกันยังไงนั้นเดี๋ยวเล่าให้ฟังอีกทีนะครับการใช้งานดูเผินๆ ก็เหมือนกันกับ HashMap เลยล่ะครับ คือจัดเป็นในรูปแบบคู่อันดับ อ้างถึงด้วย Key กับ Value นั่นเอง ตัวอย่าง Java Hashtable package example.util; import java.util.*; public class HashtableExample {     public void hashtableExample(){         //Create Hashtable Object         Hashtable<String,String> hashtable=new Hashtable<String,String>();         //Store and Remove data from Hashtable         hashtable.put("key1", "value1");         hashtable.put("key2", "value2");         hashtable.put("key3", "value3");         String key3=hashtable.remove("key3");                 System.out.println("-- Example for Get Value from Hashtable --");

Java HashMap Example เอาตัวอย่างการใช้งาน HashMap มาฝาก

บทความเกี่ยวกับ : Java HashMap Example เอาตัวอย่างการใช้งาน HashMap มาฝาก HashMap เป็น Class ใน package java.util   ใช้ในการจัดเก็บคู่อันดับ เวลาใช้งานก็จะต้องมีการอ้างถึง Key กับ Value เช่น จะใส่ค่าลงใน HashMap ก็ต้องบอกว่า ใส่ลงไปใน Key อะไร และ Value เป็นอะไร ตอนเรียกใช้งานก็ต้องอ้างถึงผ่าน Key เช่นเดียวกัน เอาล่ะมาดูตัวอย่างการใช้งาน Java HashMap กันเลย ตัวอย่าง Source Code การใช้งาน HashMap package example.util; import java.util.*; public class HashmapExample {     public void hashmapExample(){         //Create HashMap Object         HashMap<String,String> hashmap=new HashMap<String,String>();         //Store and Remove data from HashMap         hashmap.put("key1", "value1");         hashmap.put("key2", "value2");         hashmap.put("key3", "value3");         String key3=hashmap.remove("key3");                 System.out.println("-- Example for Get Value from HashMap --&qu

Codeigniter MVC แนวคิดและจุดสำคัญที่รู้แล้วหากินได้

บทความเกี่ยวกับ : Codeigniter MVC แนวคิดและจุดสำคัญที่รู้แล้วหากินได้ วันนี้จะมาทำความเข้าใจ MVC ในแบบของ Codeigniter MVC กันครับสำหรับผมแล้วสิ่งที่ต้องหาคำตอบไม่ว่าจะเล่น MVC ตัวใหนมีอยู่แค่ 8 ข้อ เท่านั้นถ้ารู้แล้วหากินได้ Concept สำหรับผมมีแค่นี้เอง อย่างที่เรารู้ๆกันว่า Controller เป็นตัวเชื่อมระหว่าง view กับ model view อยากได้อะไร บอก controller แล้ว controller จะไปสั่งให้ model ทำให้ พอได้ของมา controller ก็ส่งต่อให้ view เพราะฉะนั้นสิ่งที่ต้องตอบให้ได้คือ 1. View ส่งหา Controller ยังไง 2. Controller รับค่าจาก View ยังไง 3. Controller ส่งหา Model ยังไง 4. Model รับค่าจาก Controller ยังไง 5. Model ส่งของกลับให้ Controller ยังไง 6. Controller รับของที่ผลิตแล้วจาก Model ยังไง 7. Controller ส่งของต่อให้ View ยังไง 8. View รับของจาก Controller ยังไง จากทั้ง 7 สำหรับ Codeigniter ผมทำแบบนี้ครับ 1. View ส่งหา Controller ส่งผ่าน Form หรือ แนบ Parameter ผ่าน URL มา กรณีส่งผ่าน Form ก็ปรกติ จะเป็น GET หรือ POST ก็ว่ากันไป แต่กรณีส่งผ่าน URL นี่ CI มีรู

Hibernate Relation การ เขีียน Mapping Relation แบบ Bidirectional ด้วย Annotation

บทความเกี่ยวกับ : Hibernate Relation การ เขีียน Mapping Relation แบบ Bidirectional ด้วย Annotation ผมจะยกตัวอย่าง Mapping Class ในการเขียน Annotations สำหรับ Relation นะครับ ยกตัวอย่างการเขียนแบบง่ายๆที่สุดแต่ผมก็ใช้อยู่แค่นี้จริงๆครับนั่นคือ Relation แบบ One to Many  ง่ายๆ ก็เพื่อให้ Class นึงสามารถ Get Object ได้ ส่วนอีก Class สามารถ get List ได้ ตามตัวอย่างเลยครับ @Entity public class Category {     @OneToMany(mappedBy="product")     public Set<Product> getProduct() {     ... } @Entity public class Product {     @ManyToOne     @JoinColumn(name="cate_fk")     public Category getCategory() {     ... }       ตามนี้เลยครับจะเห็นว่าใช้ง่ายๆ แค่นี้ก็หากินได้แล้วครับผม

PHP Paging การแบ่ง Page ด้วย PHP กับ Framework เทพๆ CodeIgniter

บทความเกี่ยวกับ : PHP Paging การแบ่ง Page ด้วย PHP กับ Framework เทพๆ CodeIgniter การแสดงผลบนเว็บเมื่อมีจำนวน Record จำเป็นต้องมีการแบ่งข้อมูลการแสดงผลออกเป็น หน้าๆ หรือที่เรียกกันว่าการทำ Paging นั่นเอง การเขียนโปรแกรมแบบนี้ด้วย PHP ถือว่าค่อนข้างยุ่งยากเพราะ ถ้าจะให้ดีต้องมีการคำนวณจำนวนหน้า แล้ว List รายการ ออกมาให้คลิ๊ก ถ้านึกภาพไม่ออกให้ดูที่ผลการสืบค้นของ Google ด้านล่างที่มีการแบ่งหน้า ประมาณนั้นแหละครับ Cdeigniter จัดการให้ง่ายๆ ตามตัวอย่างนี้เลย $this->load->library('pagination'); $config['base_url'] = 'myapp/index'; $config['total_rows'] = '200'; $config['per_page'] = '20'; $this->pagination->initialize($config); echo $this->pagination->create_links(); เพียงเท่านี้  CI ก็จะทำการสร้าง Page List พร้อมทำ Link ให้เสร็จสรรพ เลยล่ะครับ

PHP File UPload วิธีการทำ File Upload แบบง่ายๆ ด้วย CodeIgniter

บทความเกี่ยวกับ : PHP File UPload วิธีการทำ File Upload แบบง่ายๆ ด้วย CodeIgniter การทำ File Upload โดยใช้ PHP นั้นจะว่าไปก็ืถือว่าทำได้ง่ายมากๆ เพียงแค่เขียนไม่กี่บรรทัด ถ้าเทียบกับ Java แล้วที่ต้อง Code กันยาวเหยียดก็ถือว่าง่ายกว่ากันเยอะ แต่พอมาใช้ Codeigniter File Upload แล้วก็จะเห็นได้ว่าเรื่องที่ง่ายอยู่แล้วก็ยิ่งง่ายเข้าไปอีกเพราะเพียงแค่ Config นิดหน่อย แล้วก็ Code อีกบรรทัดเดียวก็จบเลย ตัวอย่างง่ายๆ ตามนี้เลยครับผม          $config['upload_path'] = './uploads/';         $config['allowed_types'] = 'gif|jpg|png';         $config['max_size']    = '100';         $config['max_width']  = '1024';         $config['max_height']  = '768';         $rand = rand(1111,9999);         $date= date("Y-m-d ");         $config['file_name']  = $date.$rand;         $this->load->library('upload', $config);                if ( ! $this->upload->do_upload('photo&

Hibernate Criteria การใช้งาน Criteria เพื่อช่วยในการ Query ให้ง่ายขึ้น

บทความเกี่ยวกับ : Hibernate Criteria การใช้งาน Criteria เพื่อช่วยในการ Query ให้ง่ายขึ้น Criteria เป็นตัวช่วยสร้าง Query ชั้นดีเลยทีเีดียวครับ สามารถแทรก Condition แทรก Order  ได้ไม่จำกัดด้วยการใส่ Restrictions ลงไป ลองดูตัวอย่างการใช้งานกันเลย Criteria cri = session.createCriteria(MyMappingClass.class); cri.setMaxResults(50); List myObjList = cri.list(); แบบง่ายสุดเพียงเท่านี้ก็ได้ List ของ Object ออกมาแล้วครับ หรือถ้าจะแทรก Condition ก็ง่ายๆ ตามนี้เลย List myObjList = session.createCriteria(MyMappingClass.class)     .add( Restrictions.like("fname1", "some value%") )     .add( Restrictions.between("money", min, max) )     .list(); ลองใส่ Order by เข้าไปก็ไม่ใช่เรื่องยาก List myDataList = session.createCriteria(MyMappingClass.class)     .add( Restrictions.like("fname", "F%")     .addOrder( Order.asc("fname") )     .addOrder( Order.desc("fname2") )     .setMaxResults(100)     .li