![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| raiskaa |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 8.5.2006 Репутация: нет Всего: нет |
Куча ссылок это хорошо, но там же еще и отличий куча. Вопрос стоит какие из них действительно принципиальные, а какие - просто детали. Мне надо выбрать всего 5. Пока зто в списке: C++ - машинный код / Java - интерпретируемый код Java- ОО язык, а С++ - гибридный Java не позволяет множ. наследования Java: нет указателей Java: автоматический сборщик мусора Java- типобезопасность Java - стандартные библиотеки, Java -отсутствие глобальных переменных |
|||
|
||||
| ALKS |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 354 Регистрация: 22.3.2006 Репутация: 1 Всего: 11 |
хы.
java интерпретируемый код? ну да. правда современная java машина на лету компелирует байт код в нативный для среды где она запущена. так что от классического интерпретатора это довольно далеко лежало. Java не докoнца OO язык. и что самое не приятно Java это язык со злым "неравеством типов" Java не позволяет множественное наследование ДЛЯ КЛАССОВ. а в принцепе - позволяет В Java есть указатели. автоматический сборщик мусора... ндя. я бы сказал иначе - в Java отсутсвуют деструкторы. типобезопасность? ну.... смотря что вы под этим понимаете. поясните пожалуйста. стандартные библиотеки? а это что: http://en.wikipedia.org/wiki/ISO/IEC_14882 ? Стандартная библиотека C++ стандартна в прямом смысле ибо есть соответсвующий стандарт ISO! Java может пускать слюни отсутсвие глобальных переменных? ну... да пожалуй соглашусь, хотя статические классы еще никто не отменял но признаю это не совсем "то" |
|||
|
||||
| sergejzr |
|
||||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
Тьфу блин! "package protected" конечно имелся ввиду В Java есть они По крайней мере в Java - приложении присутствует как минимум один обьект. В с++ коде может не быть ни одного
На Java можно прогить и не пользуясь прим. типами. Впрочем как и на С++. Здесь разницы большой нет между ними. Дык напиши пару тройку своих, тоже поспорим Лучше не надо этот пункт брать. В Си++ типобезопастность тоже на высоте. И это лучше не брать. В Java есть модификатор static. Лучше написать. В Java у программиста нет выбора между работой с указателями, ссылками, или самими обьектами как в С++. В Java определено, что обьекты передаются по ссылке, а данные прим. типа копируются. |
||||
|
|||||
| ALKS |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 354 Регистрация: 22.3.2006 Репутация: 1 Всего: 11 |
sergej.z
генерикс + автобоксинг это НЕ темплейты. далеко НЕ. хотя формально механизм темплейтов в С++ это уже не объекто ориентированое програмирование это абстрактное программирование - следующий шаг. есть в Java объект всегда. ок. но это не далает Java полноcтью OO языком. Да, я придераюсь к этому слову: полноcтью. В отношении Java его употреблять нельзя. и не только в простых типах дело. есть и ещё нюансы. И нельзя говорить что С++ менее OO чем Java это не правда. он как раз "более". Единственное что можно сказать: на С++ можно писать полностью НЕ объектный код, а на Java - нет. Вопрос терминологии это опасный вопрос. нужно четко понимать что вы хотите сказать и точно это говорить, иначе - порвут Это сообщение отредактировал(а) ALKS - 9.5.2006, 10:38 |
|||
|
||||
| JUncle |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 6.4.2006 Где: Казань, РФ Репутация: нет Всего: 1 |
Если быть точным, в Java все передается по значению. Да, в случае передачи объекта, параметр метода - это ссылка, но сама ссылка то передается по значению. То есть, выполнив этот код, вы получите NullPointerException:
А все потому что, ссылка, передаваемая как аргумент в someMethod, передана по значению, и если изменять ее значение внутри метода, ссылка на "верхнем" уровне не изменится. Как она была null, так и останется. Другое дело, если изменить объект, на который указывает эта ссылка. Таким образом, формально в Java ВСЕ передается по значению. Это сообщение отредактировал(а) JUncle - 9.5.2006, 11:43 --------------------
class JUncle extends Man // singleton{/*...*/} |
||||
|
|||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
JUncle, не надо утрировать
Ссылка (или указатель) это абстрактная величина. Обьект передаётся именно по ссылке (которая в свою очередь ессно по значению). |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Часть перечисленных отличий относится к Java как к языку, а часть как к среде выполнения. К тому же есть пара неточностей: в Java указатели есть, но они защищенные, т.е. нельзя присвоить значение неверного типа, не разрешены арифметические операции с ним. И стандартные библиотеки есть и в С++. Добавлено @ 12:03 И еще, товарищи давайте не будем увлекаться религиозными войнами на тему Java vs C++. Для этого есть специальный раздел. -------------------- 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. |
|||
|
||||
| ALKS |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 354 Регистрация: 22.3.2006 Репутация: 1 Всего: 11 |
LSD это не религиозные войны, потому что вообщем-то никто не спорит что лучше а что хуже
Просто патаемся разобраться в различиях, не сваливаясь в диспут какие различия - зло, а какие - благо и вообще дискусия интерсна. вот. |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
Вообще, как основное отличие надо добавить кроссплатформенность.
|
|||
|
||||
| raiskaa |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 8.5.2006 Репутация: нет Всего: нет |
А-а-а-а!!! Это что за зверь? |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Программа написанная на Java может быть без переделок, запущена на любой платформе где есть JVM. На самом деле конечно есть проблемы с переносом, но они не сильно большие если заранее учитывать что программа будет работать на разных платформах. -------------------- 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. |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
Программа написанная на яве будет работать и на линуксе и под виндой, короче везде, где JVM есть. даже на мобильмике |
|||
|
||||
| raiskaa |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 8.5.2006 Репутация: нет Всего: нет |
Вот это про кроссплатформенность?
"The output of a Java compiler is not executable code. Rather it is bytecode. Using bytecode to represent programs is the easiest way to create truly portable programs." |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Это объяснение, как она реализована. -------------------- 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. |
|||
|
||||
| ALKS |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 354 Регистрация: 22.3.2006 Репутация: 1 Всего: 11 |
ууу С другой стороны, не ошибусь если скажу что плактичиски любая платформа имеет компилятор С, но далеко не любая - JVM... |
||||
|
|||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |