#java #android #java_ee
Пожалуйста, помогите разобраться со структурой java
видел вот такое разделение:
Возникли следующие вопросы:
1) Правильно я понял, что Java Core и Java SE это не одно и тоже? Всегда считал что
это одно и тоже.
2) Как тогда отличить, что входит в Java Core, а что в Java SE? Например, исключения
куда отнести? BigInteger, BigDecimal? Ну это конкретные примеры, а хотелось бы для
любого примера научиться отличать
3) Удивило что JavaFX выделена отдельно. Все-таки более традиционно разделять на
Java Se, Java EE, Java ME. Куда при таком разделении относится Java FX?
4) Как отличить, когда моя программа соответствует Java Se, а когда становится Java
EE? Я для себя это понимаю так: в Java EE могут присутствовать все что есть в Java
Core и в Java SE, но когда появляются технологии такие как JSP, JSF, Hibernate и т.д.
то становится Java EE.
5) Куда отнести такие вещи как Tomcat, Spring? В списке технологий Java EE я их не
нашел, но и на Java SE это явно не похоже.
6) Какое место среди этого всего занимает, и как вообще сюда вплетается Java Android?
Ответы
Ответ 1
Лично я особой разницы с технической стороны между java core и se не вижу. Ссылка на оракл Java SE Core Technologies. Разве что термины употребляются в разных контекстах. Java core обычно пишут в вакансиях и подразумевают начальные знания языка. Знание типов данных, синтаксиса и т.д. Java SE подразумевает приложения, запускаемые из командной строки. Это очень обобщенно, возможно меня поправят.. А зачем вам это вообще отличать?) Ну, собственно, см.п.1. Про Java SE написал выше. Java ME- устаревшая платформа для мобильных устройств. Помните игрушки на nokia и siemens? Java EE - это, в первую очередь, набор спецификаций по разработке крупных приложений(грубо говоря, web), а не конкретные классы. Например, Enterprise JavaBeans или вебсокеты. Java FX - standalone-приложения с графическим интерфейсом (swing в FX не входит) Опять же, написал выше. Java EE приложения разворачиваются в контейнере сервлетов(tomcat) или сервере приложения (glassfish, jboss). Java SE запускаются просто на локальной машине. Tomcat-контейнер сервлетов. Spring - фреймворк, предлагающий некоторую альтернативу java ee. Т.е. если в соответствии со спецификацией java ee какую-то задачу можно решить с помощью EJB, то spring предоставляет свой собственный подход. А разработчик в праве сам решить что ему более подходит. Android, вероятно, можно выделить так же отдельно, как и EE, ME, SE. Т.е. для разработки под андроид есть свои спецификации, подходы и платформы.Ответ 2
1-2) Java core это судя по всему уже устаревшее название того что на этой схеме называется как Lang and Util Base Libraries и Other Base Packages. Если посмотреть документацию Java Se 6 она отсылает к списку Base Libraries, то есть можно считать что Java core == Base Libraries. Но по большому счету это знание имеет мало пользы. 3) Интересный вопрос, смотрите по этой схеме Java Fx не входит в часть Java SE API, но входит в JDK и в целом все-таки часть Jave SE Platform. 4) Смотрите Java EE это в основном набор интерфейсов, которые реализуют другие провайдеры. Java EE не входит в JDK и нужно добавлять эти классы отдельно. На самом деле, главный критерий не то Java EE приложения разворачиваются в контейнере сервлетов или сервере приложения, а использование Java EE интерфейсов. Впрочем все это сильно размыто, так как JPA интерфейсы (на которых основан Hibernate) или Dependency Injection не использует только совсем ленивый или в Hello world приложениях. По хорошему, чистых Java SE приложений почти не осталось, с другой стороны настоящие Java EE это огромные монстры на weblogic'e или websphere. Для простоты пока у вас небольшое приложение слегка использующее Java EE (вроде Hibernate), можете считать что у вас Java SE c небольшим кол-вом EE, как только оно превращается в Enterprise монстра - чистое ЕЕ. 5) Тут сложный вопрос с одной стороны Spring поддерживает EE интерфейсы и интегрирован со многими EE решениями: JSP, Dependency injection стандарт, JPA, Hibernate и многое другое. Более того на сайте проекта сказано "Let's build a better Enterprise.", то есть в первую очередь это Enterprise решение. С другой стороны, никто не мешает использовать Spring без связок с EE технологиями или минимум таких технологий. Более того можно рассматривать Spring как конкурента Java EE, можно как симбиоз с Java EE или часть Java EE решений, все зависит от каждого отдельного случая. Так что можно сказать что Spring это и EE и SE решение, как молоток, который можно использовать чтобы построить небоскреб, а можно чтобы починить сарай. 6) Хмм, Java Android вообще отдельное место, гугл взял спецификацию Java языка и сделал свою JVM и свой язык, он в целом совместим с остальной Java, но не полностью. Оракл давно пытается засудить гугл за использование Java. Так что Android это совсем другой мир не очень-то связанный с Java SE или EE.
Комментариев нет:
Отправить комментарий