Різниця між C++ та Java
Ключова різниця між C++ та Java
- C++ використовує лише компілятор, тоді як Java використовує як компілятор, так і інтерпретатор.
- C++ підтримує як перевантаження операторів, так і перевантаження методів, тоді як Java підтримує лише перевантаження методів.
- C++ підтримує ручне керування об’єктами за допомогою нових і видалених ключових слів, тоді як Java має вбудований автоматичний збір сміття.
- C++ опорні конструкції тоді як Java не підтримує конструкцій.
- C++ підтримує профспілки Java не підтримує профспілки.

Що таке C++ мова?
C++ це мова комп’ютерного програмування, яка містить функції мови програмування C, а також Simula67 (перша об’єктно-орієнтована мова). C++ ввів поняття класу та об’єкта.
Він інкапсулює функції мови високого та низького рівня. Таким чином, він розглядається як мова середнього рівня. Раніше він називався «C з класами», оскільки мав усі властивості мови C.
Що таке Java мова?
Java це мова програмування, розроблена Sun Microsystems. Невелика команда розробників програмного забезпечення розробила цю мову. Вони були відомі як Зелена команда, яка ініціювала Java мовою в 1991 році.
історія C++
C++ мова була розроблена Б'ярне Страуструпом в AT & T Bell Laboratories. Страуструп був сильним прихильником C і шанувальником Simula67. Він хотів поєднати найкраще з обох мов. Він прагнув створити мову, яка б підтримувала функції об’єктно-орієнтованого програмування та все ще зберігала потужність C. Це призвело до C++.
історія Java
Команда Java мову спочатку називали OAK. Спочатку він був розроблений для роботи з пристроями та приставками. Oak зазнав серйозної невдачі. Так, у 1995 році Sun змінила назву на Java і змінив мову, щоб скористатися перевагами розвитку всесвітньої павутини.
Later, у 2009 р. Oracle Корпорація придбала Sun Microsystems і стала власником двох ключових програмних активів Sun: Java та Solaris.
Різниця між C++ та Java
Параметр | C++ | Java |
---|---|---|
Зв'язок | Жодного суворого зв’язку між іменами класів і іменами файлів. в C++, файли заголовків і файли реалізації використовуються для певного класу. | Дотримується суворий зв’язок, наприклад, вихідний код для класу PayRoll має бути в PayRoll.java. |
Механізм введення | Інструкції введення/виведення використовують in і cout, наприклад, in » x; cout« y; | Механізм введення-виведення є досить складним, оскільки він читає по одному байту (System.in). Вивід простий, наприклад System.out.println(x); |
Укладач та тлумач | C++ підтримує тільки компілятор | Java підтримує як компілятор, так і інтерпретатор |
Сумісність з іншими мовами | Сумісний із вихідним кодом C, за винятком деяких виняткових випадків. | Немає зворотної сумісності з жодною попередньою мовою. На синтаксис впливає C/C++. |
Контроль доступу та охорона об'єктів | Гнучка модель з постійним захистом | Громіздка модель сприяє слабкій інкапсуляції. |
Концепція | Напишіть один раз компілювати будь-де | Напишіть один раз, біжіть скрізь скрізь |
Підтримка типу програмування | Дозволяє як процедурне, так і об'єктно-орієнтоване програмування. | Підтримка об'єктно-орієнтованої моделі програмування. |
інтерфейс | Дозволяє прямі виклики рідних системних бібліотек. | Телефонувати тільки через Java Рідний інтерфейс і нещодавно Java Власний доступ |
Управління пам'яттю | Доступний для програміста | Контролюється системою |
Коренева ієрархія | C++ такої кореневої ієрархії немає. C++ підтримує як процедурне, так і об'єктно-орієнтоване програмування; тому її називають гібридною мовою. | Java це чиста об'єктно-орієнтована мова програмування. це так. Чому він дотримується однокореневої ієрархії. |
Кращі функції | C++ підтримує об'єктно-орієнтовані функції Функції процедурного програмування. | Java підтримка автоматичного збору сміття. Він не підтримує деструктори, як C++ робить. |
Перейти до заяви | C++ має оператор goto. Хоча це не ідеально для використання оператора goto. | Java не має оператора goto. Ключові слова got і const зарезервовані, навіть якщо вони не використовуються. |
Множинне успадкування | C++ забезпечити множинне успадкування. Ключове слово virtual використовується для вирішення проблем під час множинного успадкування, якщо такі є. | Java не забезпечує множинного успадкування. |
Оператор дозволу області | C++ має оператор розділення області видимості (: :) який використовується для визначення методу за межами класу та для доступу до глобальної змінної в межах області, де також існує локальна змінна з тим же ім’ям. |
Немає оператора дозволу області (: :) in Java. Визначення методів мають відбуватися в межах класу, тому немає потреби в дозволі області видимості. |
Підтримуючий метод | C++ підтримує як перевантаження методів, так і перевантаження операторів | Java підтримує лише перевантаження методів. Він не підтримує перевантаження оператора. |
Портативність | Джерело необхідно перекомпілювати для платформи; тому код не переноситься. | Класи байт-коду можна перенести на специфічні для платформи JVM. |
Семантика типу | Узгодженість між примітивними та об’єктними типами. | Відрізняються для примітивних і об'єктних типів. |
Бібліотеки | Переважно низькорівнева функціональність | Масові, класи для обслуговування високого рівня. |
Виявлення помилок виконання | Відповідальність програміста. | Системна відповідальність. |
Функції та дані | Функції та дані можуть існувати поза межами будь-якого класу, доступні глобальні області та простір імен. | Усі функції та дані існують у класах; обсяг пакета доступний. |
платформа | C++ програми залежать від платформи. Їх потрібно скомпілювати для конкретної платформи. | Java програми не залежать від платформи. Java програми написані для Java Віртуальна машина (JVM). Він працюватиме без необхідності перекомпіляції. |
Виявлення помилок виконання | In C++, Програміст відповідає за перевірку помилок. | Перевірка помилок у програмі є відповідальністю системи. |
Покажчик | C++ опорні вказівники. | Java пропонує лише обмежену підтримку вказівників. |
Структура | Він підтримує конструкції. | Він не підтримує жодних конструкцій. |
Союзи | C++ підтримує профспілки. | Java не підтримує профспілок. |
Управління об'єктами | C++ підтримує ручне керування об'єктами за допомогою нових і видалених ключових слів. | Java сильно залежить від автоматичного збирання сміття. Він не підтримує деструктори. |