- ძირითადი განსხვავებები C++-სა და Java-ს შორის
- ხშირად დასმული კითხვები C++-ში და Java-ში
- დასკვნა
- ცხრილის ფორმატი: C++ vs Java
ეს სიღრმისეული გაკვეთილი განმარტავს ზოგიერთ ძირითად განსხვავებას ორ ობიექტზე ორიენტირებულ პროგრამირების ენას შორის C++ და Java-ს შორის:
C++ და Java ორივე ობიექტზე ორიენტირებული პროგრამირების ენებია. მიუხედავად ამისა, ორივე ენა განსხვავდება ერთმანეთისგან მრავალი თვალსაზრისით.
C++ მომდინარეობს C-დან და აქვს როგორც პროცედურული, ასევე ობიექტზე ორიენტირებული პროგრამირების ენების მახასიათებლები. C++ შექმნილია აპლიკაციისა და სისტემის განვითარებისთვის.
Java აგებულია ვირტუალურ მანქანაზე, რომელიც არის ძალიან უსაფრთხო და ძალიან პორტატული ბუნებით. იგი დაჯგუფებულია ყოვლისმომცველ ბიბლიოთეკასთან, რათა უზრუნველყოს არსებული პლატფორმის აბსტრაქციის მხარდაჭერა.
Java ძირითადად შექმნილია აპლიკაციის პროგრამირებისთვის და აქვს თარჯიმანის ფუნქცია ბეჭდვის სისტემებისთვის, რომელიც მოგვიანებით გადაკეთდა ქსელურ გამოთვლებად.
შემოთავაზებული წაკითხვა => C++ სასწავლო სახელმძღვანელო ყველასთვის
ძირითადი განსხვავებები C++-სა და Java-ს შორის
ახლა განვიხილავთ რამდენიმე ძირითად განსხვავებას C++ და Java-ს შორის, როგორც ვაგრძელებთ ამ
სასწავლო.
#1) პლატფორმა Independence
C++ | Java |
---|---|
C++ არის პლატფორმაზე დამოკიდებული ენა. C++-ში დაწერილი წყაროს კოდი უნდა იყოს შედგენილი ყველა პლატფორმაზე. | Java არის პლატფორმისგან დამოუკიდებელი. როდესაც შედგენილია ბაიტის კოდში, ის შეიძლება შესრულდეს ნებისმიერ პლატფორმაზე. |
#2) შემდგენელი დაკოლექცია. 10 პორტაბელურობა C++ კოდი არ არის პორტატული. Java არის პორტატული. 11 ტიპის სემანტიკა თანმიმდევრულია პრიმიტიულ და ობიექტის ტიპებს შორის. არა თანმიმდევრული. 12 შეყვანის მექანიზმი Cin და Cout გამოიყენება I/O-სთვის. System.in და System.out.println 13 წვდომის კონტროლი და ობიექტების დაცვა ობიექტის მოქნილი მოდელი და თანმიმდევრული დაცვა. ობიექტის მოდელი რთულია და ინკაფსულაცია სუსტია. 14 მეხსიერების მართვა სახელმძღვანელო სისტემით კონტროლირებადი. 15 მრავალჯერადი მემკვიდრეობა აწმყო არ არის 16 გადასვლის განცხადება მხარდაჭერა Goto განცხადებას. არ მხარს უჭერს goto განცხადებას. 17 Scope Resolution Operator Present Absent . 19 გადატვირთვა მხარდაჭერა ოპერატორისა და მეთოდის გადატვირთვას. მხარდაჭერილი არ არის ოპერატორის გადატვირთვა. 20 ვირტუალური საკვანძო სიტყვა მხარდაჭერილია ვირტუალური საკვანძო სიტყვა, რომელიც ხელს უწყობს გადაფარვას. ვირტუალური საკვანძო სიტყვა არ არის, ყველა არასტატიკური მეთოდი ნაგულისხმევად ვირტუალურია და შეიძლება იყოს გაუქმებულია. 21 გაშვების შეცდომაDetection დატოვებულია პროგრამისტზე. სისტემის პასუხისმგებლობა 22 ენის მხარდაჭერა გამოიყენება ძირითადად სისტემისთვის პროგრამირება. ძირითადად გამოიყენება აპლიკაციის პროგრამირებისთვის. 23 მონაცემები და ფუნქციები მონაცემები და ფუნქცია არსებობს კლასის გარეთ. მხარდაჭერილია გლობალური და სახელთა სივრცის ფარგლები. მონაცემები და ფუნქციები წარმოდგენილია მხოლოდ კლასის შიგნით, ხელმისაწვდომია პაკეტის ფარგლები. 24 მაჩვენებლები მხარდაჭერილია მაჩვენებლები. მხოლოდ შეზღუდული მხარდაჭერა პოინტერებისთვის. 25 სტრუქტურები & კავშირი მხარდაჭერილი არ არის მხარდაჭერილი 26 ობიექტების მართვა ობიექტების ხელით მართვა ახლით და წაშლით . ობიექტების ავტომატური მართვა ნაგვის შეგროვების გამოყენებით. 27 პარამეტრის გაცემა მხარდაჭერაა ზარი მნიშვნელობით და გამოძახება მითითებით. მხარდაჭერილია მხოლოდ ზარის მიხედვით. 28 Thread მხარდაჭერა Thread მხარდაჭერა არ არის ძალიან ძლიერი, ის ეყრდნობა მესამე მხარე. ძალიან ძლიერი ნაკადის მხარდაჭერა. 29 ტექნიკა უფრო ახლოს აპარატურასთან. არ არის ძალიან ინტერაქტიული აპარატურასთან. 30 დოკუმენტაციის კომენტარი არ აქვს დოკუმენტაციის კომენტარის მხარდაჭერა. მხარდაჭერილია დოკუმენტაციის კომენტარი( /**…*/), რომელიც ქმნის დოკუმენტაციას Java-ს წყაროს კოდისთვის.
აქამდე ჩვენ ვნახეთ ძირითადი განსხვავებებიC++-სა და Java-ს შორის დეტალურად. მომავალი განყოფილება უპასუხებს ზოგიერთ ხშირად დასმულ კითხვას, რომელიც ეხება C++-სა და Java-ს პროგრამირების სამყაროში.
ხშირად დასმული კითხვები C++-ში და Java-ში
Q #1) რომელია უკეთესი C++ თუ Java?
პასუხი: დანამდვილებით ვერ ვიტყვით რომელია უკეთესი. ორივე C++-ს და Java-ს აქვს თავისი ღირსებები და ნაკლოვანებები. მიუხედავად იმისა, რომ C++ ძირითადად კარგია სისტემური პროგრამირებისთვის, ამას Java-ით ვერ გავაკეთებთ. მაგრამ ჯავა აჯობებს ისეთ აპლიკაციებში, როგორიცაა ვებ, დესკტოპი და ა.შ.
სინამდვილეში, C++-ს შეუძლია გააკეთოს ყველაფერი, სისტემური პროგრამირებიდან დაწყებული საწარმოთა და თამაშებით დამთავრებული. ჯავას შეუძლია მეტის გაკეთება ვებსა თუ საწარმოს. არის აპლიკაციები, როგორიცაა დაბალი დონის პროგრამირების აპლიკაციები ან თამაშები და ა.შ., რომლებიც არ შეიძლება Java-სთვის განსავითარებლად.
მაშასადამე, ეს მთლიანად დამოკიდებულია იმაზე, თუ რომელ აპლიკაციას ვამუშავებთ. საუკეთესო გზაა წინასწარ შეაფასოთ ორივე ენის დადებითი და უარყოფითი მხარეები და შეამოწმოთ მათი უნიკალურობა იმ აპლიკაციისთვის, რომელსაც ჩვენ ვამუშავებთ და შემდეგ დავასკვნათ, რომელია საუკეთესო.
Q #2) არის C++ მეტი ძლიერი ვიდრე ჯავა?
პასუხი: ეს ისევ რთული კითხვაა! როდესაც საქმე ეხება იმაზე, თუ რამდენად ადვილია სინტაქსი ან ენის სწავლა, ჯავა ქულებს აფასებს. როდესაც საქმე ეხება სისტემურ პროგრამირებას და/ან სხვა დაბალი დონის აპლიკაციებს, C++ უფრო ძლიერია.
ზოგიერთი შეიძლება ამტკიცებდეს, რომ ავტომატური GC კოლექციების არსებობა, მითითებების გარეშე, მრავალჯერადი.მემკვიდრეობა ჯავას უფრო ძლიერს ხდის.
მაგრამ რაც შეეხება სიჩქარეს, C++ ძლიერია. ასევე ისეთ პროგრამებში, როგორიცაა თამაშები, სადაც ჩვენ გვჭირდება მდგომარეობის შენახვა, ნაგვის ავტომატურმა შეგროვებამ შეიძლება გააფუჭოს ამოცანები. ამრიგად, C++ აქ აშკარად ძლიერია.
Q #3) შეგვიძლია ვისწავლოთ Java C ან C++-ის ცოდნის გარეშე?
პასუხი: დიახ, აუცილებლად!
როდესაც ჩვენ გავიგებთ პროგრამირების საფუძვლებს და ობიექტზე ორიენტირებული პროგრამირების კონცეფციებს, შეგვიძლია დავიწყოთ Java-ს სწავლა.
Q #4) არის თუ არა C++ Java-ს მსგავსი?
პასუხი: გარკვეულწილად, დიახ, მაგრამ გარკვეულწილად, არა.
როგორც მაგალითად, ორივე C++ და Java არის ობიექტზე ორიენტირებული პროგრამირების ენები. მათი გამოყენება შესაძლებელია აპლიკაციის განვითარებისთვის. მათ აქვთ მსგავსი სინტაქსი.
მაგრამ სხვა შემთხვევებში, როგორიცაა მეხსიერების მართვა, მემკვიდრეობა, პოლიმორფიზმი და ა.შ., C++ და Java სრულიად განსხვავებულია. ანალოგიურად, როდესაც საქმე ეხება მონაცემთა პრიმიტიულ ტიპებს, ობიექტების დამუშავებას, პოინტერებს და ა.შ. ორივე ენა განსხვავებულია.
Q #5) არის Java დაწერილი C++-ში?
პასუხი: Java იმ გაგებით, რომ Sun-ის Java ვირტუალური მანქანა (JVM) და IBM დაწერილია C++-ში. ჯავის ბიბლიოთეკები ჯავაშია. ზოგიერთი სხვა JVM დაწერილია C-ში.
დასკვნა
C++ და Java ორივე ობიექტზე ორიენტირებული პროგრამირების ენებია. გარდა ამისა, C++ არის პროცედურული ენაც. არსებობს რამდენიმე მახასიათებელი, როგორიცაა მემკვიდრეობა, პოლიმორფიზმი, მაჩვენებლები, მეხსიერების მართვა და ა.შ., რომელშიც ორივეენები სრულიად განსხვავდებიან ერთმანეთისგან.
არსებობს C++-ის ზოგიერთი მახასიათებელი, როგორიცაა აპარატურასთან სიახლოვე, ობიექტების უკეთესი მართვა, სიჩქარე, შესრულება და ა.შ. რაც მას Java-ზე უფრო ძლიერს ხდის და ამით დეველოპერებს აიძულებს გამოიყენონ C++. დაბალი დონის პროგრამირებისთვის, მაღალსიჩქარიანი სათამაშო აპლიკაციებისთვის, სისტემური პროგრამირებისთვის და ა.შ.
მსგავსი გზით Java-ს მარტივი სინტაქსი, ნაგვის ავტომატური შეგროვება, პოინტერების, შაბლონების ნაკლებობა და ა.შ. ვებზე დაფუძნებული აპლიკაციებისთვის.
InterpreterC++ | Java |
---|---|
C++ არის კომპილირებული ენა. წყარო პროგრამა C++-ში დაწერილი არის კომპილირებული ობიექტის კოდში, რომელიც შემდეგ შეიძლება შესრულდეს გამოსავლის მისაღებად.
| Java არის კომპილირებული და ინტერპრეტირებული. ენა. ჯავას წყაროს კოდის კომპილირებული გამომავალი არის ბაიტი კოდი, რომელიც არის პლატფორმისგან დამოუკიდებელი. |
#3) პორტაბელურობა
C++ | Java |
---|---|
C++ კოდი არ არის პორტატული. ის უნდა იყოს კომპილირებული თითოეული პლატფორმა. | მაგრამ Java თარგმნის კოდს ბაიტის კოდში. ეს ბაიტის კოდი არის პორტატული და შეიძლება შესრულდეს ნებისმიერ პლატფორმაზე. |
#4) მეხსიერების მართვა
C++ | Java |
---|---|
C++-ში მეხსიერების მართვა არის ხელით. ჩვენ გვჭირდება მეხსიერების გამოყოფა/განაწილება ხელით ახალი/წაშლა ოპერატორების გამოყენებით. | ჯავაში მეხსიერების მართვა სისტემური კონტროლით ხდება. |
#5) მრავალჯერადი მემკვიდრეობა
C++ | Java |
---|---|
C++ მხარს უჭერს სხვადასხვა ტიპის მემკვიდრეობას, მათ შორის ერთჯერადი და მრავალჯერადი მემკვიდრეობის. მიუხედავად იმისა, რომ არსებობს პრობლემები, რომლებიც წარმოიქმნება მრავალი მემკვიდრეობით, C++ იყენებს ვირტუალურ საკვანძო სიტყვას პრობლემების გადასაჭრელად. | Java, მხარს უჭერს მხოლოდ ერთ მემკვიდრეობას. მრავალჯერადი მემკვიდრეობის ეფექტის მიღწევა შესაძლებელია Java-ის ინტერფეისების გამოყენებით. |
#6)გადატვირთვა
C++ | Java |
---|---|
C++-ში მეთოდები და ოპერატორები შეიძლება გადატვირთული იყოს. ეს არის სტატიკური პოლიმორფიზმი. | ჯავაში დასაშვებია მხოლოდ მეთოდის გადატვირთვა. ეს არ იძლევა ოპერატორის გადატვირთვას. |
#7) ვირტუალური საკვანძო სიტყვა
C++ | Java |
---|---|
როგორც დინამიური პოლიმორფიზმის ნაწილი , C++-ში ვირტუალური საკვანძო სიტყვა გამოიყენება ფუნქციით იმ ფუნქციის აღსანიშნავად, რომლის გადაფარვა შესაძლებელია წარმოებულ კლასში. ამ გზით ჩვენ შეგვიძლია მივაღწიოთ პოლიმორფიზმს. | ჯავაში ვირტუალური საკვანძო სიტყვა არ არის. თუმცა, Java-ში, ყველა არასტატიკური მეთოდი ნაგულისხმევად შეიძლება გადაილახოს. ან მარტივი სიტყვებით რომ ვთქვათ, Java-ში ყველა არასტატიკური მეთოდი ნაგულისხმევად ვირტუალურია. |
#8) პოინტერები
C++ | Java |
---|---|
C++ ეს ყველაფერი პოინტერებზეა. როგორც ადრე გაკვეთილებში ვნახეთ, C++-ს აქვს პოინტერების ძლიერი მხარდაჭერა და ჩვენ შეგვიძლია ბევრი სასარგებლო პროგრამირების გაკეთება პოინტერების გამოყენებით. | Java-ს აქვს მაჩვენებლების შეზღუდული მხარდაჭერა. თავდაპირველად, ჯავა იყო მთლად პოინტერების გარეშე, მაგრამ მოგვიანებით ვერსიებმა დაიწყეს პოინტერების შეზღუდული მხარდაჭერა. ჩვენ ვერ გამოვიყენებთ პოინტერებს Java-ში ისე თავისუფლად, როგორც შეგვიძლია გამოვიყენოთ C++-ში. |
#9) დოკუმენტაციის კომენტარი
C++ | Java |
---|---|
C++-ს არ აქვს დოკუმენტაციის კომენტარების მხარდაჭერა. | ჯავას აქვს ჩაშენებული მხარდაჭერა დოკუმენტაციისთვის.კომენტარები (/**…*/). ამ გზით Java-ს წყაროს ფაილებს შეიძლება ჰქონდეთ საკუთარი დოკუმენტაცია. |
#10) თემის მხარდაჭერა
C++ | Java |
---|---|
C++-ს არ აქვს ჩაშენებული thread მხარდაჭერა. ის ძირითადად ეყრდნობა მესამე მხარის threading ბიბლიოთეკებს. | Java არის ჩაშენებული thread მხარდაჭერა კლასის "thread". ჩვენ შეგვიძლია მემკვიდრეობით მივიღოთ thread კლასი და შემდეგ გავაუქმოთ გაშვების მეთოდი. |
კიდევ რამდენიმე განსხვავება…
#11) Root Hierarchy
C++ არის პროცედურული და ასევე ობიექტზე ორიენტირებული პროგრამირების ენა. აქედან გამომდინარე, ის არ მიჰყვება რაიმე კონკრეტულ root იერარქიას.
Java არის სუფთა ობიექტზე ორიენტირებული პროგრამირების ენა და აქვს ერთი ფესვის იერარქია.
#12 ) წყაროს კოდი & კლასების ურთიერთობა
C++-ში, როგორც წყაროს კოდს, ასევე ფაილის სახელს არანაირი კავშირი არ აქვთ. ეს ნიშნავს, რომ C++ პროგრამაში შეიძლება გვქონდეს ბევრი კლასი და ფაილის სახელი შეიძლება იყოს ნებისმიერი. ის არ უნდა იყოს იგივე, რაც კლასების სახელები.
ჯავაში მჭიდრო კავშირია წყაროს კოდის კლასსა და ფაილის სახელს შორის. კლასი, რომელიც შეიცავს წყაროს კოდს და ფაილის სახელს უნდა იყოს იგივე.
მაგალითად , თუ Java-ში გვაქვს კლასი სახელად ხელფასი, მაშინ ფაილის სახელი, რომელიც შეიცავს ამ კლასის კოდს, უნდა იყოს " salary.java".
#13 ) კონცეფცია
C++ პროგრამების კონცეფცია იწერება ერთხელ და კომპილირდება სადმე, რადგან C++ არ არისპლატფორმისგან დამოუკიდებელი.
პირიქით, Java პროგრამებისთვის ის იწერება ერთხელ, გაშვებულია ყველგან და ყველგან, რადგან ჯავის შემდგენელის მიერ გენერირებული ბაიტის კოდი არის პლატფორმისგან დამოუკიდებელი და შეუძლია ნებისმიერ მანქანაზე მუშაობას.
#14 ) თავსებადობა სხვა ენებთან
C++ აგებულია C-ზე. C++ ენა თავსებადია სხვა მაღალი დონის ენების უმეტესობასთან.
Java არ არის თავსებადი სხვა ენებთან. რადგან ჯავა იყო შთაგონებული C და C++-ით, მისი სინტაქსი ამ ენების მსგავსია.
#15 ) პროგრამირების ენის ტიპი
C++ არის როგორც პროცედურული, ასევე ობიექტზე ორიენტირებული პროგრამირების ენა. აქედან გამომდინარე, C++-ს აქვს პროცედურული ენებისთვის დამახასიათებელი ფუნქციები, ასევე ობიექტზე ორიენტირებული პროგრამირების ენის მახასიათებლები.
Java არის მთლიანად ობიექტზე ორიენტირებული პროგრამირების ენა.
#16 ) ბიბლიოთეკის ინტერფეისი
C++ საშუალებას იძლევა პირდაპირი ზარები სისტემის მშობლიურ ბიბლიოთეკებზე. ამიტომ ის უფრო შეეფერება სისტემის დონის პროგრამირებას.
Java-ს არ აქვს პირდაპირი ზარის მხარდაჭერა მშობლიურ ბიბლიოთეკებზე. ბიბლიოთეკებს შეგვიძლია გამოვიძახოთ Java Native ინტერფეისით ან Java Native Access.
#17 ) განმასხვავებელი მახასიათებლები
ფუნქციები, რომლებიც დაკავშირებულია პროცედურული ენებთან და ობიექტზე ორიენტირებული ენა C++-ის განმასხვავებელი ნიშნებია.
ავტომატური ნაგვის შეგროვება ჯავის განმასხვავებელი თვისებაა. იმავდროულად, Java არ უჭერს მხარს დესტრუქტორებს.
#18 ) ტიპისემანტიკა
რაც შეეხება C++-ის ტიპის სემანტიკას, პრიმიტიული და ობიექტის ტიპები თანმიმდევრულია.
მაგრამ Java-სთვის არ არსებობს თანმიმდევრულობა პრიმიტიულ და ობიექტურ ტიპებს შორის.
#19 ) შეყვანის მექანიზმი
C++ იყენებს cin და cout ოპერატორებთან ერთად, შესაბამისად, ">>" და "" წაიკითხეთ და ჩაწერეთ მონაცემები.
java-ში შესვლ-გამოსვლისთვის გამოიყენება System კლასი. შეყვანის წასაკითხად გამოიყენება System.in რომელიც კითხულობს ერთ ბაიტს ერთდროულად. კონსტრუქცია System.out გამოიყენება გამოსავლის ჩასაწერად.
#20) წვდომის კონტროლი და ობიექტების დაცვა
C++-ს აქვს მოქნილი მოდელი ობიექტები წვდომის სპეციფიკატორებით, რომლებიც აკონტროლებენ წვდომას და ძლიერი ინკაფსულაცია, რომელიც უზრუნველყოფს დაცვას.
Java-ს აქვს შედარებით რთული ობიექტის მოდელი სუსტი ენკაფსულაციით.
#21) გადადით განცხადება
C++ მხარს უჭერს goto განცხადებას, მაგრამ მისი გამოყენება უნდა იყოს მინიმუმამდე დაყვანილი, რათა თავიდან იქნას აცილებული პროგრამაში გამოყენების შედეგები.
Java არ უზრუნველყოფს goto განცხადებას მხარდაჭერას.
#22 ) Scope Resolution Operator
Scope Resolution ოპერატორი გამოიყენება გლობალურ ცვლადებზე წვდომისთვის და კლასის გარეთ მეთოდების განსაზღვრისთვის.
C++ მხარს უჭერს მასშტაბის გარჩევადობის ოპერატორს, რადგან ის იყენებს მას გლობალურ ცვლადებზე წვდომისთვის. ის ასევე გვაძლევს საშუალებას განვსაზღვროთ ფუნქციები კლასის გარეთ და მივიღოთ მათზე წვდომა სფეროს გარჩევადობის ოპერატორის გამოყენებით.
განსხვავებით,Java არ უჭერს მხარს მასშტაბის გარჩევადობის ოპერატორს. Java ასევე არ იძლევა ფუნქციების გარე განსაზღვრის საშუალებას. პროგრამასთან დაკავშირებული ყველაფერი, მთავარი ფუნქციის ჩათვლით, უნდა იყოს კლასში.
#23 ) Try/Catch Block
C++-ში, ჩვენ შეგვიძლია გამოვრიცხოთ try/catch ბლოკი მაშინაც კი, თუ ვიცით, რომ კოდმა შესაძლოა გამონაკლისი გამოიწვიოს.
თუმცა ჯავაში, თუ დარწმუნებული ვართ, რომ კოდი გამონაკლისს გამოიტანს, მაშინ ეს კოდი უნდა ჩავრთოთ ქვემოთ ცდა/დაჭერის ბლოკი. გამონაკლისები განსხვავებულია Java-ში, რადგან მას არ უჭერს მხარს დესტრუქტორებს.
#24 ) გაშვების შეცდომის გამოვლენა
C++-ში გაშვების დროის შეცდომის გამოვლენა არის პროგრამისტის პასუხისმგებლობა.
ჯავაში, მუშაობის დროის შეცდომის გამოვლენა კონტროლდება სისტემის მიერ.
#25 ) ენის მხარდაჭერა
ტექნიკასთან სიახლოვისა და ბიბლიოთეკების გამო, რომლებიც იძლევა სისტემის რესურსებზე წვდომის საშუალებას, C++ უფრო შესაფერისია სისტემის პროგრამირებისთვის, თუმცა ჩვენ გვაქვს აპლიკაციების ფართო სპექტრი, მათ შორის მონაცემთა ბაზა, საწარმო, თამაშები და ა.შ. განვითარებული C++-ში.
#26 ) მონაცემები და ფუნქციები
C++-ს აქვს როგორც გლობალური, ასევე სახელთა სივრცის ფარგლები. ამრიგად, მონაცემები და ფუნქციები შეიძლება არსებობდეს კლასის გარეთაც.
ჯავაში ყველა მონაცემი და ფუნქცია უნდა იყოს კლასში. არ არსებობს გლობალური ფარგლები, თუმცა შეიძლება იყოს პაკეტის ფარგლები.
#27 ) სტრუქტურები & გაერთიანებები
სტრუქტურები და გაერთიანებები მონაცემებიასტრუქტურები, რომლებსაც შეუძლიათ ჰქონდეთ წევრები სხვადასხვა ტიპის მონაცემთა ტიპებით. C++ მხარს უჭერს სტრუქტურებსაც და გაერთიანებებსაც.
მაგრამ Java არ უჭერს მხარს სტრუქტურებს ან გაერთიანებებს.
#28 ) ობიექტების მართვა
C++-ში ობიექტები იმართება ხელით. ობიექტების შექმნა და განადგურება ხორციელდება ხელით ახალი და წაშლის ოპერატორების გამოყენებით. ჩვენ ასევე ვიყენებთ კონსტრუქტორებს და დესტრუქტორებს კლასის ობიექტებისთვის.
Java არ უჭერს მხარს დესტრუქტორებს, თუმცა მხარს უჭერს კონსტრუქტორებს. ჯავა ასევე დიდად არის დამოკიდებული ნაგვის ავტომატურ შეგროვებაზე ობიექტების შეგროვებისა და განადგურებისთვის.
#29 ) პარამეტრის გავლა
მნიშვნელობის გავლა და pass by reference ეს არის ორი მნიშვნელოვანი პარამეტრის გადაცემის ტექნიკა, რომელიც გამოიყენება პროგრამირებაში. ორივე Java და C++ მხარს უჭერს ორივე ტექნიკას.
#3 0) ტექნიკა
C++ ახლოს არის აპარატურასთან და აქვს მრავალი ბიბლიოთეკა, რომელსაც შეუძლია მანიპულირება ტექნიკის რესურსები. აპარატურასთან სიახლოვის გამო, C++ ხშირად გამოიყენება სისტემური პროგრამირებისთვის, სათამაშო აპლიკაციებისთვის, ოპერაციული სისტემისთვის და შემდგენელებისთვის.
Java ძირითადად აპლიკაციის განვითარების ენაა და არ არის ახლოს აპარატურასთან.
ცხრილის ფორმატი: C++ vs Java
ქვემოთ მოცემულია C++ და ჯავის შედარების ცხრილი, რომელიც უკვე განვიხილეთ.
No | შედარებაპარამეტრი | C++ | Java |
---|---|---|---|
1 | პლატფორმის დამოუკიდებლობა | C++ დამოკიდებულია პლატფორმაზე. | Java არის პლატფორმისგან დამოუკიდებელი. |
2 | Compiler & Interpreter | C++ არის კომპილირებული ენა. | Java არის კომპილირებული და ინტერპრეტირებული ენა. |
3 | წყარო. კოდი & კლასების ურთიერთობა | არ არის მკაცრი კავშირი კლასების სახელებთან და ფაილებთან. | ახორციელებს მკაცრ ურთიერთობას კლასის სახელსა და ფაილის სახელს შორის. |
4 | კონცეფცია | დაწერე ერთხელ კომპილაცია ყველგან. | დაწერე ერთხელ გაუშვით ყველგან და amp; ყველგან. |
5 | სხვა ენებთან თავსებადობა | თავსებადია C–სთან გარდა ობიექტზე ორიენტირებული ფუნქციებისა. | სინტაქსი არის აღებულია C/C++-დან. არ არის ჩამორჩენილი თავსებადობა სხვა ენასთან. |
6 | პროგრამის ენის ტიპი | პროცედურული და ობიექტზე ორიენტირებული. | ობიექტზე ორიენტირებული. |
7 | ბიბლიოთეკის ინტერფეისი | ნებას აძლევს პირდაპირ ზარებს სისტემის მშობლიურ ბიბლიოთეკებში. | ზარები მხოლოდ Java Native ინტერფეისით და Java Native-ით წვდომა. |
8 | Root იერარქია | არ არის root იერარქია. | მიყვება ერთი root იერარქიას. |
9 | განმასხვავებელი ფუნქციები | მხარდაჭერილია როგორც პროცედურული, ასევე ობიექტზე ორიენტირებული ფუნქციები. | არა დესტრუქტორები. ავტომატური ნაგავი |