Как Java-разработчик, C или C++? [закрытый]

Из спецификации Access-Control-Allow-Origin: Для запросов без учетных данных в качестве подстановочного знака может быть указано буквальное значение «»; *

Попробуйте добавить определенный домен в Access-Control-Allow-Origin поле.

Я думаю, что вы должны использовать прокси в угловых приложениях. Для получения дополнительной информации проверьте эту ссылку: https://github.com/angular/angular-cli/blob/master/docs/documentation/stories/proxy.md

10
задан 21 January 2009 в 00:02
поделиться

11 ответов

Хороший вопрос. На поверхности было бы очевидно рекомендовать C++, потому что "это объектно-ориентировано как Java". Только проблема, это не действительно верно.. C++ позволяет ООП, да, но это - только одна из нескольких парадигм, которые поддерживает C++. Обработка C++ как язык ООП (и особенно, обработка его как Java) только приведут к разочарованию.

Проблема состоит в том, что Java и C++ на самом деле не имеют много общего. Программисты Java часто полагают, что Java был вдохновлен C++, но это только верно, если C++ Вы имеете в виду очень самые ранние версии C++, который можно было бы более соответственно назвать "C с классами". С тех пор C++ преобразовал полностью на его собственный язык с его собственным способом сделать вещи. Это, вероятно, изменилось намного больше с тех пор, чем Java имеет. Программист Java тогда все еще смог бы понять сегодняшний код Java. Не так для C++. Таким образом, я утверждал бы, что C на самом деле ближе к Java, чем "современный C++". C - то, что Вы получаете, если Вы берете Java и снимаете GC и понятие классов и нескольких других абстракций. Для прибытия в C++ необходимо добавить подобное количество функций к нашему гипотетическому упрощенному Java также.

Далее, C++ является удивительно сложным языком и изучением, что он хорошо берет возрасты. И если Вы не изучаете это хорошо, Вы собираетесь выстрелить себе в ногу много раз.

Наконец, это зависит от Ваших целей. C++ является намного более современным языком, чем C, и после того как Вы изучаете это, очень выразительный и мощный и, удивительно, это может даже быть очень изящно и кратко. Но кривая обучения противна. Таким образом для собственного программирования в долгосрочной перспективе, я рекомендовал бы C++ по C.

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

Об изучении Win32 Вы правы, все подробности, в которых Вы нуждаетесь, находятся на MSDN. Если Вы хотите большое изображение, Petzold является книгой по предмету.

38
ответ дан 3 December 2019 в 13:15
поделиться

Изучите достаточно C++ для использования его в качестве "лучшего C". Вы не должны пытаться отобразить все это на свое понимание Java. Все, что Вы хотите, должно смочь использовать объекты C++ в качестве абстрактных типов данных, новых и удалить, и т.д. Если STL приходит для поездки, тем лучше.

Реальный вопрос: Почему Вы думаете, что JNI является такой абсолютной необходимостью? Вызовы Windows разрушат любую мысль о хранении Вашего портативного приложения. Я сижу рядом с парнем, который должен вырыть в приложение Java, которое использует JNI. Это случайным образом снижает сервер с ОТКАЗОМ SEG. Его гипотеза - то, что "куча" заполняется, вызов JNI выполняется к стандартной программе, которая называет malloc для выделения места на "куче". Это не доступно, стандартная программа не проверяет возвращенный указатель на пустой указатель, освобождает его и вниз прибывает сервер. Он все еще пытается воспроизвести ошибку локально, потому что она требует, чтобы точная синхронизация назвала метод JJNI непосредственно перед тем, как GC запускает.

100%, уверенных, они требуются? Просто выяснение....

6
ответ дан 3 December 2019 в 13:15
поделиться

Я предполагаю, что это зависит от Ваших целей.

Если Вы хотите стать ближе к машине, то C.

Если Вы хотите добавить Вас знание OO подобный Java слой выше C, то C++.

Ускоренный C++ (санировал ссылку Amazon) является потрясающей книгой для изучения C++ с точки зрения C++ и не только C с другими битами, прикрепляемыми на,

И K'n'R C (санировал ссылку Amazon) является все еще способом пойти для изучения C, по моему скромному мнению!

BTW Для C++ добиваются мудрости Scott Meyers в Эффективных книгах C++! И его Эффективный STL заказывает также.

HTH

удачи,

Ограбить

8
ответ дан 3 December 2019 в 13:15
поделиться

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

Если бы Вы серьезно относитесь к изучению обоих языков, я рекомендовал бы "Язык Программирования на C++" Bjarne Stroustrup, и "Языком программирования C" Dennis Ritchie.

5
ответ дан 3 December 2019 в 13:15
поделиться

Я думаю, что C++ был бы намного легче для Вас стать опытным в, чем C.

При использовании Java Вам было бы нелегко покончить с удобствами как классы, исключения, форма ссылок, динамического связывания, и т.д. и конечно, достойные библиотеки.

Однако необходимо изучить C сначала, чтобы удостовериться, что Вы действительно понимаете то, что находится под капотом, и доберитесь для испытания указателей и их использования и чувства работы "без защитного механизма".

После того как Вы осваиваете это, узнаете о механизмах наследования в C++ и как это отличается от Java (например, множественное наследование).

3
ответ дан 3 December 2019 в 13:15
поделиться

Если Вы хотите превосходный ресурс для C, "Язык программирования C" Dennis Ritchie является книгой для получения.

1
ответ дан 3 December 2019 в 13:15
поделиться

Это действительно зависит от Ваших достоинств и недостатков. Если бы Вам действительно нравятся шаблоны разработки, то я предложил бы использовать C++, но если бы просто необходимо реализовать пару простых методов в JNI, то я рекомендовал бы C. При изучении C, прежде чем C++ должен дать Вам лучшее понимание управления памятью, не имея необходимость волноваться о некоторых сложностях C++ (порядок вызова конструктора, деструкторы и другие различия между C++ и Java).

Я предложил бы "Язык программирования C" Kernighan и Ritchie как категорическое руководство для изучения C. http://www.amazon.com/Programming-Language-Dennis-M-Richie/dp/0876925964

Если Вы идете *, отклоняют систему, существует вполне достаточная документация в страницах справочника для различных функций. Например,

человек bash$ malloc

2
ответ дан 3 December 2019 в 13:15
поделиться

Если бы Ваше намерение состоит в том, чтобы продолжить писать код JNI затем, я определенно рекомендовал бы C++.

В частности, интерфейс JNI требует, чтобы Вы получили (и впоследствии выпустили) ссылки на объекты Java. Используя C++ автоматические переменные можно получить эти ссылки с помощью 'RAII' (Распределением ресурсов является Инициализация), методы, который делает управление памятью намного более простым.

0
ответ дан 3 December 2019 в 13:15
поделиться

100%, уверенных, они требуются? Просто выяснение....

К сожалению, да.

Спасибо все для Ваших ответов.

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

0
ответ дан 3 December 2019 в 13:15
поделиться

Если бы Ваша "главная цель" здесь состоит в том, чтобы сделать программирование окон, я рекомендовал бы C# по C или C++. Однако я верю каждому программисту на Земле, и в Более низкой орбите, ДОЛЖЕН знать C. Не знание C++ приемлемо, хотя Вы не могли бы быть приглашены к нескольким сторонам :) Но C является чем-то вроде обряда посвящения между Приложениями (высокий уровень) программист и Библиотека (низкий уровень) программист.

0
ответ дан 3 December 2019 в 13:15
поделиться

В частности, интерфейс JNI требует, чтобы Вы получили (и впоследствии выпустили) ссылки на объекты Java. Используя C++ автоматические переменные можно получить эти ссылки с помощью 'RAII' (Распределением ресурсов является Инициализация), методы, который делает управление памятью намного более простым.

Спасибо, который полезен. Одна из областей, которые топили возрастающее беспокойство в моем животе, имела дело с ручным управлением памятью, связанной с объектами JNI

0
ответ дан 3 December 2019 в 13:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: