В чем разница между Java и C++? Оба объектно-ориентированы?
@Perpetualcoded: Достаточно не голосовать.
Он не спросил, что «лучше», он спросил, в чем разница. Совершенно актуальный вопрос.
Почему мы так беспокоимся о репутации? Похоже, этот парень новичок и может не понимать вики-процесс сообщества. Это правильный вопрос, посмотрите на полученный ответ. Намного больше, чем одни из самых вызывающих вопросов, которые задают.
Я считаю, что часто вопросы, идеально подходящие для программистов, помечаются как вопросы, не относящиеся к программистам. Насколько проще было бы просто игнорировать их и оставить вопрос в силе. До сих пор расстроен, что мой вопрос о том, как сохранить карьеру программиста, был отклонен.
Вот краткое изложение, которое может помочь: marketimpacts.com/blog/2011/12/23/…
Вы также можете найти это полезным. stackoverflow.com/questions/4405074/…




Оба являются объектно-ориентированными, но это очень разные языки. Вероятно, это не лучший форум, чтобы спросить о различиях ... Я бы посоветовал вам поискать как в Википедии, так и просмотреть описания там. Вы очень быстро сможете сами увидеть различия.
Это слишком общий вопрос, чтобы на него можно было ответить здесь.
Java - это явно объектно-ориентированный язык, в котором убраны самые сложные в использовании биты.
C++ - это многопарадигмальный язык с отключенной безопасностью. В нем можно заниматься как объектно-ориентированным программированием, так и процедурным и общим.
Если бы у вас возник более конкретный вопрос, мы могли бы вам помочь. Почему ты спросил? Если вам нужны рекомендации для конкретной платформы, проекта или чего-то еще, мы могли бы быть более отзывчивыми.
«Любой язык позволит вам выстрелить себе в ногу. C++ предоставит вам ружье, зарядит пули, даст вам выпить, чтобы укрепить вашу руку, установит телескопические прицелы и нарисует большую цель на вашей ноге»
Конечно, будет, но он также даст вам пистолет с достаточно большим взрывом, чтобы уронить динозавра. Все в перспективе.
@PaulTomblin "Ява даст вам пистолет, который случайным образом подаст на вас в суд ..."
Я люблю C++, но если вам абсолютно не нужно использовать C++, используйте что-нибудь еще. Когда вам нужно использовать C++, вы поймете разницу, Grasshopper.
(Подсказка: не пишите драйверы устройств, видеодекодеры, библиотеки шифрования, движки трехмерной графики или движки времени выполнения языка на java).
Да, оба являются объектно-ориентированными языками программирования.
C++ - это эволюция C., который был языком системного программирования. C++ В язык добавлено много функций, чтобы сделать его объектно-ориентированным. По этой причине он стал основным языком программирования.
Java - это эволюция C++ с разными целями (например, кросс-платформенная). Он удаляет некоторые функции, которые затрудняют изучение C++. Упростите других и удалите других.
Основное отличие состоит в том, что программы на C++ компилируются непосредственно в машинный код (понимаемый ЦП), в то время как программы Java компилируются для запуска на «виртуальной машине» - JVM в большинстве случаев. По этим причинам java-программы интерпретировались другой программой и вначале были очень медленными программами. В настоящее время виртуальная машина может оптимизировать этот код и заставить его работать очень-очень быстро.
jit (как раз вовремя) часто преобразует "скомпилированные" java-биты в машинный код ... так что это сглаживает многие различия в скорости ... Я (будучи разработчиком C++ в глубине души) возмущен заметной эволюцией C++. Я также не уверен, что понимаю фрагмент предложения «трудно выучить». Освоить это не сложнее, чем Java. И то и другое занимает около 10 лет .. (или я предполагаю, что это делает Java, я скажу вам, когда доберусь туда)
Одно из наиболее важных отличий еще не упомянуто - одно скомпилировано в машинный код, другое - в байт-код, который интерпретируется виртуальной машиной.
если байт-код не скомпилирован в машинный код JIT-компилятором
См. Эту ссылку.
Это хорошо, но некоторые места действительно старые
Грубое, но точное упрощение: Java проще. C++ быстрее.
С состоянием компиляторов на данный момент C++ быстрее, чем java, только в том случае, если он оптимизирован. Но это не вина языков.
Просто небольшое дополнение к тому, что написал Дэвид Торнли. C++ - это процедурный язык, поддерживающий объекты и объектно-ориентированный дизайн. Java - это чистый объектно-ориентированный подход. Java делает меньше, но больше.
Отсюда и многопарадигмальный язык. Я лично считаю, что «процедурные» языковые возможности гораздо менее важны, чем возможности метапрограммирования шаблонов C++. Мало того, что C++ может отбросить динозавра, вы можете сделать это бесконечным количеством способов.
Каждый язык разработан для разных целей, поэтому ИМО нечестно сравнивать два с одной точки зрения и игнорировать другую.
Вообще говоря, C++ - это открытый стандарт, разработанный для реализации высокопроизводительных систем, где скорость и производительность критичны. Существует множество впечатляющих проектов, разработанных с использованием этого языка, таких как Phoenix Lander, Adobe Acrobat Reader и другие. C++ дает разработчику возможность программировать с использованием абстракции очень высокого уровня - например, с использованием дженериков, и, при необходимости, опускаться до «голого металла» машины - например, для обработки прерывания.
Java была разработана с учетом других целей, когда Sun планировала Oak (позже названный Java), она была сосредоточена на веб-приложениях, поэтому поддерживала язык с помощью кучи тяжелых библиотек простых в использовании интерфейсов с учетом этого. и переносимость (компилировать один раз, запускать где угодно) с использованием JVM, которая не позволяет программисту кодировать для конкретной машины, но вместо этого кодирует в песочнице, которая, в свою очередь, запускает код на хост-машине, что, очевидно, отрицательно сказывается на производительности / скорости.
Сравнение этих двух языков является популярной причиной споров между программистами, и это связано с их разными рабочими требованиями и характером, ИМО, каждый язык допускал ошибки, чтобы созреть, например, экспортированные шаблоны C++ и отсутствие процедурного программирования в Java. (Большая ошибка). Кроме того, у каждого из них есть свои плюсы и минусы в отношении различных аспектов, поэтому тот, который уравновешивает проблему производительности / производительности, ЯВЛЯЕТСЯ правильным языком.
Для получения дополнительной информации Подробная статья Википедии о сравнении Java и C++
Было бы интересно посмотреть, какие языки используются (и используются) для создания основных систем (например, Google) из здесь.
Раньше Java тоже была открытым стандартом какое-то время ... (или, по крайней мере, немного более открытым, чем теперь под властью оракула)
Программист на C++ скажет вам, что Java - это мусор. Программист на Java скажет вам, что C++ - это чушь. Поэтому я прихожу к выводу, что это действительно одно и то же.
Кроме того, всем известно, что Erlang лучше обоих. Или это Схема? Или Clojure? Или Руби? Я не могу вспомнить.
Программист на Erlang скажет вам, что Scheme - это мусор, а программист на Scheme скажет вам, что Erlang - это мусор. Поэтому я прихожу к выводу, что это действительно одно и то же.
а когда вмешивается C#, оба объединяют усилия на секунду и бросают весь свой арсенал на программиста на C#.
@Aleks, могу я познакомить вас с VB?
Закройте вопрос или сделайте его вики-страницей сообщества. Этот вопрос не заслуживает репутации.