Из чего состоит Java?
Пожалуйста, помогите разобраться со структурой 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?
![]()
Лично я особой разницы с технической стороны между 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 . Т.е. для разработки под андроид есть свои спецификации, подходы и платформы.
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.
Java Core для самых маленьких. Часть 1. Подготовка и первая программа
Как-то давно мы с моим товарищем и коллегой Егором готовили обучающий курс по Java Core. Но как-то не срослось и это дело не было доведено до какого-либо логического конца. И вот, спустя время, я решил, что не стоит пропадать добру и по-этому запускаю серию статей про Java Core для самых маленьких.
Начало разработки языка было положено еще в 1991 году компанией Sun Microsystems, Inc. Вначале язык был назван Oak (Дуб), но в 1995 он был переименован в Java. Публично заявили о создании языка в 1995 году. Причиной создания была потребность в независящем от платформы и архитектуры процессора языке, который можно было бы использовать для написания программ для бытовой электротехники. Но поскольку в таких устройствах применялись различные процессоры, то использование популярных на то время языков С/С++ и прочих было затруднено, поскольку написанные на них программы должны компилироваться отдельно для конкретной платформы.
Особенностью Java, которая решила эту проблему, стало то, что компилятор Java выдает не машинный исполняемый код, а байт-код — оптимизированный набор инструкций, которые выполняются в так называемой виртуальной машин Java (JVM — Java Virtual Machine). А на соответствующую платформу предварительно устанавливается JVM с необходимой реализацией, способная правильно интерпретировать один и тот же байт-код. У такого подхода есть и слабые стороны, такие программы выполняются медленнее, чем если бы они были скомпилированы в исполняемый код.
Установка программного обеспечения — JDK
В первую очередь, нам нужно установить на компьютер так называемую JDK (Java Development Kit) — это установочный комплект разработчика, который содержит в себе компилятор для этого языка и стандартные библиотеки, а виртуальную машину Java (JVM) для вашей ОС.
Для того чтобы скачать и установить JDK открываем браузер, и в строке поиска Google вводим “download JDK” или переходим по этой ссылке.

Скролим ниже и находим таблицу с вариантами скачивания JDK. В зависимости от нашей операционной системы выбираем файл для скачивания.
Процесс установки для ОС Windows имеет несколько этапов. Не стоит пугаться, все очень просто и делается в несколько кликов. Вот здесь подробно описан процесс установки. Самое важное для пользователей Windows это добавить системную переменную JAVA_HOME. В этой же статье достаточно подробно расписано как это сделать (есть даже картинки).
Для пользователей MacOS также стоит добавить переменную JAVA_HOME. Делается это следующим образом. После установки .dmg файла JDK переходим в корневую папку текущего пользователя и находим файл .bash_profile. Если у вас уже стоит zsh то ищем файл .zshenv. Открываем этот файл на редактирование и добавляем следующие строки:
Здесь обратите внимание на версию JDK указанную в пути — jdk1.8.0_271.jdk. Могу предположить, что у вас она будет отличаться, поэтому пройдите по указанному пути и укажите свою версию. Сохраняем изменения и закрываем файл, он нам больше не понадобится.
Теперь важно проверить правильность установки JDK. Для этого открываем командную строку, в случае работы на Windows, или терминал для MacOS. Вводим следующую команду: java -version Если вы все сделали правильно, вы увидите версию установленного JDK. В ином случае вы, скорее всего, допустили где-то ошибку. Советую внимательно пройтись по всем этапам установки.

Установка IDE
Теперь нам нужно установить среду разработки, она же IDE (Integrated development environment). Что собой представляет среда разработки? На самом деле она выглядит как текстовый редактор, в котором мы можем вводить и редактировать текст. Но помимо этого, этот текстовый редактор умеет делать проверку синтаксиса языка на котором вы пишете. Делается это для того чтобы на раннем этапе подсказать вам о том, что вы допустили ошибку в своем коде.
Также среда разработки содержит в себе компилятор. Компилятор — это специальный инструмент, который будет превращать код, который вы пишете, в машинный код или близкий к машинному коду.
Кроме этого, среда разработки поддерживает отладчики которые помогают править и отлаживать ваш код в случае ошибки. Скажем так, это были описаны основные возможности IDE. Современные IDE предоставляют огромное количество инструментов, которые могут помочь в написании, отладке, автоматической генерации кода и решить множество других проблем.
Для начала нам нужно выбрать и среду разработки. Их довольно таки много, и самыми популярными из них являются: IntelliJ IDEA, NetBeans, Eclipse. Для себя я выбираю IntelliJ IDEA. Она является самой удобной на мой взгляд, и хоть она и платная, на официальном сайте можно найти бесплатную версию которая называется Community. Этой версии будет вполне достаточно для изучения основ Java. Вообщем будем работать в IntelliJ IDEA.
Итак, открываем браузер, в поисковой строке вводим «Download IntelliJ IDEA Community» или переходим по этой ссылке. Выбираем версию ОС и качаем версию Community.

В установке IntelliJ IDEA нет ничего военного. На крайний случай на ютубе есть множество видео о том, как установить эту программу.
Первая программа
Теперь мы готовы создать нашу первую программу. В окошке запустившийся IDE нажимаем New Project.

В новом окошке в левой панели выбираем Java.

Обратите внимание! В верхнем окошке, справа, возле надписи «Project SDK:» должна находится версия Java, которую вы установили вместе с JDK. Если там пусто, то вам нужно будет указать путь к вашему JDK вручную. Для этого в выпадающем списке нажмите «Add JDK. « и укажите путь к вашему JDK, который был предварительно установлен.
Теперь можем нажать на кнопку Next. В следующем окошке, вверху, поставьте галочку “Create project from template” и выберите “Command Line App”. И снова нажимаем Next.

Дальше нам нужно указать имя программы. У меня это будет Hello World, желательно чтобы имя проекта было введено латиницей, и на английском языке.
Примечание. Все программы, имена программ, принято писать на английском языке, и желательно придерживаться такого стиля, что является хорошим тоном в программировании.
После указываем путь к проекту программы.
Далее, нам нужно указать базовый пакет нашей программы. О пакетах я расскажу вам позже, обычно компании используют свое имя Интернет-домена в обратном порядке, но вы можете написать, например, свои имя и фамилию через точку в нижнем регистре (маленькими буквами), тоже латиницей. Я же использую псевдоним. Когда все поля будут заполнены — нажимаем “Finish”.

После этого вы увидите главное окно IDE, в котором уже будет создана ваша первая, почти готовая консольная программа.
Это окно, то что вы будете видеть 80-90%, а иногда и 100% времени, работая программистом.
Для того чтобы закончить ваше первое приложение, останется добавить строчку кода System.out.print(«Hello world!»); как показано на скриншоте.

Чтобы скомпилировать и запустить на выполнение вашу программу, вам нужно нажать кнопочку с зеленым треугольничком на верхней панели справа, или в меню найти пункт Run -> Run “Main”. И внизу на нижней панели, под окном редактора, в консоли, вы увидите результат выполнения вашей программы. Вы увидите надпись Hello World! Поздравляю, вы написали свою первую программу на Java.

Разбираем первую программу
В своем первом приложении вы можете увидеть много непонятных символов и слов, но на данном этапе вы должны воспринять их как данность, позже, в следующих частях, я расскажу о каждом из них, и зачем они нужны. На данном этапе вам нужно понять что это стандартные составляющие любого Java-приложения, и в последующих приложениях эти компоненты будут изменяться минимально.
Пройдемся по порядку:
В начале мы видим package com.zephyr.ventum; — это объявление пакета, и это постоянный атрибут файлов с исходным кодом в Java. Простыми словами, это локация вашего файла в проекте и любой .java файл должен начинаться с подобной строки.
Ключевое слово — это слово зарезервированное языком программирования. Например, package — это тоже ключевое слово.
Фигурные скобки <> у метода main обозначаю начало и конец тела метода, весь код метода должен располагаться между этими скобками. Аналогичные скобки есть и у класса Main.
Следующая строка является // write your code here однострочным комментарием.
Комментарием является текст который игнорируется компилятором. По-этому с помощью комментариев вы можете оставлять в коде подсказки для себя и других, кто будет читать ваш код, или же для документирования вашего кода. Существует несколько видов комментариев, основными из них являются однострочный, и многострочный.
Многострочный комментарий будет выглядеть следующим образом:
Мы просто располагаем несколько строк между символами /* и */
System.out.print(«Hello world!»); — строка которая находится внутри метода main является командой, которая выводит в консоль строку «Hello world!»
Обратите внимание что в конце стоит точка с запятой, в языке Java команды должны заканчиваться точкой с запятой.
Затем мы закрываем тело нашего метода main > а также закрываем класс Main > .
На этом статья подходит к концу. Автором конкретно этого материала является Егор и все уменьшительно ласкательные формы слов сохранились в первозданном виде.
Что такое Java EE и Java Core.
На вебинаре мы попробуем разобраться, что такое Java Core и Java EE, из чего они состоят и в каком порядке их нужно изучать. Также мы затронем Spring и поговорим о том, почему именно его используют в большинстве современных приложений, написанных на Java.
План вебинара:
- Краткое знакомство со спикером. Опыт, используемые технологии.
- Что такое Java (JVM and Java Lang)
- Java Core
- Что в себя включает Java Core
- История Java EE
- JSP / JSF / servlets
- Spring Core
- Spring libraries
- Hibernate / Spring JPA
- Java enterprise в наши дни
Целевая аудитория:
Данный вебинар будет интересен для начинающих Java разработчиков, которые хотят разобраться, что необходимо изучить, чтобы быть востребованным специалистом на современном рынке.
Информационные партнеры:

Работа. Вакансии. Трудоустройство
Core Java Syllabus
![]()
java is a very popular programming language and every beginner which wants to start to learn core java.
In this article, we will cover the core java syllabus so anyone can focus on these topics and learn accordingly.
java is a very popular programming language and every beginner which wants to start to learn core java.
In this article, we will cover the core java syllabus so anyone can focus on these topics and learn accordingly.
In Java, programming language bais syntax and concept called as Core Java. It is the part of the Java programming language which is used for building or developing an application.
Java is a programming language and a platform. Java is a modern, robust, fully object oriented and secure programming language.
Java was developed by Sun Microsystems (which is now part of Oracle) in the year 1995. James Gosling is the father of Java.
Before Java, its name was Oak. Since Oak was already a listed company, so James Gosling and his team renamed Oak with Java.
what is Platform?
Any hardware or software environment in which is required to run a program named a platform. Since Java has a runtime environment (JRE) and API so that it is called a platform.
Setting up Java
Before we start anything in java we have to set up a java environment. simply download the java and install it on your machine.
If you are new to Java programming then you have to simply follow the instruction which is provided with the docs.
you have on more option to run java program online using jdoodle.com
Writing First Java Program
Creating a Hello World Program in every language is our first task, but in java, it is not a single line program.
It consists of different other lines of code. Since Java is an Object-oriented language so it requires writing code inside a class.
Java Method
Java Method is a group of statements to process some definite task and return the response to the caller.
Methods allow us to write a reusable piece of code and dividing our program into many small units of operation. Java Method helps to clean more readable code.
Constructor in Java
Constructor in java is used to build the instance of the class. Constructors are relatively similar to methods except for two things, its name is the same as the java class name and it has no return type.
Sometimes constructors are also called special methods to initialize an object.
Java Access Modifiers
- public
- protected
- private
- default
Java access modifiers are used to implement access control in java. Java provides access control through these keywords — private, protected, and public.
We are not using above these access modifiers, so we have another one i.e “default access“, “package-private” or “no modifier“.
Java Loop
In programming languages, loops are used to execute a set of statements repeatedly until some conditions become true. There are mainly three types of loops in Java.
- for loop
- while loop
- do-while loop
Data Types and Operators
- Java Autoboxing and Unboxing — Converting a primitive data type into an object of the like wrapper class is called autoboxing.
- For example, transforming int to Integer or converting float to Float object.
- Java Wrapper Classes– Keep primitive data types and Wrapper classes for them to keep things simple.
- We require wrapper classes when we need a type that will fit in the Object-Oriented Programming like Collection classes.
- Java Ternary Operator-Java ternary operator is the exclusive conditional operator that takes three operands.
- Java ternary operator is a one-liner replacement for if-then-else statement and used many times in java programming.
- We can use the ternary operator to replace the switch statement.
Object
Any entity that has behavior and state is known as an object. For example, a table, car, bike, cycle etc. It can be physical or virtual.
An Object can be represented as an instance of a class. An object carries an address and takes up some space in the memory.
Objects can communicate with each other without knowing data or code.
The only important thing is the type of message accepted and the type of response returned by the objects.
Example: A cow is an object because it has states like color, name, breed, etc. as well as behaviors like wagging the tail, walking, eating, etc.
Class
The combination of objects is called class. It is a logical entity. A class can be described as a blueprint from which you can build an individual object. Class doesn’t spend any space.
Inheritance
When one object obtains all the characteristics and behaviors of a parent object, it is called inheritance. It gives code reusability. It is used to produce runtime polymorphism.
Polymorphism
A task is completed in different ways, it is known as polymorphism. For example: to add two integer numbers we can use add method, the same way we can use add a method for long data type
In Core Java Syllabus, we can use method overloading and method overriding to achieve polymorphism.
Abstraction
Hiding internal implementaion details and only showing functionality is known as abstraction. For example, anyone can drive a car without knowing internal working.
In core Java Syllabus, we use interface and abstract class to achieve abstraction.
Encapsulation in Core Java Syllabus OOPs Concepts
Encapsulation
Binding code with data together into a single unit are known as encapsulation. For example, a single capsule is covered with different medicines.
A java class is the example of encapsulation. Java pojo class is the fully encapsulated class because all the data members are private here.
Coupling
Coupling refers to the facts or information or dependency of another class. It occurs when classes are informed of each other. If a class has the detailed information of another class, there is a strong coupling.
In Java, we use public, private, and protected modifiers to display the visibility level of a member field, class, and method. You can use interfaces for the lower coupling because there is no concrete implementation.
Cohesion
Cohesion refers to the level of a component that performs a particular well-defined task. A single well-defined job is done by a highly cohesive method.
The weakly cohesive method will divide the task into separate parts. The java.io package is a highly cohesive package because it has Input/Output related classes and interface.
However, the java.util package is a weakly cohesive package because it has independent classes and interfaces.
Association
Association represents the correlation between the objects. An object can be correlated with one object or many objects. There can be four types of association among the objects:
- One to One
- One to Many
- Many to One, and
- Many to Many
Aggregation
Aggregation is a process to achieve Association. Aggregation represents the connection where one object contains other objects as a part of its state.
It represents the weak correlation between objects. It is called termed as a has-a relationship in Core Java Syllabus. Like, inheritance describes the is-a relationship. Aggregation is a different way to reuse objects.
Composition
The composition is also a process to achieve Association. The composition represents the connection where one object contains other objects as a part of its state.
There is a strong association between the containing object and the secondary object. It is the situation where containing objects do not have an independent survival. If you delete the origin object, all the child objects will be removed automatically.
Interface
Interface in java is one of the core Java concepts. Java Interface is a core part of the java programming language and used a lot not only in JDK but also in java design patterns. Most of the frameworks use the java interface massively.
Abstract Class
Abstract class in Java is similar to interface except that it can include default method implementation.
An abstract class can have an abstract method without a body and it may have methods with implementation also.
using abstract keyword we can make an abstract class and method. Abstract class in java can’t be instantiated.
An abstract class is frequently used to provide a base for subclasses to extend and implement the abstract methods and override or use the implemented methods in the abstract class.
String Manipulation
A string is built into a series of characters. in technical words, the fundamental Java String is basically an array of characters. We are using string for containing property names. One of the primary functions of modern computer science is processing human language.
Arrays
Java array is an object which holds elements of a similar data type. Additionally, The components of an array are stored in an adjacent memory location.
It is a data structure where we put similar elements. We can store only a fixed amount of elements in a Core Java array.
Array in Core Java Syllabus is index-based, the first element of the array is stored at the 0th place, 2nd element is stored on 1st place and so on.