Category Java Family

[JAVA] Shallow Copy กับ Deep Copy

จากบทความที่แล้วนะครับ จะเป็นการใช้แนวคิด Shallow Copy กับ Deep Copy ใน .Net Framework ภาษา C# ครับ คราวนี้มาถึงตาม Java บ้างครับ เปิดมาที่ Code เลยครับ ใน Blog ผมเตรียม Class Person ไว้ โดยมี Get / Set ปกติ และทำ จริงๆ ถ้าไม่อยากเขียนแบบนี้มันมีตัว BeanUtils.copyProperties ที่ช่วยทำ Shallow Copy ให้ครับ แต่มันมีความพิสดารของ Spring /…

[JAVA] Eclipse exit code 13

บางครั้งวลาเราไปอบรมข้างนอก ลงเครื่องใหม่ หรืออ่า่นๆก็แล้วที่ ที่จำเป็นต้องลง Java ตามที่มีคนให้มา หรือ download มาลงเองแหละ แล้วพอไปจะไปเปิดมัน ดันเจอ Message แบบนี้เข้า สำหรับเจ้า Error มีสาเหตุ และวิธีการแก้ไข ดังนี้ครับ สาเหตุ: เกิดจากตัว Eclipse ไม่พบ Java ที่เรา Required ครับ การแก้ไข: มีวิธีการแก้ที่เป็นไปได้ ดังนี้ครับ วิธีแรก: ลง JDK ให้ตรงตามที่ Eclipse ต้องการ อย่างในรูป คือ JDK 1.6 ครับ…

[JAVA] A java exception has occurred

หลายครั้งที่เราเอาไฟล์ .jar จากที่อื่นมาใช้ แล้วพบ Error Message นี้ ผมขอสรุปวิธีแก้ปัญหาที่เคยใช้ได้ผลดังนี้ครับ (พอดีเห็นโพสของรุ่นน้องเลยคิดว่าเอามาเขียนกองๆไว้ใน Blog ดีกว่า) ตรวจสอบ Version ของ .jar ก่อนเลยครับ ว่ามันสร้างมาจาก Java Version อะไร ตรวจสอบ Version Java ในเครื่องเราครับ ว่าเป็น Version ที่ต่ำกว่า จากข้อที่แล้ว หรือไม่ ถ้าใช่ Update Java ให้เครื่องเราครับ แต่ถ้า Update ไม่ได้ (จะมีบางกรณีที่เป็นระบบใหญ่ มันจะขอ Update Java…

[JAVA] Access Modifier ของ Class/Method แต่ละตัวเหมือน หรือต่างกันอย่างไร

Q: public, private, protect ที่เราใช้ใน Class และ Method ต่างๆ มันเหมือน หรือ แตกต่างกันอย่างไรA: จะแยกตอบที่ละอันตามนี้ เดี๋ยวของเพิ่ม default (เกิดจากการที่เราไมได้กำหนด Access Modifier ให้กับ Class/Method) ลงไปด้วยและกัน- private >> ใช้ได้เฉพาะ class มันเองเท่านั้น- protect >> ใช้ได้เฉพาะ Class แม่(Super Class)กับ Class ลูก(Sub Class) ใช้ได้เท่านั้น- default >> ใช้ได้เฉพาะ Package เดียวกันเท่านั้น- public >> ใช้ได้หมด 

FizzBuzz Problem without if (ปัจฉิมบท)

FizzBuzz With Out If Part 2 (AI Generate Image via Bing AI)

จากบทความที่แล้ว แสดงวิธีการเขียน Code กับโจทย์ปัญหา FizzBuzz โดยไม่ใช่ IF กันแล้วนะครับ แต่ผมยังทิ้งท้ายไว้อีกปัญหานึง คือ ถ้ามีเงื่อนไขเพิ่มขึ้นมาหละ โดยให้แสดง WOOF ้เพิ่ม ถ้าตัวเลขนั้นหาร 7 ได้ลงตัว (อ้างอิงจาก WIKI FIZZ BUZZ WOOF ) เราจะมีวิธีการแก้ปัญหาอย่างไรนะครับ โดยผมขอทวนวิธีการที่ใช้แก้ปัญหาใน Blog ตอนที่แล้วก่อนนะครับ

FizzBuzz Problem without if (ปฐมบท)

FizzBuzz With Out If Part 1 (AI Generate Image via Bing AI)

จากบทความที่แล้ว FizzBuzz Problem ไปนะครับ ต่อไปผมลอง Refactor Code อีกรอบ โดยมีเงื่อนไขว่าห้ามใช้ IF ในส่วนของ Logic Fizz และ Buzz ทำไมถึงต้องห้ามใช้ IF เพราะ การใช้ IF ส่งผลให้เกิดความมักง่ายของ Developer ทำให้เกิดปัญหาในการแก้ไข หรือพัฒนา Module เพิ่มเติม ต้องไปแก้ Code จนเกินความจำเป็น และทำให้เกิด Defect(ฺBug) เพิ่มขึ้นด้วย ซึ่งมีแนวคิดทางวิชาการมาสนันสนุนแนวคิดนี้อย่าง The Open Close Principle (OCP) และ High Coupling &…

FizzBuzz Problem

FizzBuzz Intro (AI Generate Image via Bing AI)
FizzBuzz เป็นโจทย์ฝึกสมองเด็ก ที่ใช้ช่วยในการเรียนรู้เรื่องการหาร ซึ่งสามารถไปอ่านกฏเพิ่มเติมได้จากใน WIKI: FIZZBUZZ ครับ แต่บทความนี้ผมขอนำกฏของ FizzBuzz มาประยุกต์กับการเขียนโปรแกรม

[JAVA] Abstract คือ อะไร และต่างกับ Interface อย่างไร

หลายๆคนคงสงสัยว่า Keyword Abstract มัน คือ อะไร และเมื่อไหร่ที่ควรจะใช้ วันนี้ผมมีตัวอย่างง่ายๆในการอธิบายนะครับ โดยอาจจะแทรกเนื้อหาเกี่ยวกับ interface เพิ่มเข้าไปด้วยครับ เพราะลายคนสับสนกันเยอะ  โดยผมขอเริ่มโจทย์ที่เราต้องใช้ Abstract Class ดังนี้ จงเขียน class Student ซึ่งประกอบด้วย data members ดังนี้ name (ชื่อนิสิต), test (อะเรย์ของคะแนน), NUM_OF_TESTS (ค่าคงที่เป็นจำนวนของ test) และ courseGrade (เกรดของวิชา) ให้สร้าง Constructor, methods get/set และ abstract method computeCourseGrade…

[JAVA] Increase Eclipse performance

config eclipse.ini เพิ่ม Performance ให้ Eclipse ——- -startup plugins –launcher.library plugins -product org.eclipse.epp.package.standard.product –launcher.defaultAction openFile –launcher.XXMaxPermSize 384M -showsplash org.eclipse.platform –launcher.XXMaxPermSize 384m –launcher.defaultAction openFile –launcher.appendVmargs -vmargs -Dosgi.requiredJavaVersion=1.7 -server -XX:PermSize=384m -XX:MaxPermSize=384m -Xss4m -Xms1G -Xmx1G -XX:MaxGCPauseMillis=10 -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC

[Android] Error:The SDK Build Tools revision (19.0.3) is too low for project

วันนี้พอ Update Android Studio เป็นเวอร์ชัน 0.6.0 มาใหม่ พอเปิดโปรแกรมขึ้นมาใหม่พบ Error Message ดังรูปเลยครับ สาเหตุ build.gradle มันชี้ไปผิดเวอร์ชั่น ที่ไม่เหมาะสมกับ SDK วิธีการแก้ แบบที่ 1: แก้จากไฟล์ bulid.gradle [xml] apply plugin: ‘android’ android { compileSdkVersion 19 buildToolsVersion ‘19.1.0’ //แก้ไข Build Tools Version ให้เป็นไปตามที่ SDK ต้องการ defaultConfig { minSdkVersion…