Каковы некоторые распространенные ошибки / ошибки Java для программиста C ++? - PullRequest
7 голосов
/ 12 января 2009

Как следует из вопроса, с какими общими / основными проблемами сталкиваются программисты C ++ при переходе на Java? Я ищу некоторые широкие названия тем или примеры и ежедневные корректировки, которые должны были сделать инженеры. Затем я могу пойти и сделать подробное чтение по этому вопросу.

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

Ответы [ 14 ]

1 голос
/ 12 января 2009

Лучшая книга о "хитах" Java, которую я читал, - Java Puzzlers: ловушки, ловушки и угловые случаи . Она не специально предназначена для разработчиков на C ++, но она полна примеров того, на что вы хотите обратить внимание.

0 голосов
/ 25 октября 2013

Еще одним примечательным является ключевое слово final и const. Java определяет const как зарезервированное ключевое слово, но не определяет большую часть его использования. Также

object1=object2

не копирует объекты, это меняет ссылку

0 голосов
/ 25 февраля 2010

Указание параметра метода как окончательного не означает, что вы сначала думаете, что это означает

private void doSomething(final MyObject myObj){
   ...
   myObj.setSomething("this will change the obj in the calling method too");
   ...
}

поскольку java передается по значению, он выполняет то, что вы просите, но это не сразу очевидно, если вы не понимаете, как java передает значение ссылки, а не объекта.

0 голосов
/ 12 января 2009

Все методы являются виртуальными.

Параметризованные типы (универсальные) на самом деле не создают код, специфичный для параметров кода (т. Е. List<String> использует тот же байт-код, что и List<Object>;, компилятор - единственное, что жалуется, если вы пытаетесь вставить Integer в бывший).

Varargs это просто.

...