Классы StringBuilder и StringBuffer
Классы StringBuffer и StringBuilder в Java используются, когда возникает необходимость сделать много изменений в строке символов.
В отличие от строк, объекты типа StringBuffer и StringBuilder могут быть изменены снова и снова, оставляя после себя множество новых неиспользуемых объектов.
В Java StringBuilder был введен начиная с Java 5. Основное различие между StringBuffer и StringBuilder такое, что методы StringBuilder не являются безопасными для потоков (несинхронизированные).
Рекомендуется использовать StringBuilder всякий раз, когда это возможно, потому что он быстрее, чем StringBuffer в Java. Однако, если необходима безопасность потоков, наилучшим вариантом являются объекты StringBuffer.
#java
Подписывайтесь на канал 👉@cod_academy
Классы StringBuffer и StringBuilder в Java используются, когда возникает необходимость сделать много изменений в строке символов.
В отличие от строк, объекты типа StringBuffer и StringBuilder могут быть изменены снова и снова, оставляя после себя множество новых неиспользуемых объектов.
В Java StringBuilder был введен начиная с Java 5. Основное различие между StringBuffer и StringBuilder такое, что методы StringBuilder не являются безопасными для потоков (несинхронизированные).
Рекомендуется использовать StringBuilder всякий раз, когда это возможно, потому что он быстрее, чем StringBuffer в Java. Однако, если необходима безопасность потоков, наилучшим вариантом являются объекты StringBuffer.
#java
Подписывайтесь на канал 👉@cod_academy
👍4
Регулярные выражения
Вы уже поняли, что при работе со строками модель re просто необходим. Отлаживать их очень тяжело, но все же необходимо.
В python для этого есть встроенная возможность, вы можете указать как флаг re.DEBUG. По названию видно, что данный flag помогает дебажить регулярные выражения.
Возможно кому-то данный способ может показаться неудобным. Я так же советую к использованию сайт regex101.com. В нем можно сразу создавать и проверять регулярные выражения, что очень удобно.
#python
Подписывайтесь на канал 👉@cod_academy
Вы уже поняли, что при работе со строками модель re просто необходим. Отлаживать их очень тяжело, но все же необходимо.
В python для этого есть встроенная возможность, вы можете указать как флаг re.DEBUG. По названию видно, что данный flag помогает дебажить регулярные выражения.
Возможно кому-то данный способ может показаться неудобным. Я так же советую к использованию сайт regex101.com. В нем можно сразу создавать и проверять регулярные выражения, что очень удобно.
#python
Подписывайтесь на канал 👉@cod_academy
👍1
Работа с файлами
Например, необходимо создать текстовый файл и записать в него строку "Работа с файлами в С++". Для этого необходимо проделать следующие шаги:
1) создать объект класса ofstream;
2) связать объект класса с файлом, в который будет производиться запись;
3) записать строку в файл;
4) закрыть файл.
#cpp
Подписывайтесь на канал 👉@cod_academy
Например, необходимо создать текстовый файл и записать в него строку "Работа с файлами в С++". Для этого необходимо проделать следующие шаги:
1) создать объект класса ofstream;
2) связать объект класса с файлом, в который будет производиться запись;
3) записать строку в файл;
4) закрыть файл.
#cpp
Подписывайтесь на канал 👉@cod_academy
👍1
substring
Метод
#java
Подписывайтесь на канал 👉@cod_academy
Метод
substring() в Java имеет два варианта и возвращает новую строку, которая является подстрокой данной строки. Подстрока начинается с символа, заданного индексом, и продолжается до конца данной строки или до endIndex-1, если введен второй аргумент.#java
Подписывайтесь на канал 👉@cod_academy
👍3
Как удалить дубликаты из списка в python?
Самый простой способ для удаления дубликатов - использование
#python
Подписывайтесь на канал 👉@cod_academy
Самый простой способ для удаления дубликатов - использование
set(), но есть и другие варианты. Например, создание нового массива и сравнение добавляемых значений.#python
Подписывайтесь на канал 👉@cod_academy
👍3
Перегрузка операторов
Ключевое слово operator позволяет изменить работу конкретного оператора с экземплярами класса. Это дает оператору дополнительное значение — "перегружает" его. Компилятор различает разные значения оператора, проверяя типы его операндов.
В примере оператор + перегружается для сложения двух комплексных чисел.
#cpp
Подписывайтесь на канал 👉@cod_academy
Ключевое слово operator позволяет изменить работу конкретного оператора с экземплярами класса. Это дает оператору дополнительное значение — "перегружает" его. Компилятор различает разные значения оператора, проверяя типы его операндов.
В примере оператор + перегружается для сложения двух комплексных чисел.
#cpp
Подписывайтесь на канал 👉@cod_academy
👍2❤1
Список исключений
Выше приведён список контролируемых исключений (Checked Exceptions) в Java, определенных в java.lang.
#java
Подписывайтесь на канал 👉@cod_academy
Выше приведён список контролируемых исключений (Checked Exceptions) в Java, определенных в java.lang.
#java
Подписывайтесь на канал 👉@cod_academy
👍3
Библиотека Flask
Если вы работали с запросами, к примеру на библиотеке request, то знаете, что существуют несколько видов запросов.
К примеру, в браузере при получении страницы это метод GET. Когда вы отправляете пароль и логин серверу (или другие данные) - POST. Кроме этого существуют запросы сугубо для программ, а не для браузера.
Какие есть методы?
Основных 4:
GET — получение ресурса
POST — отправить данные
PUT — обновление данных
DELETE — удаление данных
Flask позволяет обрабатывать данные запросы посредством добавления аргумента methods в декоратор.
#python
Подписывайтесь на канал 👉@cod_academy
Если вы работали с запросами, к примеру на библиотеке request, то знаете, что существуют несколько видов запросов.
К примеру, в браузере при получении страницы это метод GET. Когда вы отправляете пароль и логин серверу (или другие данные) - POST. Кроме этого существуют запросы сугубо для программ, а не для браузера.
Какие есть методы?
Основных 4:
GET — получение ресурса
POST — отправить данные
PUT — обновление данных
DELETE — удаление данных
Flask позволяет обрабатывать данные запросы посредством добавления аргумента methods в декоратор.
#python
Подписывайтесь на канал 👉@cod_academy
👍1
Введение в обработку исключений
Одним из преимуществ C++ перед C является обработка исключений. Исключения - это ненормальные условия, с которыми программа сталкивается во время своего выполнения.
Есть два типа исключений: а) синхронные, б) асинхронные (например, которые находятся вне контроля программы, сбой диска и т. д.). Для этой цели C++ предоставляет следующие специализированные ключевые слова.
try: представляет блок кода, который может вызвать исключение.
catch: представляет блок кода, который выполнится при возникновении определенного исключения.
throw: используется для создания исключения. Также используется для перечисления исключений, которые генерирует функция, но не обрабатывает себя.
#cpp
Подписывайтесь на канал 👉@cod_academy
Одним из преимуществ C++ перед C является обработка исключений. Исключения - это ненормальные условия, с которыми программа сталкивается во время своего выполнения.
Есть два типа исключений: а) синхронные, б) асинхронные (например, которые находятся вне контроля программы, сбой диска и т. д.). Для этой цели C++ предоставляет следующие специализированные ключевые слова.
try: представляет блок кода, который может вызвать исключение.
catch: представляет блок кода, который выполнится при возникновении определенного исключения.
throw: используется для создания исключения. Также используется для перечисления исключений, которые генерирует функция, но не обрабатывает себя.
#cpp
Подписывайтесь на канал 👉@cod_academy
👍1
Как разделить строку на слова?
Легко с помощью метода
#java
Подписывайтесь на канал 👉@cod_academy
Легко с помощью метода
split. Он возвращает массив строк, вычисленных путем разделения переданной строки вокруг переданного регулярного выражения.#java
Подписывайтесь на канал 👉@cod_academy
👍2
Важные методы в Python, которые должен знать каждый python разработчик.
#python
Подписывайтесь на канал 👉@cod_academy
abs() - возвращает модуль переданного параметра.all() - функция возвращает значение True, если все элементы в итерируемом объекте - истинны. В противном случае, она возвращает значение False.any() - функция возвращает True, если какой-либо (любой) элемент в итерируемом объекте является истинным True. В противном случае, any() возвращает значение False.ascii() - возвращает строку, содержащую печатное представление объекта, и экранирует символы, отличные от ASCII, в строке с помощью экранирования \ x, \ u или \ U.bin() - функция преобразует целое число в двоичную строку с префиксом 0b. #python
Подписывайтесь на канал 👉@cod_academy
👍1
Неуязвимого кода не существует. Абсолютно защищённых данных – тоже.
Зато есть способы восстановить информацию после серьёзного сбоя или атаки.
Именно о способах восстановления повреждённых данных мы и поговорим на открытом вебинаре «Создаём бэкапы для Ethereum-блокчейна на Rust»
Вы познакомитесь с принципами хранения и развития данных в блокчейн-системах, увидите, как с помощью Rust эффективно переиспользовать код для разных задач на разных целевых платформах.
Вебинар проведёт Кирилл Федченко, опытный программист на Rust, Python, C++.
Будет интересно и Rust-разработчикам и тем, кто использует другие языки.
23 июля, 19:00 МСК
Бесплатно
➡️ Записаться на событие: https://vk.cc/cyy4lV
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Зато есть способы восстановить информацию после серьёзного сбоя или атаки.
Именно о способах восстановления повреждённых данных мы и поговорим на открытом вебинаре «Создаём бэкапы для Ethereum-блокчейна на Rust»
Вы познакомитесь с принципами хранения и развития данных в блокчейн-системах, увидите, как с помощью Rust эффективно переиспользовать код для разных задач на разных целевых платформах.
Вебинар проведёт Кирилл Федченко, опытный программист на Rust, Python, C++.
Будет интересно и Rust-разработчикам и тем, кто использует другие языки.
23 июля, 19:00 МСК
Бесплатно
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
Как включить все стандартные библиотеки одной командой
Чтобы разом включить в проект все стандартные библиотеки, используйте
Но помните, что:
содержит множество заголовочных файлов, которые, возможно, и не понадобятся в конкретном проекте. А это может привести к увеличению времени компиляции.
#cpp
Подписывайтесь на канал 👉@cod_academy
Чтобы разом включить в проект все стандартные библиотеки, используйте
#include <bits/stdc++.h>. Это особенно полезно в условиях дефицита времени на соревнованиях по программированию.Но помните, что:
#include <bits/stdc++.h>содержит множество заголовочных файлов, которые, возможно, и не понадобятся в конкретном проекте. А это может привести к увеличению времени компиляции.
#include <bits/stdc++.h> не является стандартным заголовочным файлом библиотеки GNU C++. Таким образом, не относящиеся к типу GCC (GNU Compiler Collection) компиляторы могут испытывать затруднения в процессе исполнения. Однако так бывает не часто!#cpp
Подписывайтесь на канал 👉@cod_academy
👍2
Метод Math.pow()
Возводит значение первого аргумента в степень второго аргумента, тем самым позволяет осуществить быстрое возведение в степень любых значений.
Выше рассмотрен пример возведение числа в квадрат и куб.
Заметьте, для вывода на экран целого значения используется "%.0f", так как метод возвращает double значение.
#java
Подписывайтесь на канал 👉@cod_academy
Возводит значение первого аргумента в степень второго аргумента, тем самым позволяет осуществить быстрое возведение в степень любых значений.
Выше рассмотрен пример возведение числа в квадрат и куб.
Заметьте, для вывода на экран целого значения используется "%.0f", так как метод возвращает double значение.
#java
Подписывайтесь на канал 👉@cod_academy
👍1
Функция sum()
Как бы вы решили задачу получения суммы элементов списка без обхода элементов в цикле?
Это можно сделать с помощью стандартной функции
Cинтакс функции
Параметры sum():
iterable - итерируемые типы (list ,dict, tuple, и.т.д.)
start - (необязательно) значение этого параметра прибавляется к уже готовой сумме элементов iterable. По умолчанию значение этого параметра 0.
Возвращаемое значение из sum():
sum() возвращает сумму start и элементов всех последующих элементов.
#python
Подписывайтесь на канал 👉@cod_academy
Как бы вы решили задачу получения суммы элементов списка без обхода элементов в цикле?
Это можно сделать с помощью стандартной функции
sum().Cинтакс функции
sum():
start)Параметры sum():
iterable - итерируемые типы (list ,dict, tuple, и.т.д.)
start - (необязательно) значение этого параметра прибавляется к уже готовой сумме элементов iterable. По умолчанию значение этого параметра 0.
Возвращаемое значение из sum():
sum() возвращает сумму start и элементов всех последующих элементов.
#python
Подписывайтесь на канал 👉@cod_academy
👍2
Алгоритм set_intersection
Создает отсортированную последовательность из элементов, встречающихся в обеих последовательностях – [first1, last1) и [first2, last2).
#cpp
Подписывайтесь на канал 👉@cod_academy
Создает отсортированную последовательность из элементов, встречающихся в обеих последовательностях – [first1, last1) и [first2, last2).
#cpp
Подписывайтесь на канал 👉@cod_academy
Чем различаются JRE, JVM и JDK?
TL;DR: JDK - среда для разработки программ на Java, включающая в себя JRE - среду для обеспечения запуска Java программ, которая в свою очередь содержит JVM - интерпретатор кода Java программ.
☕️ JVM, Java Virtual Machine (Виртуальная машина Java) — основная часть среды времени исполнения Java (JRE). Виртуальная машина Java исполняет байт-код Java, предварительно созданный из исходного текста Java-программы компилятором. JVM может также использоваться для выполнения программ, написанных на других языках программирования.
☕️ JRE, Java Runtime Environment (Среда времени выполнения Java) — минимально-необходимая реализация виртуальной машины для исполнения Java-приложений. Состоит из JVM и стандартного набора библиотек классов Java.
☕️ JDK, Java Development Kit (Комплект разработки на Java) — JRE и набор инструментов разработчика приложений на языке Java, включающий в себя компилятор Java, стандартные библиотеки классов Java, примеры, документацию, различные утилиты.
#java
Подписывайтесь на канал 👉@cod_academy
TL;DR: JDK - среда для разработки программ на Java, включающая в себя JRE - среду для обеспечения запуска Java программ, которая в свою очередь содержит JVM - интерпретатор кода Java программ.
☕️ JVM, Java Virtual Machine (Виртуальная машина Java) — основная часть среды времени исполнения Java (JRE). Виртуальная машина Java исполняет байт-код Java, предварительно созданный из исходного текста Java-программы компилятором. JVM может также использоваться для выполнения программ, написанных на других языках программирования.
☕️ JRE, Java Runtime Environment (Среда времени выполнения Java) — минимально-необходимая реализация виртуальной машины для исполнения Java-приложений. Состоит из JVM и стандартного набора библиотек классов Java.
☕️ JDK, Java Development Kit (Комплект разработки на Java) — JRE и набор инструментов разработчика приложений на языке Java, включающий в себя компилятор Java, стандартные библиотеки классов Java, примеры, документацию, различные утилиты.
#java
Подписывайтесь на канал 👉@cod_academy
👍3
Mодуль cmath
Функции в математическом модуле стандартной библиотеки Python обрабатывают числа с плавающей запятой. Для комплексных чисел библиотека Python содержит модуль cmath.
📌Функция polar():
Эта функция возвращает полярное представление декартовой записи комплексного числа. Возвращаемое значение - это кортеж, состоящий из модуля и фазы.
📌Функция phase():
Эта функция возвращает угол против часовой стрелки между осью x и сегментом, соединяющим точку с исходной точкой. Угол представлен в радианах и находится между π и -π.
📌Функция rect():
Эта функция возвращает декартово представление комплексного числа, представленного в полярной форме, то есть по модулю и фазе.
📌Функция sin():
Эта функция возвращает тригонометрическое соотношение синуса фазового угла, представленного в радианах.
#python
Подписывайтесь на канал 👉@cod_academy
Функции в математическом модуле стандартной библиотеки Python обрабатывают числа с плавающей запятой. Для комплексных чисел библиотека Python содержит модуль cmath.
📌Функция polar():
Эта функция возвращает полярное представление декартовой записи комплексного числа. Возвращаемое значение - это кортеж, состоящий из модуля и фазы.
📌Функция phase():
Эта функция возвращает угол против часовой стрелки между осью x и сегментом, соединяющим точку с исходной точкой. Угол представлен в радианах и находится между π и -π.
📌Функция rect():
Эта функция возвращает декартово представление комплексного числа, представленного в полярной форме, то есть по модулю и фазе.
📌Функция sin():
Эта функция возвращает тригонометрическое соотношение синуса фазового угла, представленного в радианах.
#python
Подписывайтесь на канал 👉@cod_academy
👍2
Для чего нужен аллокатор и как создать свой собственный аллокатор?
Аллокатор это шаблонный класс, который отвечает за выделение памяти и создание объектов. По умолчанию все контейнера используют
В языке c++ имеется так же возможность написать свой аллокатор. У своего алокатора должно быть такое объявление(см картинку).
#cpp
Подписывайтесь на канал 👉@cod_academy
Аллокатор это шаблонный класс, который отвечает за выделение памяти и создание объектов. По умолчанию все контейнера используют
std::allocator<T>. В языке c++ имеется так же возможность написать свой аллокатор. У своего алокатора должно быть такое объявление(см картинку).
#cpp
Подписывайтесь на канал 👉@cod_academy
👍2
Новый CTF-марафон от «Доктор Веб»!
Уже второй год подряд компания организуем CTF-марафон для студентов и молодых IT-специалистов.
CTF-марафон пройдет в онлайне с 00:00 воскресенья 3 ноября и до 23:59 субботы 16 ноября 2024 года. Регистрация уже открыта по ссылке ✅
Победителей ждут ценные призы, а главной наградой за успешное взятие флагов может стать должность вирусного аналитика в компании «Доктор Веб» и возможность решать уже не игровые, а боевые задачи в команде антивирусной лаборатории Dr.Web.
Если вы увлечены вопросами информационной безопасности, хотите по-настоящему проявить себя в этой области и готовы к непростым, но увлекательным задачам — регистрируйтесь, и пусть победит сильнейший!
🔹Подробнее
Уже второй год подряд компания организуем CTF-марафон для студентов и молодых IT-специалистов.
CTF-марафон пройдет в онлайне с 00:00 воскресенья 3 ноября и до 23:59 субботы 16 ноября 2024 года. Регистрация уже открыта по ссылке ✅
Победителей ждут ценные призы, а главной наградой за успешное взятие флагов может стать должность вирусного аналитика в компании «Доктор Веб» и возможность решать уже не игровые, а боевые задачи в команде антивирусной лаборатории Dr.Web.
Если вы увлечены вопросами информационной безопасности, хотите по-настоящему проявить себя в этой области и готовы к непростым, но увлекательным задачам — регистрируйтесь, и пусть победит сильнейший!
🔹Подробнее
❤3👍1
Метод replaceAll()
Заменяет каждую подстроку данной строки, которая соответствует заданному регулярному выражению, с данной заменой, другими словами — метод позволяет заменить слово в строке.
Параметры
#java
Подписывайтесь на канал 👉@cod_academy
Заменяет каждую подстроку данной строки, которая соответствует заданному регулярному выражению, с данной заменой, другими словами — метод позволяет заменить слово в строке.
Параметры
regex — регулярное выражение, которому данная строка должна соответствовать; replacement — строка, которая заменит найденное выражение.#java
Подписывайтесь на канал 👉@cod_academy
👍2