Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> 5 основных отличий между Java и C++ 
:(
    Опции темы
raiskaa
Дата 8.5.2006, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 8.5.2006

Репутация: нет
Всего: нет



5 основных отличий между Java и C++

нашла по этой теме довольно много материала, но там слишком подробно, слишком длинно и для проффи. 
я же только начинаю изучать и мне нужны именно главные отличия. 
Например,  я нашла, что в   Java в отличии от С++ есть встроенная (автоматическая) функция "сбора мусора", или, например , что Java не позволяет "многонаследования". Это правильно?
Можете подсказать еще? smile 

Спасибо 
PM MAIL   Вверх
powerOn
Дата 8.5.2006, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 47
Всего: 159



Цитата

Например,  я нашла, что в   Java в отличии от С++ есть встроенная (автоматическая) функция "сбора мусора", или, например , что Java не позволяет "многонаследования". Это правильно?

правильно.

В Java нет указателей в отлиичии от C++
B Java нет глобальных переменных.
.........

Цитата

нашла по этой теме довольно много материала, но там слишком подробно, слишком длинно и для проффи. 


Все отличия хороши, выбирай на вкус!  smile

Добавлено @ 14:57 
Java - это чистый ОО язык, С++ - гибридный. 


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Sherst
Дата 8.5.2006, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 131
Регистрация: 26.10.2005

Репутация: нет
Всего: 2



"Многонаследование" существует только для интерфейсов 
PM MAIL   Вверх
LSD
Дата 8.5.2006, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Вообщем все верно.

Основное отличие Java от С++ состоит в том, что Java это в первую очередь платформа:
  • среда выполнения (JRE)
  • библиотека стандартных компонентов (framework)
  • язык программирования Java

Есть и языковые отличия, в основном касаются работы с указателями. В частности вообще нет поинтерной арифметики, указателей на функции и т.п.
А какова собственно цель вопроса? 


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ALKS
Дата 8.5.2006, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 354
Регистрация: 22.3.2006

Репутация: 1
Всего: 11



"многонаследование" smile

существенных отличий гораздо больше чем 5. даже если сравнивать строго языки, а не стандартные библиотеки.
Проше сказать чем они похожи - С без плюсов подобный синтаксис у обеих и на этом сходство заканчиваеться. 
PM   Вверх
raiskaa
Дата 8.5.2006, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 8.5.2006

Репутация: нет
Всего: нет



Извиняюсь за "многонаследование", конечно "множественное наследование". Это я просто читаю на англ., финском и русском, пытаясь найти инфу, вот в голове и каша smile 
Цель вопроса - хочу попасть на курсы по программир-ю, попала в 30 чел. отобранных на собеседование, теперь дали задание на дом: 20 вопросов, отберут 16 чел. Хочу очень, нет - просто надо! smile 
Спасибо всем отозвавшимся, теперь буду формулировать это по фински. smile 
 
PM MAIL   Вверх
w1nd
Дата 8.5.2006, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 20
Всего: 54



Открываете Google и пишете запрос: "java and c++ differences". На первой же странице куча ссылок.  Это во-первых. А во-вторых, как верно заметил LSD, Java - это платформа, а C++ - это язык (или язык плюс некоторое количество стандартных библиотек, если рассматривать стандартный ANSI C++). Вообще некорректный вопрос, короче. 

Это сообщение отредактировал(а) w1nd - 8.5.2006, 21:53


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
jxr
Дата 8.5.2006, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 338
Регистрация: 31.7.2005

Репутация: нет
Всего: нет



a)
C++ code - ANSI code.
Java code - Unicode code.

b)
C++, int x;  if( x ) block1; else block2;
Java, boolean con; if( con ) block1; else block2;
 
PM MAIL   Вверх
w1nd
Дата 9.5.2006, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 20
Всего: 54



Цитата(jxr @ 8.5.2006,  23:26)
a)
C++ code - ANSI code.
Java code - Unicode code.

b)
C++, int x;  if( x ) block1; else block2;
Java, boolean con; if( con ) block1; else block2;

Первый пункт - неверно, второй - явно далекое от основных отличие. 


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Void
Дата 9.5.2006, 01:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 1
Всего: 173



Цитата(w1nd @  9.5.2006,  02:01 Найти цитируемый пост)
второй - явно далекое от основных отличие

В принципе, это следствие из весьма важного отличия Java — типобезопасности, как статической, так и в рантайме. Java позволяет гораздо меньше «тихих» приведений типов, а некорректная интерпретация типа объекта ведет, в отличие от C++, не к неопределенному поведению (читай, непредсказуемым граблям), а к выбросу исключения. 


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
sergejzr
Дата 9.5.2006, 01:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 6
Всего: 360



  • C++ - машинный код / Java - интерпретируемый код (необходим интерпретатор - JVM) 
    (Тут как следствие несколько пунктов Платформонезависимость в обмен на зависимость от JVM,  Типы (размер) в С++ не определены точно и зависят от компилятора, а на Java типы на всех платтформах одинаковы. )
  • С++ "- Возможно всё, чтего только пожелает программист!" перегрузка операторов, наследование итд. / Java - Возможно только то, что разработчики Явы посчитали логически безопасным. (Этот пункт тоже можно развить на несколько: Перегрузка операторов, множественное наследование итд.)
  • С++ - не полностью Обьектно-ориентированный (возможна смесь с Си, #define и прочие извращения) / Java - полностью обьектно-ориентированный. 
  • С++ - Программист полностью сам котроллирует состояние программы, валидность указателей итд./  Java - этим забавляется сборщик мусора и среда Runtime
  • C++ - множество библиотек различной степени свежести и помятости  / Java - стандартные библиотеки, распространяемые с JVM, в которых шанс выстрелить себе в ногу сведена практически до нуля
Остальные отличия, как например синтаксис, ява-специфичные степени инкапсуляции ("protected"), особенности поиска библиотек компилятором итд.  присутствуют также, но ИМХО отходят далеко на второй план
      


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
w1nd
Дата 9.5.2006, 01:27 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 20
Всего: 54



Цитата(Void @ 9.5.2006,  01:01)
В принципе, это следствие из весьма важного отличия Java — типобезопасности, как статической, так и в рантайме. Java позволяет гораздо меньше «тихих» приведений типов, а некорректная интерпретация типа объекта ведет, в отличие от C++, не к неопределенному поведению (читай, непредсказуемым граблям), а к выбросу исключения.

Не совсем так. Просто в C++ нет булевского типа.  

Это сообщение отредактировал(а) w1nd - 9.5.2006, 01:33


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Void
Дата 9.5.2006, 01:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 1
Всего: 173



Цитата(w1nd @  9.5.2006,  03:27 Найти цитируемый пост)
Просто в C++ нет булевского типа.

Это вы мне говорите? smile А с Си не путаете? В C++ есть булевский тип (bool), другой вопрос, что вследствие type promotions к нему приводятся почти все элементарные типы…
Цитата(w1nd @  9.5.2006,  03:27 Найти цитируемый пост)
Невозможность же проверки в runtime - это особенности работы с указателями и конкретных компиляторов, а не языка.

Вы не правы. Есть стандарт C++, в котором четко прописаны конструкции и положения, делающие обязательную проверку типов в рантайме невозможной.

Добавлено @ 01:36 
Цитата(sergej.z @  9.5.2006,  03:24 Найти цитируемый пост)
ява-специфичные степени инкапсуляции ("protected"

В C++ присутствует. 


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
w1nd
Дата 9.5.2006, 05:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 20
Всего: 54



Цитата
Вы не правы. Есть стандарт C++, в котором четко прописаны конструкции и положения, делающие обязательную проверку типов в рантайме невозможной.
Я поправился (см. выше)
Цитата
Это вы мне говорите?  А с Си не путаете? В C++ есть булевский тип (bool)
Упс, путаю. Хорошо, в условиях не нужен булевский тип. Все равно не пойму, причем здесь типобезопасность, которой нет.   

Это сообщение отредактировал(а) w1nd - 9.5.2006, 05:37


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
ALKS
Дата 9.5.2006, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 354
Регистрация: 22.3.2006

Репутация: 1
Всего: 11



Цитата(sergej.z @ 9.5.2006,  01:24)
[LIST]
С++ - не полностью Обьектно-ориентированный (возможна смесь с Си, #define и прочие извращения) / Java - полностью обьектно-ориентированный. 

Ни C++ ни Java не являются  полностью объектными языками. Полностью объектный язык, это язык, у которого все является объектами, т.е. нет примитивных типов вообще. Кроме того, еще можно смело спорить какой из двух языков предоставляет большие возможности объектно ориентированного программирования.  Попробуйте на Java  самостоятельно написать класс java.lang.String smile это не возможно у String перегружена оперция "+". хе хе. а на С++ вы напишете такое запросто. С++ ые templates это конечно предмет вечной зависти... так что не всё так просто.

Остальные перечисленные пункты тоже верны не доконца и спорны smile.  

Это сообщение отредактировал(а) ALKS - 9.5.2006, 08:44
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0682 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.