Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java
Java
  1. ความแตกต่างระหว่าง CountDownLatch และ CyclicBarrier ใน Java Concurrency

    ทั้งคู่อยู่ใน java.util.concurrent ใช้สำหรับ **synchronization** ระหว่าง threads แต่มีจุดประสงค์และการทำงานต่างกัน ตารางเปรียบเทียบ ลำดับหัวข้อCountDownLatchCyclicBarrier 1วัตถุประสงค์รอให้ **ชุดของ tasks** เสร็จสิ้น (one-shot)รอให้ **ชุดของ threads** พบกันที่ barrier point (reusable) 2นับอะไรน

  2. ความแตกต่างระหว่าง Mutable และ Immutable Object ใน Java

    Mutable Object = สถานะ (state) เปลี่ยนแปลงได้หลังสร้าง | Immutable Object = สถานะ **ไม่สามารถเปลี่ยนแปลงได้** หลังสร้าง ตารางเปรียบเทียบ ลำดับหัวข้อMutable ObjectImmutable Object 1พื้นฐานแก้ไข state ได้หลังสร้าง (setters, public fields)ไม่สามารถแก้ไข state ได้หลังสร้าง 2Thread Safetyไม่ thread-

  3. ความแตกต่างระหว่าง Compile-time Polymorphism และ Runtime Polymorphism ใน Java

    **Polymorphism (พอลิมอร์ฟิซึม)** คือความสามารถในการทำหน้าที่เดียวกันได้หลายรูปแบบ ใน Java มี 2 ประเภทหลัก: ตารางเปรียบเทียบ ลำดับหัวข้อCompile-time Polymorphism (Static Binding)Runtime Polymorphism (Dynamic Binding) 1พื้นฐานBinding เกิดขึ้นตอน compile timeBinding เกิดขึ้นตอน runtime 2ประเภท Bin

  4. ความแตกต่างระหว่าง String และ StringBuffer ใน Java

    String** และ StringBuffer** ใช้จัดการข้อความแตกต่างกันที่สำคัญคือ **Immutability (ความไม่เปลี่ยนแปลง)** ตารางเปรียบเทียบ ลำดับหัวข้อStringStringBuffer 1พื้นฐานImmutable - ไม่สามารถเปลี่ยนค่าได้หลังสร้างMutable - เปลี่ยนค่าได้ (append, insert, delete, reverse) 2Thread SafetyThread-safe เพราะ imm

  5. ปิด Child Browser Window ใน Selenium WebDriver ด้วย Java

    การปิด Child Window (popup/หน้าต่างใหม่) ต้องสลับ context ไปที่ child window ก่อน แล้วจึง close() และสลับกลับ parent ขั้นตอนหลัก เก็บ parent window handle ไว้ก่อน ทำ action ที่เปิด child window ได้ all window handles มา iterate สลับไป child window → close() สลับกลับ parent window ตัวอย่างโค้ดสมบ

  6. Scroll เฉพาะ DIV Element ด้วย Selenium WebDriver ใน Java

    เมื่อต้องการ scroll ภายใน scrollable DIV (ไม่ใช่หน้าจอทั้งหมด) ใช้ JavascriptExecutor กับ scrollIntoView() หรือกำหนด scrollTop โดยตรง Syntax WebElement divElement = driver.findElement(By.xpath(//div[@class=scrollable-div])); // วิธีที่ 1: scrollIntoView (scroll จน element เข้ามาในมุมมอง) ((Javascr

  7. ปิดหน้าต่างเฉพาะ (Specific Window) ด้วย Selenium WebDriver ใน Java

    เมื่อมีหลายหน้าต่าง/แท็บ ใช้ getWindowHandles() และ getWindowHandle() จัดการปิดหน้าต่างที่ต้องการ Concepts getWindowHandle() - ได้ handle ของหน้าต่างปัจจุบัน (String) getWindowHandles() - ได้ Set ของ handle ทั้งหมด switchTo().window(handle) - สลับไปหน้าต่างที่ระบุ driver.close() - ปิดหน้าต่างปัจจุ

  8. รัน Java Application ภายใน Docker Container

    Docker ช่วยให้รัน Java Application ได้ง่ายขึ้นโดยไม่ต้องติดตั้ง JDK/JRE บนเครื่องโดยตรง ใช้ Official Java Image จาก Docker Hub ขั้นตอนการรัน Java ใน Docker 1. สร้างโฟลเดอร์โปรเจกต์ mkdir my-java-app cd my-java-app 2. สร้าง Java Application ไฟล์ HelloWorld.java: public class HelloWorld { publi

  9. จัดการ Authentication Popup ด้วย Selenium WebDriver ใน Java

    Authentication Popup (Basic Auth Dialog) ไม่ใช่ JavaScript alert ปกติ จึงไม่สามารถจัดการด้วย Alert interface ได้ วิธีที่ง่ายที่สุดคือ **ฝัง credentials ลงใน URL** Syntax https://username:password@domain.com/path // ตัวอย่าง https://admin:admin@the-internet.herokuapp.com/basic_auth ตัวอย่างโค้ดสมบ

  10. จับ Browser Logs ด้วย Selenium WebDriver ใน Java

    Selenium สามารถจับ browser console logs ได้ผ่าน RemoteWebDriver และการตั้งค่า log level Prerequisites Selenium 4+ ChromeDriver รองรับ logging ต้อง enable logging capabilities การตั้งค่า Logging Preferences import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.logging.LogTyp

  11. สลับแท็บ (Switch Tabs) ด้วย Selenium WebDriver ใน Java

    การสลับแท็บใน Selenium ต้องทำ 3 ขั้นตอนหลัก: เปิดลิงก์ในแท็บใหม่ด้วย Keys.chord(Keys.CONTROL, Keys.ENTER) เก็บ Window Handles ทั้งหมดไว้ใน ArrayList ใช้ driver.switchTo().window(handle) สลับไปแท็บที่ต้องการ Syntax // 1. เปิดลิงก์ในแท็บใหม่ (Ctrl+Click) String clickLink = Keys.chord(Keys.CONTROL,

  12. ล้าง Cookies ของเบราว์เซอร์ด้วย Selenium WebDriver ใน Java

    Selenium WebDriver มีเมธอดสำหรับจัดการ Cookies 2 แบบหลัก: deleteCookieNamed(name) - ลบ cookie ตามชื่อ deleteAllCookies() - ลบ cookies ทั้งหมดของ domain ปัจจุบัน Syntax // ลบ cookie เฉพาะตัว driver.manage().deleteCookieNamed(cookie_name); // ลบ cookies ทั้งหมด driver.manage().deleteAllCookies();

  13. จับภาพหน้าจอ (Screenshot) ด้วย Selenium WebDriver ใน Java

    การจับภาพหน้าจอ (Screenshot) ใน Selenium ทำได้ผ่าน interface TakesScreenshot เป็นกระบวนการ 3 ขั้นตอน: Cast driver เป็น TakesScreenshot เรียก getScreenshotAs(OutputType.FILE) ได้ไฟล์รูปภาพ คัดลอกไฟล์ไปยังตำแหน่งที่ต้องการด้วย FileUtils.copyFile() Syntax // 1. Cast driver TakesScreenshot screenshot

  14. นับจำนวนครั้งที่ Substring ปรากฏใน String แบบ Recursive ใน Java

    กำหนดสตริงสองตัว str1 และ str2 ต้องการนับจำนวนครั้งที่ str2 ปรากฏใน str1 โดยใช้การเรียกฟังก์ชันตัวเอง (Recursion) ตัวอย่าง str1 = TPisTPareTPamTP, str2 = TP Output: 4 str1 = HiHOwAReyouHiHi, str2 = Hi Output: 3 แนวทางแก้ปัญหา: Recursive + contains() + replaceFirst() ตรวจสอบว่า str1.contains(str2

  15. ตรวจสอบว่าสตริงหนึ่งได้มาจากการหมุนอีกสตริงหนึ่ง 2 ตำแหน่งใน Java

    กำหนดสตริงสองตัว a และ b ต้องการทราบว่า b สามารถได้มาจากการหมุน a ทิศทางเข็มนาฬิกาหรือทิศตรงข้ามเข็มนาฬิกา 2 ตำแหน่งหรือไม่ ตัวอย่าง Input-1 a = google b = legoog Output True คำอธิบาย: google หมุนทิศตรงข้ามเข็มนาฬิกา 2 ตำแหน่ง → legoog ตัวอย่าง Input-2 a = tuorialst b = tutorials Output False แนว

  16. หาตัวเลขบวกที่หายไปจากอาร์เรย์ Unsorted ใน Java (Missing Positive Number)

    กำหนดให้มีอาร์เรย์ของจำนวนเต็มที่ไม่ได้เรียงลำดับ (unsorted) ขนาด N มีค่าอยู่ในช่วง [0, N] โดยมีตัวเลขเพียงตัวเดียวที่หายไป งานคือหาตัวเลขที่หายไปนั้น ตัวอย่าง Input-1 N = 9 arr = [0, 2, 5, 9, 1, 7, 4, 3, 6] Output 8 ตัวอย่าง Input-2 N = 1 arr = [0] Output 1 แนวทางแก้ปัญหา: ใช้ XOR Operation (Tim

  17. การหา Majority Element ใน Java (องค์ประกอบที่ปรากฏมากกว่าครึ่งหนึ่ง)

    Majority Element คือองค์ประกอบที่ปรากฏในอาร์เรย์มากกว่า n/2 ครั้ง (โดย n คือขนาดอาร์เรย์) กล่าวคือ ต้องปรากฏอย่างน้อย floor(n/2) + 1 ครั้ง ตัวอย่าง Input-1 N = 8 A[] = {1, 2, 4, 3, 3, 1, 1, 5} Output 1 คำอธิบาย: ตัวเลข 1 ปรากฏ 3 ครั้ง (ไม่เกิน 8/2 = 4) → จริงๆ แล้วตัวอย่างนี้ไม่มี majority element

  18. หมุนเมทริกซ์ 90 องศาทิศตรงข้ามเข็มนาฬิกาใน Java

    สมมติให้มีเมทริกซ์สี่เหลี่ยมจัตุรัสขนาด N×N งานคือการหมุนเมทริกซ์ทิศตรงข้ามเข็มนาฬิกา (counterclockwise) 90 องศา ตัวอย่าง Input-1 N = 3 matrix[][] = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] Output 3 6 9 2 5 8 1 4 7 แนวทางแก้ปัญหา วิธีที่ง่ายที่สุดคือ: หา Transpose ของเมทริกซ์ (สลับแถวกับค

  19. จัดเรียงอาร์เรย์ของ 0, 1 และ 2 ด้วยอัลกอริทึม Dutch National Flag ใน Java

    กำหนดให้มีอาร์เรย์ที่ประกอบด้วยตัวเลข 0, 1 และ 2 ให้จัดเรียงองค์ประกอบให้เรียงลำดับโดยที่ 0 ทั้งหมดอยู่หน้าสุด ตามด้วย 1 และ 2 อยู่ท้ายสุด โดยต้องจัดเรียงแบบ in-place (ไม่ใช้พื้นที่เพิ่ม) สามารถแก้ปัญหานี้ได้ด้วย DNF (Dutch National Flag) Sorting Algorithm ตัวอย่าง: Input-1 arr[] = {2, 0, 0, 1, 2,

Total 1935 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:79/97  20-คอมพิวเตอร์/Page Goto:1 73 74 75 76 77 78 79 80 81 82 83 84 85