ความแตกต่างระหว่าง C++ และ Java

ความแตกต่างที่สำคัญระหว่าง C++ และ Java

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

  • C++ Vs Java
    C++ Vs Java

เป็นสิ่งที่ C++ ภาษา?

C++ เป็นภาษาโปรแกรมคอมพิวเตอร์ที่มีคุณลักษณะของภาษาโปรแกรม C และ Simula67 (ภาษาเชิงวัตถุตัวแรก) C++ แนะนำแนวคิดของคลาสและวัตถุ

มันสรุปคุณลักษณะภาษาระดับสูงและต่ำ จึงถือเป็นภาษาระดับกลาง ก่อนหน้านี้เรียกว่า "C พร้อมคลาส" เนื่องจากมีคุณสมบัติทั้งหมดของภาษา C

เป็นสิ่งที่ Java ภาษา?

Java เป็นภาษาโปรแกรมที่พัฒนาโดย Sun Microsystems ทีมพัฒนาซอฟต์แวร์ขนาดเล็กพัฒนาภาษานี้ พวกเขาเป็นที่รู้จักในนามทีมสีเขียวซึ่งเป็นผู้ริเริ่ม Java ภาษาในปี พ.ศ. 1991

ประวัติศาสตร์ของ C++

C++ ภาษา C ได้รับการพัฒนาโดย Bjarne Stroustrup ที่ AT & T Bell Laboratories Stroustrup เป็นผู้สนับสนุน C อย่างแข็งขันและเป็นผู้ชื่นชอบ Simula67 เขาต้องการรวมเอาสิ่งที่ดีที่สุดของทั้งสองภาษาเข้าด้วยกัน เขาตั้งเป้าที่จะสร้างภาษาที่รองรับคุณลักษณะการเขียนโปรแกรมเชิงวัตถุและยังคงรักษาพลังของ C ไว้ ผลลัพธ์ที่ได้คือ C++.

ประวัติศาสตร์ของ Java

รางวัล Java ภาษาเดิมเรียกว่า OAK เดิมทีได้รับการพัฒนาขึ้นเพื่อใช้กับอุปกรณ์และกล่องรับสัญญาณโทรทัศน์ Oak ถือเป็นความล้มเหลวครั้งใหญ่ ดังนั้นในปี 1995 บริษัท Sun จึงเปลี่ยนชื่อเป็น Java และปรับเปลี่ยนภาษาเพื่อใช้ประโยชน์จากธุรกิจการพัฒนาเวิลด์ไวด์เว็บที่กำลังเติบโต

Laterใน 2009 Oracle Corporation เข้าซื้อ Sun Microsystems และเป็นเจ้าของสินทรัพย์ซอฟต์แวร์หลักของ Sun สองรายการ: Java และ Solaris.

ความแตกต่างระหว่าง C++ และ Java

พารามิเตอร์ C++ Java
ความสัมพันธ์ ไม่มีความสัมพันธ์ที่เข้มงวดระหว่างชื่อคลาสและชื่อไฟล์ ใน C++ไฟล์ส่วนหัวและไฟล์การใช้งานใช้สำหรับคลาสเฉพาะ มีการบังคับใช้ความสัมพันธ์ที่เข้มงวด เช่น ซอร์สโค้ดสำหรับคลาส PayRoll จะต้องอยู่ใน PayRoll.java
กลไกการป้อนข้อมูล คำสั่ง I/O ใช้ in และ cout เช่น in » x; ศาล« คุณ; กลไกการป้อนข้อมูล I/O ค่อนข้างซับซ้อนเนื่องจากอ่านข้อมูลครั้งละหนึ่งไบต์ (System.in) เอาต์พุตทำได้ง่าย เช่น System.out.println(x)
คอมไพเลอร์และล่าม C++ รองรับคอมไพเลอร์เท่านั้น Java รองรับทั้งคอมไพเลอร์และล่าม
ความเข้ากันได้กับภาษาอื่น ๆ เข้ากันได้กับซอร์สโค้ด C ยกเว้นบางกรณีพิเศษ ไม่มีความเข้ากันได้ย้อนหลังกับภาษาอื่นใดก่อนหน้า ไวยากรณ์ได้รับอิทธิพลจาก C/C++.
การควบคุมการเข้าถึงและการป้องกันวัตถุ มีรุ่นที่ยืดหยุ่นพร้อมการป้องกันอย่างต่อเนื่อง แบบจำลองที่ยุ่งยากส่งเสริมการห่อหุ้มที่อ่อนแอ
แนวคิด เขียนครั้งเดียวคอมไพล์ได้ทุกที่ เขียนครั้งเดียววิ่งได้ทุกที่
รองรับประเภทการเขียนโปรแกรม อนุญาตทั้งการเขียนโปรแกรมตามขั้นตอนและการเขียนโปรแกรมเชิงวัตถุ รองรับโมเดลการเขียนโปรแกรมเชิงวัตถุ
อินเตอร์เฟซ อนุญาตการโทรโดยตรงไปยังไลบรารีระบบดั้งเดิม เพียงโทรผ่าน Java Native Interface และล่าสุด Java การเข้าถึงแบบเนทีฟ
การจัดการหน่วยความจำ โปรแกรมเมอร์สามารถเข้าถึงได้ ระบบควบคุม
ลำดับชั้นราก C++ ไม่มีลำดับชั้นรูทดังกล่าว C++ รองรับทั้งการเขียนโปรแกรมเชิงขั้นตอนและเชิงวัตถุ จึงเรียกว่าภาษาลูกผสม Java เป็นภาษาโปรแกรมเชิงวัตถุล้วนๆ นั่นก็คือ เหตุใดจึงเป็นไปตามลำดับชั้นรูทเดี่ยว
คุณลักษณะที่ดีที่สุด C++ รองรับคุณสมบัติเชิงวัตถุคุณสมบัติการเขียนโปรแกรมตามขั้นตอน Java รองรับการเก็บขยะอัตโนมัติ มันไม่รองรับการทำลายล้างเหมือน C++ ไม่
ไปที่แถลงการณ์ C++ มีคำสั่ง goto แม้ว่าจะไม่เหมาะที่จะใช้คำสั่ง goto Java ไม่มีคำสั่ง goto ได้รับคีย์เวิร์ดแล้ว และ const จะถูกสงวนไว้แม้ว่าจะไม่ได้ใช้ก็ตาม
การสืบทอดหลายรายการ C++ ให้มรดกหลายรายการ คีย์เวิร์ด virtual ใช้เพื่อแก้ไขปัญหาระหว่างการสืบทอดหลายรายการ หากมี Java ไม่ได้ให้มรดกหลายรายการ
ผู้ดำเนินการแก้ไขขอบเขต C++ มีตัวดำเนินการแก้ไขขอบเขต (: :) ซึ่งใช้เพื่อกำหนดวิธีการภายนอกคลาสและเข้าถึงตัวแปรโกลบอลภายในขอบเขตที่มีตัวแปรโลคัลอยู่ด้วยชื่อเดียวกัน ไม่มีผู้ดำเนินการแก้ไขขอบเขต (: :) in Java- คำจำกัดความของวิธีการจะต้องเกิดขึ้นภายในชั้นเรียน ดังนั้นจึงไม่จำเป็นต้องมีการแก้ไขขอบเขต
วิธีการสนับสนุน C++ รองรับทั้งการโอเวอร์โหลดวิธีและการโอเวอร์โหลดตัวดำเนินการ Java รองรับเฉพาะการโอเวอร์โหลดเมธอดเท่านั้น ไม่รองรับการโอเวอร์โหลดตัวดำเนินการ
Portability แหล่งที่มาจะต้องได้รับการคอมไพล์ใหม่สำหรับแพลตฟอร์ม ดังนั้นโค้ดนี้จึงไม่สามารถพกพาได้ คลาส Bytecode สามารถถ่ายโอนไปยัง JVM เฉพาะแพลตฟอร์มได้
พิมพ์ความหมาย สอดคล้องกันระหว่างประเภทดั้งเดิมและประเภทวัตถุ แตกต่างกันสำหรับประเภทดั้งเดิมและประเภทวัตถุ
ห้องสมุด ฟังก์ชั่นระดับต่ำเป็นส่วนใหญ่ ชั้นเรียนขนาดใหญ่สำหรับบริการระดับสูง
การตรวจจับข้อผิดพลาดรันไทม์ ความรับผิดชอบของโปรแกรมเมอร์ ความรับผิดชอบของระบบ
ฟังก์ชั่นและข้อมูล ฟังก์ชันและข้อมูลอาจมีอยู่ภายนอกคลาส ขอบเขตโกลบอลและเนมสเปซจะพร้อมใช้งาน ฟังก์ชั่นและข้อมูลทั้งหมดมีอยู่ในคลาส มีขอบเขตแพ็คเกจให้เลือก
ระบบปฏิบัติการ C++ โปรแกรมขึ้นอยู่กับแพลตฟอร์ม จำเป็นต้องรวบรวมสำหรับแพลตฟอร์มเฉพาะ Java โปรแกรมมีความเป็นอิสระจากแพลตฟอร์ม Java โปรแกรมที่เขียนขึ้นเพื่อ Java เครื่องเสมือน (JVM)- มันจะทำงานโดยไม่ต้องคอมไพล์ใหม่
การตรวจจับข้อผิดพลาดรันไทม์ In C++,เป็นความรับผิดชอบของโปรแกรมเมอร์ในการตรวจสอบข้อผิดพลาด ถือเป็นความรับผิดชอบของระบบในการตรวจสอบข้อผิดพลาดในโปรแกรม
ตัวชี้ C++ ตัวชี้สนับสนุน Java ให้การสนับสนุนพอยน์เตอร์อย่างจำกัดเท่านั้น
โครงสร้าง มันรองรับโครงสร้าง มันไม่รองรับโครงสร้างใดๆ
สหภาพแรงงาน C++ สนับสนุนสหภาพแรงงาน Java ไม่สนับสนุนสหภาพแรงงาน
การจัดการวัตถุ C++ รองรับการจัดการวัตถุด้วยตนเองด้วยความช่วยเหลือของคำสำคัญใหม่และลบ Java มีน้ำหนักมากขึ้นอยู่กับการเก็บขยะอัตโนมัติ มันไม่รองรับการทำลายล้าง