JavaRush /จาวาบล็อก /Random-TH /คอฟฟี่เบรค #101. 19 คำถามสัมภาษณ์ Java ที่จำเป็นและคำตอบต...

คอฟฟี่เบรค #101. 19 คำถามสัมภาษณ์ Java ที่จำเป็นและคำตอบตัวอย่างสั้น ๆ

เผยแพร่ในกลุ่ม
ที่มา: Hackernoon ต่อไปนี้เป็นคำถามและคำตอบบางส่วนที่มักเกิดขึ้นในการสัมภาษณ์ Java

1. Java Development Kit (JDK) คืออะไร

JDK เป็นชุดพัฒนาซอฟต์แวร์ที่มีเครื่องมือและไลบรารีที่จำเป็นในการพัฒนาแอปพลิเคชัน Java

2. Java Runtime Environment (JRE) ทำหน้าที่อะไร

JRE อ้างถึง Runtime Environment ซึ่ง Java bytecode ทำงาน JRE ดูแลรักษาไฟล์และไลบรารีสำหรับรันไทม์

3. Java Virtual Machine (JVM) ทำหน้าที่อะไร?

JVM เป็นเครื่องนามธรรมที่ให้สภาพแวดล้อมรันไทม์ซึ่ง Java bytecode สามารถดำเนินการได้

4. Java เป็นแพลตฟอร์มที่เป็นอิสระ ทำไม

ในภาษาการเขียนโปรแกรมอื่นๆ ซอร์สโค้ดจะถูกคอมไพล์เป็นโค้ดที่ปฏิบัติการได้ และโค้ดอาจไม่ทำงานบนทุกแพลตฟอร์ม ด้วยการใช้ JVM เราสามารถทำให้ bytecode เข้าใจได้สำหรับแพลตฟอร์มใด ๆ และ bytecode นี้เป็นแพลตฟอร์มที่ไม่ขึ้นกับใคร แม้ว่า JVM จะแตกต่างกันไปในแต่ละแพลตฟอร์ม แต่ Java นั้นเป็นแพลตฟอร์มที่เป็นอิสระ เนื่องจากไม่มีการพึ่งพาแพลตฟอร์มประเภทใดๆ

5. Java ไม่ใช่เชิงวัตถุ 100% ทำไม

เนื่องจาก Java ใช้ข้อมูลพื้นฐานแปดประเภทเช่น boolean, byte, char, int, float, double, long, short ซึ่งไม่ใช่วัตถุ

6. Constructor ใน Java คืออะไร?

Constructor คือกลุ่มของโค้ดที่ใช้ในการเริ่มต้นวัตถุ ไวยากรณ์:
class DemoClass
{
   // constructor name is same as class name
   DemoClass()
   {
      ....
   }
}
// calls DemoClass() constructor
DemoClass obj = new DemoClass();
ตัวอย่าง:
public class ConstructorDemo
{
   int a; // class attribute
   // create constructor for class ConstructorDemo
   ConstructorDemo()
   {
      a = 26; // initial value for class attribute 'a'
   }
   public static void main(String[] args)
   {
      // creating object for ConstructorDemo class
      // here we're calling constructor ConstructorDemo()
      ConstructorDemo obj = new ConstructorDemo();
      System.out.println(obj.a);
   }
}
ผลลัพธ์:
26

7. คลาสซิงเกิลตันทำหน้าที่อะไร?

คลาสซิงเกิลตันสามารถมีอ็อบเจ็กต์ได้ครั้งละหนึ่งอ็อบเจ็กต์เท่านั้น หลังจากที่วัตถุถูกสร้างขึ้นและเราพยายามที่จะสร้างอินส แตนซ์ของ คลาสซิงเกิลตัน ตัวแปรใหม่จะชี้ไปที่วัตถุแรกที่สร้างขึ้นด้วย

8. คลาส wrapper ใน Java คืออะไร?

คลาส Wrapper อนุญาตให้แปลงชนิดข้อมูลดั้งเดิมเป็นอ็อบเจ็กต์และในทางกลับกัน ตัวอย่าง:
int a = 7; // using primitive datatype
Integer a = new Integer(7); // using wrapper class

9. อะไรคือความแตกต่างระหว่างตัวดำเนินการ == และวิธีความเท่าเทียมกันใน Java?

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

10. แนวคิดของ OOP ใน Java คืออะไร?

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

11. ทำไมเมธอด main() ถึงคงที่ใน Java เสมอ?

เนื่องจากไม่จำเป็นต้องเรียกใช้เมธอดแบบสแตติกบนอ็อบเจ็กต์ ถ้าmain()เป็นเมธอดที่ไม่คงที่ Java Virtual Machine จะต้องสร้างอ็อบเจ็กต์ของมันก่อน จากนั้นจึงเรียกเมธอดmain()ซึ่งจะทำให้เกิดการจัดสรรหน่วยความจำเพิ่มเติม

12. เหตุใดสตริงจึงไม่เปลี่ยนรูปใน Java?

สตริงใน Java จะไม่เปลี่ยนรูปเนื่องจาก วัตถุ String ถูกแคชไว้ใน พูล ค่าคง ที่ สตริง

13. อาร์เรย์และ ArrayList ใน Java คืออะไร?

อาร์เรย์คือวัตถุที่มีองค์ประกอบประเภทเดียวกันจำนวนคงที่
  1. ArrayListเป็นส่วนหนึ่งของโครงสร้างการรวบรวม

  2. ArrayListใช้อินเทอร์เฟซรายการ

  3. ArrayListเป็นอาร์เรย์ที่ปรับขนาดได้ซึ่งจะเติบโตแบบไดนามิกเมื่อมีการเพิ่มองค์ประกอบและย่อขนาดเมื่อองค์ประกอบถูกลบ

  4. สำหรับการดำเนินการเรียกข้อมูลบ่อยครั้ง Java ArrayListเป็นตัวเลือกที่ดีที่สุด เนื่องจากองค์ประกอบของArrayListถูกจัดเก็บไว้ในตำแหน่งหน่วยความจำที่ต่อเนื่องกัน

  5. ArrayListไม่สามารถมีประเภทข้อมูลดั้งเดิม เช่น int, double, char และ long

  6. ArrayListสามารถมี วัตถุคลาส Stringและ wrapper ( Double , Integer )

  7. ArrayListช่วยให้คุณสามารถทำซ้ำองค์ประกอบได้

  8. ArrayListรักษาลำดับการแทรก

  9. ArrayListมีการใช้กันอย่างแพร่หลายเนื่องจากฟังก์ชันการทำงานและความยืดหยุ่น ได้รับการออกแบบมาเพื่อจัดเก็บคอลเลกชันวัตถุที่ต่างกัน

  10. ArrayListสามารถมีค่าว่างจำนวนเท่าใดก็ได้

14. HashSet และ HashMap ใน Java แตกต่างกันอย่างไร?

ในHashSet :
  1. เราสามารถจัดเก็บวัตถุไว้ในHashSet ตัวอย่างเช่นHashSet: {"Hello", "World" }

  2. ลำดับการแทรกจะไม่ถูกรักษาไว้ มันเป็นรหัสแฮช

  3. มี วิธี add( )

  4. ใช้งาน อินเทอร์เฟซการ ตั้งค่า

  5. ไม่อนุญาตให้มีองค์ประกอบที่ซ้ำกัน

  6. อนุญาตให้มีค่า Null เดียว

ในHashMap :
  1. ในHashMapเราสามารถจัดเก็บคู่ของคีย์และค่าได้ ตัวอย่างเช่น{1 -> “Hello”, 2 -> “World” }

  2. ไม่รองรับลำดับการแทรก มันขึ้นอยู่กับฟังก์ชันการแฮช

  3. มี วิธี ใส่ ( )

  4. ใช้อินเทอร์เฟซแผนที่

  5. อนุญาตให้มีค่าที่ซ้ำกัน ไม่อนุญาตให้มีคีย์ซ้ำกัน

  6. อนุญาตให้ใช้คีย์ Null คีย์เดียวและค่า Null จำนวนเท่าใดก็ได้

16. สิ่งนี้กับ super ใน Java แตกต่างกันอย่างไร?

คำหลักนี้ใน Java:
  1. นี่คือคีย์เวิร์ดที่เป็นตัวแปรอ้างอิงที่อ้างอิงถึงออบเจ็กต์ปัจจุบัน

  2. สามารถใช้เพื่อเรียกเมธอดคลาสปัจจุบันโดยปริยาย

  3. คีย์เวิร์ดthis()ใช้เพื่อเรียก Constructor ของคลาสปัจจุบัน

  4. สิ่งนี้สามารถใช้เพื่อส่งผ่านเป็นอาร์กิวเมนต์เมื่อเรียกใช้เมธอด

คำหลักพิเศษใน Java:
  1. คีย์เวิร์ดsuperคือตัวแปรอ้างอิงที่ใช้เพื่ออ้างถึงอ็อบเจ็กต์ที่อยู่ติดกันของคลาสพาเรนต์

  2. superสามารถใช้เรียกเมธอดของคลาสพาเรนต์โดยตรง นวกรรมิกของคลาสพาเรนต์ และเข้าถึงเมธอดของคลาสพื้นฐานได้โดยตรง

17. คำสั่ง break and Continue ใน Java คืออะไร?

หาก คำสั่ง แบ่งเกิดขึ้นในลูป การวนซ้ำจะสิ้นสุดและการควบคุมจะส่งผ่านไปยังคำสั่งถัดไปในลูปเดียวกัน ตัวอย่าง:
public class Example
{
   public static void main(String[] args)
   {
      for(int a = 1; a <= 10; a++)
      {
         if(a == 3)
         {
            // breaking loop
            break;
         }
         System.out.println(a);
      }
   }
}
ผลลัพธ์:
12
คำสั่งContinueจะย้ายไปยังการวนซ้ำครั้งถัดไป ขึ้นอยู่กับเงื่อนไขบางประการ ตัวอย่าง:
public class Example
{
   public static void main(String[] args)
   {
      for(int a = 1; a <= 10; a++)
      {
         if(a % 2 != 0)
         {
            continue;
         }
         System.out.println(a + " ");
      }
   }
}
ผลลัพธ์:
2 4 6 8 10

18. ตัวดัดแปลงการเข้าถึงใน Java คืออะไร?

ตัวแก้ไขการเข้าถึงจะกำหนดขีดจำกัดหรือขอบเขตของตัวแปร ตัวสร้าง คลาส หรือเมธอด ตัวแก้ไขการเข้าถึงใน Java มีสี่ประเภท:
  1. ตัวแก้ไขการเข้าถึงส่วนตัว
  2. ตัวแก้ไขการเข้าถึงที่ได้รับการป้องกัน
  3. ตัวแก้ไขการแชร์
  4. ตัวแก้ไขการเข้าถึงเริ่มต้น

19. for loop และแต่ละ loop ใน Java แตกต่างกันอย่างไร?

สำหรับวง:
  1. ไม่มีลำดับปฏิบัติการ ใน for loop เราสามารถเปลี่ยนตัวนับได้ตามต้องการ
  2. ปรากฏตั้งแต่แรกเริ่มใน JDK 1
  3. ไม่จำเป็นต้องใช้อินเทอร์เฟซ
  4. สามารถเข้าถึงดัชนีได้ ดังนั้นจึงเป็นไปได้ที่จะแทนที่องค์ประกอบในอาร์เรย์
  5. ตัวนับสามารถเพิ่มและลดได้
สำหรับแต่ละวง:
  1. ดำเนินการตามลำดับ. ตัวนับเพิ่มขึ้นทีละหนึ่ง
  2. ปรากฏตัวครั้งแรกใน JDK 5
  3. หากต้องการวนซ้ำคอนเทนเนอร์โดยใช้ for-each loop คอนเทนเนอร์ต้องใช้อินเทอร์เฟซ Iterable
  4. ไม่สามารถแทนที่องค์ประกอบที่ดัชนีนี้ได้เนื่องจากไม่สามารถเข้าถึงดัชนีอาร์เรย์ได้
  5. ทำซ้ำได้เฉพาะในลำดับที่เพิ่มขึ้นเท่านั้น ไม่สามารถลดลงได้
ตัวอย่างความแตกต่างระหว่าง for Eachและfor loops :
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class DifferenceBetween
{
   public static void main(String[] args)
   {
      List<String> players = new ArrayList<>(Arrays.asList("Virat", "Rohit", "Dhoni"));
      // iterate over List using for loop
      System.out.println("using for loop: ");
      for(int a = 0; a < players.size(); a++)
      {
         System.out.println(players.get(a));
      }
      // iterate over List using enhanced for loop
      System.out.println("using for each loop: ");
      for(String str : players)
      {
         System.out.println(str);
      }
   }
}
ผลลัพธ์สำหรับและสำหรับแต่ละลูป:
วิรัตน์ โรหิต โดนี.
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION