Перейти к содержимому

Как выглядит java

  • автор:

Как выглядит java

МЕРОПРИЯТИЯ

YADRO X MOSCOW USER GROUP C++ MEETUP

Комментарии

Популярные По порядку
Не удалось загрузить комментарии.

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

ТОП-6 алгоритмов сортировки на Java для новичков

Изучение алгоритмов сортировки на языке Java поможет не изобретать велосипеды и быстро выскочить на лесенку карьерного роста.

ТОП-10 лучших книг по Java для программистов

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

6 книг по Java для программистов любого уровня

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

10 главных конструкций языка Java

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

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

�� В Java после каждой команды ставится точка с запятой.

Комментарии

Комментарии в Java точно такие же, как в C-подобных языках — есть однострочные, которые работают только для одной строки, и многострочные.

// Это однострочный комментарий
// Для каждой строки нужно добавлять его отдельно
/* А это — многострочный
его можно сделать любой длины,
если в начале и в конце поставить нужные символы */

Переменные и типы данных

Как и в C, в Java есть несколько типов данных с разным объёмом выделяемой памяти. Предполагается, что программист сам решит, какой тип использовать лучше всего в каждой ситуации и сам будет следить за тем, чтобы в переменную поместилось всё что нужно.

// целое, 1 байт byte b; // целое, 2 байта short s; // целое, 4 байта int x = 420; // целое, 8 байт long l; // дробное, 4 байта float fl = 4.3; // дробное, 8 байт double d,q; // логический тип, true или false boolean bol;

Присваивание и сравнение

Всё как и везде:

// это присваивание
x = 10;
// а это — сравнение x и 10
// результат сравнения отправляется в переменную b
boolean bol;
b = (x == 10);

Ещё есть метод сравнения .equal — он работает более гибко и предсказуемо, чем ==, потому что двойное равно может сравнивать только числа и строки.

Структура программы

Разработчикам Java понравилось, что в C вся программа состоит из функций, среди которых есть одна обязательная — main, поэтому сделали точно так же. В классах эта функция называется методом.

Но есть одно важное отличие: каждая java-программа — это как бы один большой класс со своими разделами, которые должны быть у каждого класса. Благодаря этому большие программы легко собираются из маленьких java-кирпичиков и работают друг с другом как с классами, используя все их возможности.

// программа — тоже класс public class Program < // публичная часть класса, доступная всем // в ней сразу делают основную функцию программы main public static void main(String[] args) < // объявляем переменные String name = "Код"; // выводим строку на экран System.out.printf("Привет, это журнал %s \n", name); // конец основной функции >// конец описания класса >

Ввод и вывод

Для ввода и вывода используют системный класс System и два его объекта — in и out. Но на практике чаще всего вместо in используют объект Scanner, чтобы можно было более гибко управлять вводом данных.

// подключаем класс Scanner import java.util.Scanner; // класс с программой public class Program < // основная функция public static void main(String[] args) < // создаём новый объект ввода, через который будем дальше работать Scanner in = new Scanner(System.in); // выводим строку System.out.print("Введите имя: "); // создаём переменную name и помещаем в неё то, что пользователь введёт с клавиатуры String name = in.nextLine(); // выводим ещё одну строку System.out.print("Возраст: "); // так же запоминаем возраст в другую переменную int age = in.nextInt(); // просим ввести рост System.out.print("Введите рост: "); // запоминаем введённое значение float height = in.nextFloat(); // выводим строку с результатом System.out.printf("Имя: %s Возраст: %d Рост: %.2f \n", name, age, height); // закрываем наш объект ввода, потому что пока он больше не нужен in.close(); >>

Условные операторы if и switch

Работают так же, как в C и в любых современных языках высокого уровня. Главное здесь — следить за фигурными скобками и не перепутать, что к чему относится. Проще всего это регулировать отступами:

// числа для сравнения int num1 = 6; int num2 = 8; // если первое больше второго if(num1>num2) < // выводим результат System.out.println("Первое число больше второго"); >// если первое условие не выполнилось — можем проверить второе else if(num1 // если и это условие не выполнилось else< // выводим финальное сообщение System.out.println("Числа равны"); >

У оператора множественного выбора есть особенность: ему не нужны фигурные скобки для действий в каждом случае. Компьютер по синтаксису понимает, что к чему относится, и выбирает нужный вариант.

// число для сравнения int num = 8; // сравниваем значение этого числа с нашими вариантами switch(num)< // если число = 1 case 1: // выводим сообщение System.out.println("число равно 1"); // выходим из дальнейших проверок break; // если число = 8 case 8: System.out.println("число равно 8"); // увеличиваем число на 1 num++; break; // если число = 9 case 9: System.out.println("число равно 9"); break; // если ни один из вариантов не подошёл default: System.out.println("число не равно 1, 8, 9"); >

Циклы

В Java есть три основных вида циклов:

  • for — с известным числом повторений и счётчиком;
  • do — с проверкой условия до цикла;
  • while — условие проверяется после первого выполнения цикла.

Ещё есть два полезных оператора:

  • break — прерывает цикл в любой момент;
  • continue — сразу переходит к следующему витку цикла без выполнения остальных команд.
// цикл со счётчиком // задаётся начальное значение, условие и шаг цикла for (int i = 1; i < 9; i++)< // тело цикла System.out.printf("Квадрат числа %d равен %d \n", i, i * i); >// то же самое с циклом do int j = 1; // начинаем цикл do < // выводим результат System.out.printf("Квадрат числа %d равен %d \n", i, i * i); // увеличиваем переменную цикла j++; >// проверяем условие цикла while (j < 9); // и то же самое с циклом while int k = 1; // начинаем цикл и сразу проверяем условие while (k < 10)< // выводим результат System.out.printf("Квадрат числа %d равен %d \n", k, k * k); // увеличиваем переменную цикла k++; >

Функции (они же методы)

Так как каждая программа — это описание какого-то класса, то функции в Java — это и есть методы этого класса. Функций (или методов) может быть сколько угодно, главное — соблюдать правила описания классов. Покажем на примере:

// программа — класс public class Program < // публичная часть, доступная всем // основная функция-метод main public static void main (String args[])< // вызваем методы (функции) в любое время hello(); welcome(); >// метод hellо(), который не передаёт и не принимает никаких аргументов void hello() < System.out.println("Привет!"); >// метод welcome() void welcome() < System.out.println("Это журнал Код."); >>

Классы

В Java всё построено на классах, от самой программы до реализаций различных функций. Конечно, можно не использовать классы и работать в чисто процедурном стиле, но в Java так не принято. Это ООП-язык с родной поддержкой классов на всех уровнях.

Сами классы объявляются и используются так же, как и в любом другом ООП-языке:

// объявляем новый класс с информацией о заказанном товаре class Order < // переменные класса String name; // название int cost; // стоимость // метод класса void displayInfo()< // выводим информацию о заказе System.out.printf("Заказ: %s \tСтоимость: %d\n", name, cost); >>

Объекты

Объекты в Java работают по тому же принципу, что и все объекты в ООП: можно создавать сколько угодно объектов на основе классов и делать их любой сложности.

Обычно используют классы, прописанные в том же файле, что и программа. Если нужно использовать класс из другой программы, её подключают отдельно. Вот самый простой способ сделать объект на основе предыдущего класса с заказом:

// программа — тоже класс public class Program < // основная функция-метод main public static void main (String args[])< // создаём новый объект на основе класса ниже Order new_order; // заполняем данные new_order.name = "Айфон"; new_order.cost = 9999; // вызываем метод класса new_order.displayInfo(); >> // объявляем новый класс с информацией о заказанном товаре class Order < // переменные класса String name; // название int cost; // стоимость // метод класса void displayInfo()< // выводим информацию о заказе System.out.printf("Заказ: %s \tСтоимость: %d\n", name, cost); >>

Java Core

Java Core — это термин, который может использоваться по-разному в разных контекстах. Если он встречается в вакансиях на разработчика уровня Junior, то под ним обычно подразумевается базовое знание языка Java. Но компания Sun Microsystems, в которой разработали язык Java, определяет Core Java как вычислительную платформу, основанную на Java.

Освойте профессию «Java-разработчик»

Существуют три вычислительные платформы, основанные на Java:

  • Java Standard Edition (Java SE) или Core Java — это базовое API. Обычно используется для разработки десктопных приложений;
  • Java Enterprise Edition (Java EE) — это корпоративная версия Java. Применяется для разработки более мощных серверных приложений, веб-сайтов;
  • Java Micro Edition (Java ME) используется для разработки приложений для устройств с ограниченными ресурсами, например мобильных телефонов, принтеров, проигрывателей Blu-ray.

Профессия / 14 месяцев
Java-разработчик

Освойте востребованный язык

Group 1321314345 (4)

История

Язык Java был разработан в 1995 году Джеймсом Гослингом в компании Sun Microsystems.

Сначала язык назывался Oak в честь дуба, который рос около офиса Гослинга (oak в переводе с английского — дуб). Затем язык получил новое название — Green. Но в итоге он стал называться Java в честь кофе с острова Ява в Индонезии (однако название языка читается «джава»).

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

Где применяется Java?

Java — это язык широкого назначения. Его основной принцип: «Пиши один раз, запускай где угодно», или WORA (Write Once, Run Anywhere). Это значит, что скомпилированный (преобразованный в машинный код) Java-код можно можно запустить на всех поддерживающих Java платформах без необходимости повторной компиляции.

Java-приложения обычно компилируются в байт-код (набор инструкций, выполняемый виртуальной машиной Java). JVM устанавливается на платформу, на которой предстоит выполнение Java-программы. На Windows, к примеру, ее нужно устанавливать самостоятельно, а на Android JVM уже вшита.

Достоинство такого способа выполнения программ — это независимость байт-кода от операционной системы, что и позволяет выполнять Java-приложения на таком большом количестве устройств.

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

Android. Несмотря на популяризацию Kotlin в последнее время, на Java написано огромное количество приложений для платформы Android.

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

Десктопные приложения. В том числе и много IDE (интегрированная среда разработки — комплекс программных средств, используемый для разработки ПО) разработаны на Java — например, IntelliJ IDEA, Eclipse, Netbeans.

Веб-приложения. Например, большое количество RESTful-сервисов (REST — стиль архитектуры программного обеспечения для распределенных систем) и сервлетов (интерфейс Java, реализация которого расширяет функциональные возможности сервера) было создано с использованием Java.

Встраиваемые системы. От банкоматов, платежных терминалов и станков с ЧПУ до бытовой техники — Java может использоваться практически везде, как и обещали его создатели.

Большие данные. Java не доминирует в этой области, но применяться может.

Читайте также Кому и для чего нужен Java?

Преимущества Java

Java входит в первую тройку языков по индексу TIOBE (индекс, оценивающий популярность языков программирования) уже 20 лет.

Разработка через тестирование. Этот подход к программированию не является изобретением разработчиков языка, но создание библиотеки для модульного тестирования JUnit — это одно из самых больших достижений Java.

Объектно-ориентированное программирование. ООП позволяет программе быть более безопасной, так как объекты скрывают информацию, к которой доступа быть не должно. Также ООП упрощает обслуживание и модернизацию старого кода.

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

Независимость от платформы. Если программа не использует специфичные для какой-то операционной системы функции, то ее можно перенести полностью или частично.

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

Многопоточность. Java позволяет эффективно использовать время процессора, запуская потоки одновременно.

Большое сообщество. Помимо поддержки Oracle, на помощь разработчикам приходит большое сообщество.

Станьте Java-разработчиком
и создавайте сложные сервисы
на востребованном языке

Основные части Java Core

Синтаксис и базовые конструкции Java

Синтаксис Java близок к C и C++, но имеет меньше низкоуровневых средств, чем они. Поэтому если вы знаете один из си-подобных языков, то выучить Java вам будет легко. Однако, в отличие от C++, Java не поддерживает функциональное программирование и является строго объектно-ориентированным языком программирования.

Пример программы Hello World на Java:

public class MainClass public static void main(String[] args) System.out.println(«Hello, SkillFactory!»); // Печатает “Hello, SkillFactory!” в консоль
>
>

Функция main() — это точка входа в программу — именно отсюда начинается ее выполнение.

Обратите внимание, что все исходные файлы должны быть названы так же, как и класс, который они содержат, с добавлением расширения файла .java. Например, указанный выше класс будет находиться в файле MainClass.java.

Также для успешной работы на Java необходимо знать базовые конструкции языка:

  • переменные и константы, их типы и как с ними работать;
  • массивы;
  • работа со строками, String API;
  • логические и арифметические операции и выражения;
  • оператор ветвления if-else, тернарный оператор, оператор множественного выбора switch-case, цикл for, включая его вариант for each, циклы while и do-while;
  • операторы break и continue.

Объектно-ориентированное программирование (ООП)

Сейчас структурные и процедурные подходы программирования уходят в прошлое, а объектно-ориентированное программирование доминирует.

Для понимания объектно-ориентированного программирования нужно разобраться с понятиями класса, объекта и тем, как применять на практике основные принципы ООП: абстракцию, наследование, полиморфизм и инкапсуляцию.

Объект — это некоторая сущность в цифровом пространстве, которая обладает определенным состоянием (поля класса) и поведением (методы). Класс — это описание еще не созданного объекта, шаблон, на основе которого создаются объекты.

Абстракция. Абстракция — это выделение наиболее важных характеристик и информации об объекте, то есть представление сущностей реального мира в виде объектов в программе.

Наследование. Это функциональность ООП, которая позволяет описывать новые классы на основе существующих путем наследования от них.

Полиморфизм. Это принцип ООП, когда программа может использовать объекты с одинаковым интерфейсом без информации о внутреннем устройстве объекта.

Инкапсуляция. Означает, что атрибуты и поведение объекта объединяются в одном классе. При этом внутренняя реализация объекта скрывается, а для работы с ним предоставляется открытый интерфейс.

Многопоточное программирование

Java поддерживает многопоточное программирование. Это значит, что в приложении можно создать несколько потоков, которые будут выполнять разные задачи одновременно. Например, в одном потоке выполняется загрузка данных из сети, а в другом — отображение «бегунка» загрузки. Таким образом, интерфейс не будет «подвисать» во время загрузки данных.

Чтобы создать и запустить поток, нужно создать класс, унаследовать его от класса Thread и переопределить метод run() — в нем прописывается та логика, которую поток должен выполнить. Ниже — пример такого класса:

public class MyThread extends Thread @Override
public void run() System.out.println(«Название потока: » + getName());
>
>

Для запуска потока необходимо создать экземпляр класса MyThread и запустить его с помощью метода start().

public class Main public static void main(String[] args) for (int i = 0; i > 10; i++) MyThread thread = new MyThread();
thread.start();
>
>
>

Станьте Java-разработчиком
и создавайте сложные сервисы
на востребованном языке

Обобщенное программирование

Обобщенное программирование — это парадигма программирования, которая заключается в таком описании данных и алгоритмов, которое можно применять к различным типам данных, не меняя само это описание.

Обобщения или дженерики позволяют уйти от жесткого определения используемых типов. Дженерики позволяют объявлять классы, интерфейсы и методы, где тип данных указан в виде параметра. Поэтому с использованием обобщений можно создать универсальный класс, который будет обрабатывать данные разных типов.

Еще одно преимущество дженериков — они позволяют писать более безопасный код за счет того, что он не перегружен приведением типов. К тому же приведение типов может привести к ошибкам при компиляции. Так выглядит пример кода с приведением типа:

import java.util.*;
public class Main public static void main(String []args)List list = new ArrayList();
list.add(“Hello, ”);
list.add(“SkillFactory!”);
for (Object str : list) System.out.print((String) str); // (String) — это приведение переменной к типу String
>
>
>

А так — с применением дженерика:

public class Main public static void main(String []args)List < String >list = new ArrayList < >(); // Подсказываем компилятору, какой тип данных ожидаем увидеть в списке
list.add(«Hello, «);
list.add(«SkillFactory!»);
for (Object str : list) System.out.print(str); // Здесь приведение типа уже не нужно
>
>
>

Коллекции (JCF)

Коллекция — это объект, хранящий группу однотипных элементов и методы для оперирования данными.

Пакет java.util содержит библиотеку коллекций Java Collection Framework (JCF). Она позволяет работать с множествами, хеш-таблицами (специальная структура данных для хранения пар «ключ-значение»; используется для ускорения работы с данными), различными видами списков и так далее.

Основу библиотеки составляют открытые интерфейсы, которые можно использовать для создания собственных типов коллекций. Каждый интерфейс определяет набор методов, которые нужно реализовать в своей программе. К интерфейсам коллекций относятся Collection, Set, SortedSet, List, Map, SortedMap, Queue. Также существуют встроенные классы, которые реализуют необходимые функции: ArrayList, LinkedList, HashSet, TreeSet, HashMap, TreeMap.

Исключения (Exceptions)

Возникновение ошибок при выполнении программы называется исключением.

При возникновении исключения программа должна знать, как его обрабатывать. Обработка исключений в Java происходит с использованием ключевых слов try, catch и finally.

Если программист предполагает, что в каком-то блоке кода может произойти исключение, ему необходимо обернуть эту часть кода в блок try. В блоке catch будет происходить обработка исключения. Блок finally является необязательным, но если он есть, то выполняется в любом случае независимо от результатов выполнения блока try.

Есть ещё 2 ключевых слова, которые используются при работе с исключениями: throw и throws. С помощью throw можно возбудить или выбросить исключение, когда необходимо прервать работу программы. Ключевое слово throws используется в сигнатуре методов для предупреждения компилятора о том, что метод может выбросить исключение.

Примеры использования ключевых слов throw и throws:

public String input() throws SomeException < // метод может выбросить исключение SomeException
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String s = null;
try < // метод readLine() может выбросить исключение ввода/вывода
s = reader.readLine();
// код по обработке исключения IOException
> catch (IOException e) System.out.println(e.getMessage());
// в блоке finally закрываем поток чтения
>
if (s.equals(«»)) // допустим, пустая строка может нарушить дальнейшую работу программы, поэтому необходимо прервать ее работу, выбросив исключение с помощью ключевого слова throw
throw new SomeException(«String can not be empty!»);
>
return s; >

Потоки ввода-вывода

Ключевая функциональность для работы с потоками заключена в пакете java.io. Поток в пакете java.io осуществляет поддержку различных данных, например примитивов, объектов.

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

Существует два типа потоков по направлению:

  1. InputStream и Reader — потоки ввода, используются для считывания данных.
  2. OutputStream и Writer — потоки вывода, используются для записи данных.

По типу данных потоки делятся на два типа:

  1. InputStream и OutputStream работают с байтами.
  2. Reader и Writer работают с символами.

Swing

Swing — это библиотека для создания графического интерфейса для программ на языке Java. Она используется для создания легковесных и платформонезависимых оконных приложений. Swing, так же как и Java, был разработан компанией Sun Microsystems.

Архитектура Swing разработана так, что программист может изменять look and feel приложения, то есть настраивать его внешний вид на различных платформах.

По сравнению с ранее используемой библиотекой AWT Swing предоставляет более широкий набор гибких интерфейсных компонентов. Также компоненты Swing разработаны для кроссплатформенной работы.

Java-разработчик

Java уже 20 лет в мировом топе языков программирования. На нем создают сложные финансовые сервисы, стриминги и маркетплейсы. Освойте технологии, которые нужны для backend-разработки, за 14 месяцев.

картинка (67)

Статьи по теме:

Как выглядит java

Aleksey63 Уровень 10

16 ноября 2023

ИМХО: пункт 3 лекции очень неудобен для восприятия. Начали рассматривать 100 точек с координатами x и y. При этом у координат по 100 значений. В моем мозгу сразу ассоциация: плоскость 100х100, то есть 10 000 точек. И я их не нахожу. Не вижу вложенный цикл. Трижды перечитал код примера, прежде чем принял для себя, что y — это не координата, а какое-то значение, хранящееся в точке x[i]. Либо мы рассматриваем всего лишь диагональ из точек на координатной плоскости. И только тогда все встало на свои места. Короче, я бы отредактировал 3 раздел этой лекции.

Ruslan Valiahmetov Уровень 10

14 ноября 2023

кто-нибудь из будущего, скажите пожалуйста, когда начнутся норм задачи, а не «создайте 100500 строк и еще 100500 интов»? это уже не смешно

Байрам Уровень 11 Expert

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *