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

Поиск:

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


Опытный
**


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

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



Цитата(w1nd @  9.5.2006,  21:45 Найти цитируемый пост)
Ничто не мешает реализовать GC в программе на C++. GC - это мимо кассы однозначно.   


... и его будут испрользовать только те части программы на С, которые о нем знают . А все остальные сишные бибки - так и будут работать с памятью по старому. И в чем тут радость? проходили - знаем, пробовали boehm GC 


--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
w1nd
Дата 9.5.2006, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(Бонифаций @ 9.5.2006,  21:50)
ключевые слова "требует" и "позволяет" - тут есть разница.

Нет уж позвольте. В Java работа с иключениями приниципиально ничем не отличается от того, что есть в C++. Компилятор C++ точно так же будет требовать кода обработки. 


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


Бывалый
*


Профиль
Группа: Участник
Сообщений: 162
Регистрация: 6.4.2006
Где: Казань, РФ

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



В С++ есть контролируемые исключения, простите?! 
--------------------
class JUncle extends Man // singleton{/*...*/}
PM MAIL   Вверх
w1nd
Дата 9.5.2006, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(Бонифаций @ 9.5.2006,  21:53)
... и его будут испрользовать только те части программы на С, которые о нем знают . А все остальные сишные бибки - так и будут работать с памятью по старому. И в чем тут радость? проходили - знаем, пробовали boehm GC

ANSI-шные - все. А как вам работа с системными библиотеками из Java? Они ведь тоже не знают про GC и не могут его использовать.

Добавлено @ 22:02 
Цитата(JUncle @ 9.5.2006,  21:56)
В С++ есть контролируемые исключения, простите?!

Так вот вы о чем smile Да, нет различий. Но будет ли компилироваться такой код - вопрос настройки компилятора.  Единственное отличие (и оно проистекает изтого, что в Java бинарник - это не машинный код) - это информация о исключениях в сигнатурах методов. 

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


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


Бывалый
*


Профиль
Группа: Участник
Сообщений: 162
Регистрация: 6.4.2006
Где: Казань, РФ

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



Какого именно? javac или сишного? 
--------------------
class JUncle extends Man // singleton{/*...*/}
PM MAIL   Вверх
w1nd
Дата 9.5.2006, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(JUncle @ 9.5.2006,  22:03)
Какого именно? javac или сишного?

Сишного. 


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


Опытный
**


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

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



Цитата(w1nd @  9.5.2006,  21:54 Найти цитируемый пост)
В Java работа с иключениями приниципиально ничем не отличается от того, что есть в C++. Компилятор C++ точно так же будет требовать кода обработки.  


Ох!

Вот вам простой пример:
Код

#include <iostream>
using namespace std;

int main(){
 throw 5;
 cout << "привет мы тут";

}


Компилируется без проблем

Код

class Ax {

 public static void main (String[] argv)
 {
   throw new Exception("Эй!");
   System.out.println ("мы тут");
 }
}

Выдает
Ax.java:6: unreachable statement
   System.out.println ("мы тут");
   ^
Ax.java:5: unreported exception java.lang.Exception; must be caught or declared to be thrown
   throw new Exception("Эй!");
   ^
2 errors

 Чувствуете разницу? 

Это сообщение отредактировал(а) Бонифаций - 9.5.2006, 22:11


--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
jxr
Дата 9.5.2006, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(w1nd @ 9.5.2006,  00:01)
Цитата(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;

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

слово "Компьютер" - может быть идентификатором в JAVA.
в С/C++ не может быть.[традиционно smile ] 
  

Это сообщение отредактировал(а) jxr - 9.5.2006, 22:14
PM MAIL   Вверх
w1nd
Дата 9.5.2006, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата
Ох!

А зачем, как вы думаете, сишный метод может быть дополнен конструкцией throw(...)? Кроме того, любой может также написать компилятор java, который не будет ругаться на необработанные исключения.    

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


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


Опытный
**


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

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



Цитата(w1nd @  9.5.2006,  21:45 Найти цитируемый пост)
Ничто не мешает реализовать GC в программе на C++. GC - это мимо кассы однозначно.   


давайте реально,
-  какой процент Ваших C/C++ проектов используют Garbage Collecting для памяти?
- какой процент C/C++ проектов  ваших друзей или других вам известных программистов используют Garbage Collecting?

то что в яве это сделали - это большой шаг вперед относительно C++

Добавлено @ 22:27 
Цитата(w1nd @  9.5.2006,  22:20 Найти цитируемый пост)
Кроме того, любой может также написать компилятор java, который не будет ругаться на необработанные исключения.    


вы это серьезно?  smile  


--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
w1nd
Дата 9.5.2006, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(Бонифаций @ 9.5.2006,  22:24)
Цитата(w1nd @  9.5.2006,  21:45 Найти цитируемый пост)
Ничто не мешает реализовать GC в программе на C++. GC - это мимо кассы однозначно.   


давайте реально,
-  какой процент Ваших C/C++ проектов используют Garbage Collecting для памяти?
- какой процент C/C++ проектов  ваших друзей или других вам известных программистов используют Garbage Collecting?

то что в яве это сделали - это большой шаг вперед относительно C++

Один. Написан восемь лет назад в целях закрепления знаний smile 

Речь не об этом. GC - это специфицированная фича JVM, а не особенность языка. И считать это различием, на мой взгляд, не стоит. А то так мы доберемся до стравнения IDE для Java и C++. Также, думаю, не стоит принципиальным различием считать поведение компиляторов, разные названия одних и тех же языковых конструкций и прочая, и прочая.  

Цитата
вы это серьезно?  smile

А как же? Байт код известен, тулзами вроде "компиляторов компиляторов" хоть пруд пруди.

 

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


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


Опытный
**


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

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



Цитата(w1nd @  9.5.2006,  22:20 Найти цитируемый пост)
А зачем, как вы думаете, сишный метод может быть дополнен конструкцией throw(...)? К


для того чтобы сказать компилеру какие именно exceptions может выбрасывать эта  функция. Однако это не значит, что компилер будет требовать обработки этого exceptions. Вы можете ничего вообще не ловить ни  в этой функции, ни выше ее. Просто все остальные exceptions внутри этой  функции вызовут abort программы. И вы узнаете во время выполнения. 

А в яве - на стадии компиляции.

Добавлено @ 22:44 
Цитата(w1nd @  9.5.2006,  22:32 Найти цитируемый пост)
GC - это специфицированная фича JVM, а не особенность языка. 


неправда. жаба спроектирована под интенсивное использование gc
 


--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
Void
Дата 9.5.2006, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


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

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



Бонифаций, по поводу finally: в C++ есть RAII, который его с успехом заменяет. 


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


Опытный
**


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

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




Цитата(w1nd @  9.5.2006,  22:20 Найти цитируемый пост)
Кроме того, любой может также написать компилятор java, который не будет ругаться на необработанные исключения.    


Цитата(w1nd @  9.5.2006,  22:32 Найти цитируемый пост)
Цитата
вы это серьезно?  smile

А как же? Байт код известен, тулзами вроде "компиляторов компиляторов" хоть пруд пруди.


Нет не о том речь. То что эти проверки будут выполняться во время компиляции - записано в spec жабы. (   11.2 Compile-Time Checking of Exceptions) Так что если кто-то это не реализует в своем трансляторе - это будет его ошибка. 
 


--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
LSD
Дата 9.5.2006, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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




 ! 
LSD
Я же просил не разводить здесь религиозных войн Java vs C++. Если хотите продолжить скажите мне, я разделю тему и закину ее в религиозные войны.
Вопрос звучал, в чем отличия, а не что лучше/хуже. Тот кто продолжит holy wars, получит читательский билет на 2 недели.

 


--------------------
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   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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