Архив автора: admin

Популярные способы подключения интернета в Одинцовском районе

Для жителей Одинцовского района доступны разные технологии подключения интернета. Узнать о самом популярном способе можно здесь https://altclick.ru/moskovskaya-oblast/odintsovskiy/. Доступ к сети нужен каждому из нас. Интернет – это масса возможностей для развлечений, досуга, работы и учебы. Можно смотреть фильмы, слушать музыку, заниматься серфингом и выполнять ряд других задач. Провайдеры предлагают разные технологии организации доступа к сети.

Прежде чем искать провайдера и оставлять заявку на подключение, нужно подумать, для каких целей он вам нужен. От этого будет зависеть выбор технологии соединения, тарифного плана и скорости передачи данных. Самую высокую скорость предлагают провайдеры оптоволоконного интернета. В этом случае скоростной показатель может достигать 1 Гбит/с. Но далеко не каждый дом может быть подключен к такой сети.

 

Как подключить интернет в Одинцовском районе

Ниже рассмотрим популярные варианты организации доступа к сети:

  • Телефон. Если в доме установлен стационарный телефонный аппарат, абонент может подключиться через эти линии. В районе обязательно должна быть АТС. Технология Dial Up уже ушла в прошлое, сейчас используют чаще ADSL. В доме придется установить модем и сплиттер для разделения сигналов. Преимущества: стабильность связи, невысокая абонентская плата. Но скорость передачи данных устроит не каждого.
  • Wi-Fi от провайдера. Иногда в дачных поселках, коттеджных городках провайдеры устанавливают собственное мощное оборудование и раздают сеть сразу на несколько домов по улице. Многоканальный роутер обеспечивает все устройства стабильной сетью. В этом случае не понадобится дорогое абонентское оборудование. Но нужно учитывать, что скорость и трафик будут ограничены.
  • WiMax. Абоненты могут пользоваться интернетом через радиодоступ. Пользователю понадобится только антенна для приема сигналов, специальный модем. Радиус действия WiMax гораздо больше по сравнению с Wi-Fi. Но размер абонентской платы, а также стоимость подключения подходят не каждому.
  • Спутник. Спутниковая связь работает автономно от наземных коммуникаций. Потребуется покупка, установка, а также настройка антенны-тарелки, ресивера и некоторых других устройств. Настроить самостоятельно оборудование сможет не каждый, поэтому на объект придется приглашать мастера. Преимущества технологии: автономность, универсальность, стабильный сигнал. Минус – высокая стоимость комплекта устройств.

Некоторые интернет провайдеры в Одинцовском районе предлагают уже готовые решения. Это специальные комплекты оборудования для организации беспроводного высокоскоростного интернета. Абонент может пользоваться качественным соединением через сети операторов 3G и 4G.



2022-02-11T13:08:27
Сети

Резервирование роутеров Mikrotik с помощью VRRP

В статье, на примере роутеров Mikrotik, разберём сетевой протокол VRRP предназначенный для резервирования роутеров.





Читать

Рекурсия в Java

Рекурсия в Java — это вызов метода методом внутри метода. Это действие повторяется до тех пор, пока не будет выполнено условие. Метод должен быть методом в классе, отличном от метода в основном классе. Основной класс — это класс, который имеет метод main(). Имя файла Java совпадает с именем основного класса. Статический метод в основном классе все еще можно сделать рекурсивным, но в этой статье это не рассматривается. В этой статье объясняется рекурсия в Java с тремя хорошими примерами.

 

Подсчет целых чисел от нуля

Рассмотрим файл Java с двумя классами: закрытый класс следующим образом:

class AClass {

        void mthd (int no) {

System.out.print(no); System.out.print(' ');

            no = no + 1;

            if (no < 5)

mthd(no);

        }

    }

 

Метод, который будет вызывать сам себя, mthd(). Он имеет параметр «int no». Метод находится в классе AClass. Этот метод считает от 0 до 4. Первая строка метода содержит два утверждения. Первый печатает параметр no. Второй печатает пробел справа от напечатанного параметра. В следующей строке к номеру добавляется 1. Следующая строка представляет собой составной оператор if. Есть условие, которое должно быть выполнено. Условие, которое должно быть выполнено, это когда no достигает 5. Если 5 не достигнуто, «mthd(no);» называет себя без добавления 1 к нему.

Основным классом для этого метода может быть,

public class TheClass {

        public static void main(String[] args) {

            int num = 0;

AClass obj = new AClass();

obj.mthd(num);

System.out.println();

        }

    }

 

Первый оператор в методе main() объявляет целое число, num присваивая ему ноль. Для вызова метода объект должен быть создан из своего класса. Следующий оператор в методе main() создает экземпляр объекта obj из AClass. Оператор after использует этот объект для вызова метода mthd(), передавая ему аргумент num, равный 0. Это начало отсчета. Последний оператор в методе main() печатает новую строку после того, как весь результат был напечатан. Результат:

0 1 2 3 4

 

Рекурсивный метод mthd() вызывается в первый раз из метода main(). После этого он продолжает вызывать себя, пока не будет выполнено условие.

Такой подсчет можно сделать для любого диапазона. Чтобы достичь этого для любого диапазона, начальный номер диапазона должен быть присвоен num. Вместо 5 для условия if в методе следует ввести число сразу после диапазона.

 

Добавление диапазона непрерывных заданных чисел

Рассмотрим цифры:

102030405060

 

Сумма первых 4-х чисел равна 100. То есть: 10+20=30; 30 + 30 = 60; и 60 + 40 = 100. Рекурсивный метод может состоять в добавлении этих чисел к возрастающей сумме до тех пор, пока сумма не станет меньше или равной 100. Чтобы сложить первые пять чисел, рекурсивный метод может состоять в добавлении чисел к возрастающей сумме. sum до тех пор, пока сумма не станет меньше или равна 150.

Стратегия состоит в том, чтобы иметь все эти числа в массиве в методе main(). Затем передайте массив в качестве аргумента рекурсивному методу. Если требуется сложение первых четырех чисел, то при достижении суммы 100 рекурсивный метод должен перестать вызывать себя. Если требуется сложение первых пяти чисел, то при достижении суммы 150 рекурсивный метод должен перестать вызывать себя. Если требуется сложение первых шести чисел, то при достижении суммы 210 рекурсивный метод должен перестать вызывать себя.

Класс для этого рекурсивного метода может быть:

    class AClass {

        int sum = 0, i = 0;

        void mthd (int[] arry) {

            sum = sum + arry[i];= i + 1;

            if (sum < 100)

mthd(arry);

        }

    }

 

Это для сложения первых четырех чисел. В классе есть два поля: sum и i. i предназначен для перебора массива, начиная с индекса 0. Первый оператор рекурсивного метода, mthd(), добавляет следующее число к сумме, которая изначально равна нулю. Следующий оператор увеличивает i на 1 для следующего индекса массива следующего вызова. Оператор после является составным оператором if. Условие здесь — сумма не должна быть выше 100. Итак, при каждом вызове того, что сумма не до 100 (или выше), метод вызывается снова, передавая тот же массив. В этой ситуации условие находится в конце реализации метода.

Класс main() для этого может быть:

public class TheClass {

        public static void main(String[] args) {

int[] arr = new int[]{102030405060};

AClass obj = new AClass();

obj.mthd(arr);

System.out.println(obj.sum);

        }

    }

 

Первый оператор в методе main() создает экземпляр массива с его элементами. Второй оператор создает экземпляр объекта для AClass. Оператор после вызывает рекурсивный метод, передавая массив в качестве аргумента. Это первый вызов рекурсивного метода. После этого метод будет вызывать сам себя до тех пор, пока не будет достигнута необходимая сумма. Последний оператор печатает окончательную сумму. Выход для этого случая равен 100.

Факториал

Факториал 0, записанный как 0!, равен 1. Факториалы 5, 4, 3, 2, 1 следующие:

Factorial of 5 = 5 X 4 X 3 X 2 X 1 X 0! = 120



Factorial of 4 = 4 X 3 X 2 X 1 X 0! = 24



Factorial of 3 = 3 X 2 X 1 X 0! = 6



Factorial of 2 = 2 X 1 X 0! = 2



Factorial of 1 = 1 X 0! = 1

 

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

Класс для рекурсивного метода может быть:

    class AClass {

        int mthd (int no) {

          if (no == 1)      

            return 1;

          else      

return(no * mthd(no-1));    

        }

    }

 

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

Результат получается, когда все умножение сделано. Возвращаемое выражение здесь является вызовом метода. Его аргумент является произведением числа и рекурсивного метода.

Предположим, что число, факториал которого нужен, равно 5, тогда аргумент первого обратного вызова будет:

5 X mthd(4)

 

Это выражение будет зарезервировано в памяти, и следующий вызов будет

5 X 4 X mthd(3)

 

Это выражение будет зарезервировано в памяти, и следующий вызов будет

5 X 4 X 3 X mthd(2)

 

Это выражение будет зарезервировано в памяти, и следующий вызов будет

5 X 4 X 3 X 2 X mthd(1)

 

Теперь mthd(1) возвращает 1 из-за оператора if-part «if (no == 1) return 1;», в результате чего

5 х 4 х 3 х 2 х 120

 

для окончательного возвращаемого значения.

Основным классом для этого может быть:

public class TheClass {

        public static void main(String[] args) {

AClass obj = new AClass();

            int ret = obj.mthd(5);

System.out.println(ret);

        }

    }

 

С аргументом 5 для первого вызова в методе main() окончательное возвращаемое значение равно 120.

 

Вывод

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



2022-02-09T22:41:39
Java

Как обрезать строку в Java

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

 

Как обрезать лишние пробелы из строки с помощью Java

Мы инициализируем публичный класс, в котором будет написан весь код, как показано ниже:

public class StringTrim {

………

}

 

Для этого примера в основной функции мы определили некоторый текст в java с некоторыми дополнительными пробелами, которые мы собираемся обрезать в более позднем коде.

String str1 ="        Эта строка содержит дополнительные пробелы.       ";

 

Если вы хотите найти общую длину строки, вы можете сделать это, набрав:

int n=str1.length();

 

Теперь мы собираемся отобразить строку вместе с ее длиной, как показано ниже.

System.out.println("Строка: "+ str1);

System.out.println("Длина: "+ n);

 

В Java есть встроенная функция trim(), которую можно использовать для обрезки ненужного пробела в строке, и для нашего кода мы можем использовать ее, набрав:

String str2=str1.trim();

n=str2.length();

 

В приведенном выше коде строка хранится в переменной «str1», поэтому мы собираемся обрезать ее, набрав str1.trim(), а затем сохранив результат в новой переменной «str2» . Теперь, после обрезки, мы также собираемся найти новую длину строки, и для этого мы использовали функцию str2.length() и сохраняем результат внутри переменной «n» . После этого мы также собираемся отобразить новый результат на экране с помощью функции System.out.println() :

System.out.println("После обрезки, строка: "+ str2 );

System.out.println("Длина обрезанной строки: "+ n);

 

Полный код:

public class StringTrim {

    public static void main(String[] args) {

        System.out.println("Пример обрезки строки n");

        //Объявить строку

        String str1 ="        Эта строка содержит дополнительные пробелы.       ";

        int n=str1.length();    //Эта строка возвращает длину строки в переменную n

        System.out.println("Строка: "+ str1);

        System.out.println("Длина: "+ n);

        String str2=str1.trim();

        n=str2.length();

        System.out.println("После обрезки, строка: "+ str2 );

        System.out.println("Длина обрезанной строки: "+ n);

        //Все пробелы, такие как пробел, символ новой строки (n), tab (t)

        //которые присутствуют в начале или в конце строки, удаляются.

    }  

}

 

Терминал в операционной системе Linux обеспечивает простейший способ реализации и выполнения кода с использованием языка программирования Java. Во-первых, вам нужно создать java-файл с помощью терминала, набрав:

$ nano StringTrim.java

 

Следующим шагом является написание и сохранение кода в файле Java.

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

$ sudo apt install default-jdk

 

После сохранения файла вам нужно сначала скомпилировать его, а затем вы можете выполнить его, набрав:

$ javac StringTrim.java

$ java StringTrim

Вывод

Обрезка строки — это встроенная функция, доступная в библиотеке Java, используемая для удаления лишнего пробела из строки. Чтобы сделать строки более четкими и краткими, вы можете использовать встроенную функцию Java с именем trim(), которую мы объяснили в этой статье. Эта статья представляет собой подробное руководство по использованию функции Java Trim() для изменения строк.



2022-02-09T22:36:20
Java

Архитектура JVM (виртуальная машина Java) | Объяснение

JVM — это абстрактная машина, которая используется для выполнения программ Java. В Java исходный код преобразуется в байт-код, который после дальнейшего преобразования в машинный код передается в память виртуальной машиной Java. Короче говоря, JVM предоставляет среду выполнения для выполнения байт-кода Java, что делает его компонентом среды выполнения Java (JRE). В целом, JVM отвечает за загрузку, связывание и инициализацию.

 

JVM-архитектура

Внутренняя архитектура виртуальной машины Java состоит из трех основных частей.

  1. Загрузчик классов
  2. Область памяти
  3. Исполнительный механизм

 

Вот визуальное представление архитектуры JVM.

JVM-архитектура

 

Ниже подробно описаны все части виртуальной машины Java.

 

1. Загрузчик классов

Загрузчик классов в JVM относится к подсистеме, отвечающей за загрузку файлов. Он загружает Java-программу каждый раз, когда мы запускаем Java-программу. Java предоставляет следующие загрузчики классов.

а. Bootstrap ClassLoader

Суперкласс Extension ClassLoader, отвечающий за загрузку файла rt.jar.

б. Extension ClassLoader

Дочерний элемент Bootstrap Classloader и родитель System/Application ClassLoader, расширение classloader загружает JAR-файлы, которые сохраняются в каталоге.

в. Система/приложение ClassLoader

Этот загрузчик классов загружает файлы классов из пути к классам и является дочерним элементом Extension ClassLoader.

 

2. Область памяти

Область памяти JVM состоит из следующих частей.

а. Область метода

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

б. куча

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

в. Стеки

Стек отвечает за хранение кадров, локальных переменных и частичных результатов. Он играет важную роль в вызове метода и возврате метода. Каждый раз, когда создается поток, одновременно создается частный стек JVM для этого конкретного потока, и каждый раз при вызове метода создается новый фрейм, и как только вызов завершается, фрейм уничтожается.

д. Регистры ПК

Он отвечает за хранение адресов во время выполнения инструкций JVM.

е. Стеки нативных методов

Он отвечает за хранение всех собственных методов, необходимых в приложении.

 

3. Исполнительный механизм

Исполнительный механизм состоит из следующего.

а. Устный переводчик

Он выполняет инструкции после чтения потока байт-кода.

б. Компилятор Just-in-time (JIT)

JIT повышает производительность за счет одновременной компиляции частей байт-кода с аналогичными функциями, что в дальнейшем сокращает общее время компиляции.

c.Сборщик мусора

Он используется для сбора объектов, на которые нет ссылок, и их удаления для освобождения памяти.

 

Собственный интерфейс метода

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

 

Библиотеки методов

Он состоит из собственных библиотек (C, C++), необходимых для Execution Engine.

 

Вывод

Виртуальная машина Java (JVM) — это абстрактная машина, созданная для выполнения программ Java. Архитектура JVM состоит из трех основных частей: загрузчика классов, области памяти и механизма выполнения. Область памяти и исполнительный механизм также состоят из некоторых частей, которые имеют разные функциональные возможности. В этом руководстве объясняется архитектура виртуальной машины Java (JVM) с выделением функций ее различных компонентов.



2022-02-09T22:25:38
Java

Как разделить строку в MySQL

В MySQL существует множество встроенных функций для выполнения различных типов операций со строковыми данными. Иногда требуется разделить строковые данные на основе любого разделителя при выполнении запроса SELECT. Функция SUBSTRING_INDEX() используется для разделения строковых данных, полученных запросом, на основе определенного разделителя. В этой статье обсуждается способ использования этой функции в запросе SELECT.

 

Синтаксис SUBSTRING_INDEX():

Функция SUBSTRING_INDEX() принимает три аргумента и возвращает значение подстроки. Синтаксис функции SUBSTRING_INDEX() представлен ниже:

string SUBSTRING_INDEX(string, delimiter, count);

 

  • Первый аргумент — это строковое значение, которое будет разделено.
  • Второй аргумент — это разделитель, который будет использоваться для разделения строкового значения.
  • Третий аргумент определяет количество вхождений разделителя. Оно может быть положительным или отрицательным. Если значение третьего аргумента положительное, то значение подстроки будет возвращено слева. Если значение третьего аргумента отрицательное, значение подстроки будет возвращено справа.

 

Разделить строку с помощью функции SUBSTRING_INDEX():

В этой части статьи показаны различные варианты использования функции SUBSTRING_INDEX().

 

Пример 1: Разделить строку на основе положительного значения счетчика

В этой части руководства показаны четыре варианта использования функции SUBSTRING_INDEX() с положительным значением счетчика и другим разделителем.

Запустите следующую инструкцию SELECT, которая использует функцию SUBSTRING_INDEX() с положительным значением счетчика, 1, и пробелом в качестве разделителя. Основная строка «Welcome to AndreyEx» состоит из трех слов. Таким образом, в выводе будет напечатано первое слово строки.

SELECT SUBSTRING_INDEX('Welcome to AndreyEx', ' ', 1);

 

Запустите следующую инструкцию SELECT, которая использует функцию SUBSTRING_INDEX() с положительным значением счетчика, 2, и символом «o» в качестве разделителя. Основная строка «Welcome to AndreyEx» содержит два раза символ «o». Второй раз «o» появилось во втором слове «to». Таким образом, вывод будет «Welcome to».

SELECT SUBSTRING_INDEX('Welcome to AndreyEx', 'o', 2);

 

Выполните следующую инструкцию SELECT, которая использует функцию SUBSTRING_INDEX() с положительным значением счетчика, 1, и строкой ‘to’ в качестве разделителя. Основная строка «Welcome to AndreyEx» содержит строку «to» один раз. Таким образом, вывод будет «Welcome».

SELECT SUBSTRING_INDEX('Welcome to AndreyEx', 'to', 1);

 

Выполните следующую инструкцию SELECT, которая использует функцию SUBSTRING_INDEX() с положительным значением счетчика, 3, и строкой ‘to’ в качестве разделителя. Основная строка «Welcome to AndreyEx» содержит строку «to» только один раз. Таким образом, основная строка будет возвращена на выходе.

SELECT SUBSTRING_INDEX('Welcome to AndreyEx', 'to', 3);

 

Пример 2: Разделить строку на основе отрицательного значения счетчика

В этой части руководства показаны три варианта использования функции SUBSTRING_INDEX() с отрицательным значением счетчика и другим разделителем, которые были показаны в этой части статьи.

Выполните следующую инструкцию SELECT, в которой используется функция SUBSTRING_INDEX() с отрицательным значением счетчика, -1, и пробелом в качестве разделителя. Основная строка «Welcome to AndreyEx» состоит из трех слов. Итак, последнее слово строки будет напечатано в выводе для отрицательного значения:

SELECT SUBSTRING_INDEX('Welcome to AndreyEx', ' ', -1);

 

Выполните следующую инструкцию SELECT, которая использует функцию SUBSTRING_INDEX() с отрицательным значением счетчика, -2, и символом «e» в качестве разделителя. Основная строка «Welcome to AndreyEx» содержит символ «e» только один раз. Таким образом, вывод будет «lcome toAndreyEx »:

SELECT SUBSTRING_INDEX('Welcome to AndreyEx', 'e', -2);

 

Выполните следующую инструкцию SELECT, в которой используется функция SUBSTRING_INDEX() с отрицательным значением счетчика, -2, и строкой «in» в качестве разделителя. Основная строка «Welcome to AndreyEx» содержит два раза строку «yE». Таким образом, в выводе будет возвращена подстрока ‘ Andrex’.

SELECT SUBSTRING_INDEX('Welcome to AndreyEx', 'in', -2);

 

Пример 3: Разделить строковое значение таблицы

Вы должны создать таблицу с данными в базе данных MySQL, чтобы проверить функцию SUBSTRING_INDEX() для данных таблицы.

Выполните следующий запрос, чтобы создать базу данных с именем test_db:

CREATE DATABASE test_db;

 

Выполните следующую инструкцию, чтобы использовать базу данных test_db в качестве текущей базы данных:

USE test_db;

 

Выполните следующий запрос, чтобы создать таблицу клиентов с четырьмя полями:

CREATE TABLE customers(

id INT NOT NULL PRIMARY KEY,

name VARCHAR(30) NOT NULL,

email VARCHAR(50),

contact_no VARCHAR(15));

 

Выполните следующий запрос, чтобы вставить три записи в таблицу клиентов :

INSERT INTO `customers` (`id`, `name`, `email`, `contact_no`) VALUES

('001', 'Andrey Ex', 'info@andreyex.ru', '+8 000 00 00 000'),

('002', 'Maxs Destroyer', 'Max***@yandex.com', '+8 000 00 00 000'),

('003', 'Alex Annihilator', 'Alex***@yandex.com', '+8 000 00 00 000');



Выполните следующую команду, чтобы прочитать все записи таблицы клиентов:

SELECT * FROM customers;

 

Поле имени содержит имя и фамилию. Поле contact_no содержит номер мобильного телефона с кодом страны. Имя и номер мобильного телефона без кода страны можно прочитать из таблицы с помощью функции SUBSTRING_INDEX(). В следующем запросе SELECT первое имя будет получено с использованием разделителя пробела и 1 в качестве значения счетчика в функции SUBSTRING_INDEX(), а номер мобильного телефона без кода страны будет получен с использованием кода страны в качестве разделителя и -1 в качестве значения счетчика в функции SUBSTRING_INDEX():

SELECT

id, SUBSTRING_INDEX(name,' ',1) AS `First Name`, email, SUBSTRING_INDEX(contact_no,'+88',-1) AS Phone

FROM customers;

 

Вывод:

Различные варианты использования функции SUBSTRING_INDEX() с использованием разных значений аргументов обсуждались в этом руководстве с использованием нескольких примеров. Мы надеемся, что примеры в этой статье помогут пользователям MySQL узнать об использовании функции SUBSTRING_INDEX() и правильно применить ее в запросе SELECT.



2022-02-08T16:25:16
MariaDB