Java Array. Массивы в Java. Java для начинающих
Массив (англ. array) представляет собой мощный инструмент, позволяющий работать с большим количеством данных. Очевидно, что если вам в процессе работы вашего кода где-то нужно сохранить, к примеру, 100 значений, то делать для этого такое же количество переменных как минимум неразумно. Массив позволяет хранить большое количество значений под одним именем и обращаться к ним по соответствующему индексу. Понятие массивов является краеугольным камнем в изучении курса Java для начинающих. Ведь они являются основой для многих структур данных.
Поскольку Java это, прежде всего, ООП, по сравнению с массивами в других языках программирования java array имеет одну отличительную особенность – они представляются в виде объектов. Помимо прочих преимуществ, это избавляет от нужды следить за очисткой памяти, поскольку она освобождается автоматически.
Создание и манипуляции одномерными массивами
Одномерный массив представляется собой классический Java array и является совокупностью связанных общим именем элементов, каждому из которых соответствует определенный индекс. Способ объявления массива приведен на рисунке ниже.
Вначале объявляется тип Java array, который определяет тип значений, хранящихся в нем. Это может быть любой допустимый в Java тип данных. Далее идут имя массива и квадратные скобки, сообщающие компилятору, что данная переменная является массивом. Обратите внимание на важный факт. Квадратные скобки можно ставить как после базового типа массива, так и после имени массива. После знака равенства указывается оператор new, инициирующий выделение памяти под массив (так же, как и в случае с объектами), тип элементов, которые будут храниться в нем (должен быть совместим с базовым типом, объявленным ранее), и, наконец, их количество, указанное в квадратных скобках.
Нумерация элементов в Java array начинается с 0. Так, индекс первого элемента в данном массиве будет равен 0, а шестого – 5. Чтобы обратиться к конкретному элементу массива, например, пятому, достаточно указать имя массива и индекс элемента в квадратных скобках рядом с именем. Таким образом можно как присваивать значение элементу, так и извлекать его. Однако следует быть внимательным, поскольку если передать индекс, по которому не существует элемента, то возникнет ошибка.
Многомерные массивы в Java
Многомерные массивы представляют собой ряды одномерных, на которые ссылаются элементы других массивов. Иными словами, это массивы массивов. Наиболее простыми среди них являются двумерные. На их примере мы и попытаемся разобраться с понятием. Для наглядности на рисунке ниже приведены синтаксис и схема, описывающая структуру двумерного массива.
Как видим, синтаксис не особо отличается от одномерных массивов. Давайте разберем структуру. В первых скобках мы выделили место под 5 элементов. Эти элементы являются ничем иным как ссылками на отдельные массивы. При этом размер каждого из них определен числом во вторых скобках. По сути, аналогом двумерных массивов в математике являются матрицы. Обратите внимание, что помимо элементов, в памяти выделяется отдельное место, где хранится значение длины массива (length). Как правило, работа с многомерными массивами осуществляется посредством вложенных циклов for.
Нерегулярные массивы
Двумерный массив является массивом массивов. Это мы уже выяснили. Но могут ли массивы, содержащиеся в нем, иметь разную длину? Ответ – да, могут. Для этого в Java предусмотрена возможность объявлять двумерный массив специальным образом. К примеру, мы хотим создать двумерный массив, который хранил бы в себе три одномерных массива длиной 2, 3 и 4 соответственно. Объявляется он следующим образом:
intarr[][] = newint[3][];
Обратите внимание, что мы не указали число во вторых скобках. Определение размера массивов в arr делается так:
arr[0] = new int[2];
arr[1] = new int[3];
arr[2] = newint[4];
Обращаясь к элементу под индексом 0, указывающему на первый массив, мы объявляем его с размерностью 2. Под элементом с индексом 1 будет храниться массив размерностью 3, и так далее. Все довольно просто.
Альтернативный синтаксис объявления java array
Инициализировать массивы можно и непосредственно при их создании. Это довольно просто.
Обратите внимание на объявление массивов jerseyNumber и playerName.
В случае с двумерными массивами данное объявление выглядит так:
int[][] arr = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
}
Для этого вместо оператора new открываются фигурные скобки, в которых через запятую идет перечисление всех элементов. Java в этом случае автоматически выделяет память под них и индексирует их соответствующим образом.
Вспомогательный класс Arrays
Для работы с такими сущностями, как массивы в Java, в пакете java.util имеется специальный класс Arrays, который предоставляет множество статических методов, значительно облегчающих операции с ними. Перечень основных методов представлен на рисунке ниже.
Разберем некоторые самые полезные Java array методы:
— copyOf (массив, длина) – возвращает копию переданного массива соответствующей длины. Если переданная длина больше оригинального массива, то все «лишние» элементы заполняются значением по умолчанию (0, если простой тип, и null , если ссылочный).
— copyOfRange (массив, первый индекс, последний индекс) – не указанный на рисунке, но полезный метод. Он копирует часть переданного массива, определенную соответствующими индексами, начиная с первого и заканчивая последним.
— sort (массив) – сортирует элементы массива по возрастанию.
— fill (массив, значение) – заполняет переданный массив соответствующим значением.
— binarySearch (массив, значение) – возвращает индекс, под которым элемент с соответствующим значением находится в переданном отсортированном массиве. Если же такой элемент отсутствует, то возвращается отрицательное число.
Поскольку методы статические, то для их вызова не требуется создавать экземпляр класса Arrays. Они вызываются напрямую из него: Arrays.sort(arr).
Заключение
Мы рассмотрели наиболее важные аспекты относительно массивов, и для тех, кто только приступает к изучению Java для начинающих, этого хватит для базового понимания такой сущности, как массив, и основных приемов работы с ним. Конечно, практика даст больше понимания работы данного инструмента. Поэтом не поленитесь сделать несколько упражнений, манипулируя массивами различными способами.
Вспомогательный класс Array Java используется уже в «боевых» условиях, поэтому для начала рекомендуется учиться производить все основные операции с массивами вручную.
Массивы. Часть 4 – практика работы с массивами.
Теперь еще немного попрактикуемся с массивами, рассмотрим некоторые методы из стандартных библиотек JDK, а так же обсудим некоторые моменты, которые остались за рамками предыдущих постов.
В стандартной библиотеке JDK существует класс java.util.Arrays содержащий методы для работы с массивами. Мы тут рассмотрим конечно далеко не все, а лишь некоторые, но ссылка у вас уже есть, так что все остальное можете изучить сами.
Сперва еще раз затронем тему ссылок. Разберем простой пример сравнения двух массивов:
int
[] a = { 1, 2 };int[] b = { 1, 2 };
println(«a==b is » + (a == b)); // сравнивает ссылки
println(«a. equals(b) is » + a.equals(b)); // сравнивает ссылки
Хотя содержимое массивов a и b равно, но если мы просто сравним a==b, то результатом будет false, поскольку в данном случае произойдет сравнение ссылок, которые будут разными, так как указывают на разные объекты. Метод equals существует для многих классов Java и как правило он сравнивает содержимое этих объектов, но для массивов он почему-то тоже сравнивает ссылки.
Для сравнения одномерных массивов существует метод Arrays.equals, который сравнивает содержимое массивов. Для сравнения многомерных массивов есть метод Arrays.deepEquals.
Метод
Arrays.equals(a, b)
в результате сравнения массивов а и b выдаст true.
Для копирования одномерного массива есть метод Arrays.copyOf, к сожалению, для многомерных массивов такого метода нет. По существу, если посмотреть код данного метода, он использует системный метод java.lang.System.arraycopy, который кстати сказать, работает очень быстро, но к сожалению тоже применим только для одномерных массивов.
С методом Arrays.copyOf мы уже сталкивались, когда рассматривали программу сортировки одномерного массива Array03.java. Методы Arrays.toString и Arrays.deepToString преобразуют одномерные и многомерные массивы соответственно в строку, более менее удобную для вывода на консоль. С ними мы уже сталкивались в предыдущем посте.
Метода Arrays.sort сортирует одномерный массив, метода для сортировки многомерных массивов в стандартной библиотеке Java нет.
Метод Arrays.binarySearch ищет в одномерном массиве заданное значение и возвращает его индекс.
Вообще класс Arrays содержит достаточно много полезных методов, поэтому, прежде чем писать свой, можно заглянуть в него и посмотреть а нет ли уже нужного.
Теперь немножко практики чтобы закрепить все вышесказанное:
Данная программа может сгенерировать следующий вывод:
Тут все просто, поэтому идем сразу дальше к методу java.lang.System.arraycopy. Он очень интересен, так как работает очень быстро, быстрее чем копирование при помощи цикла for. Рассмотрим программу копирования массива состоящего из 10 миллионов значений int, каждый элемент массива содержит значение типа int равное индексу данного элемента. Даже на заполнение данного массива значениями требуется некоторое время. Далее происходит сортировка циклом for и методом java.lang.System.arraycopy. И выводится время затраченное в обоих методах. Как говорится почувствуйте разницу.
Данная программа может сгенерировать такой вывод (зависит от мощности вашего компьютера):
При запуске этой программы, может показаться, что она немного подзависла. Но терпение господа! Заполнить массив 10 миллионами значений и потом их еще два раза скопировать – это занимает время.
Еще стоит упомянуть о возможности передавать массивы в методы. Хоть пока мы методы и не рассматривали, так как не рассматривали классы, но все же поскольку это связано с массивами, то рассмотрим тут. Если что-то не понятно, то просто намотайте на ус и просто имейте в виду что есть такая возможность как передача в метод переменного количества аргументов (Varargs). Этот синтаксис стал доступен а Java 5. Так же стоит отметить, что данный синтаксис применим только к одномерным массивам.
Для примера рассмотрим метод возвращающий максимальное число из переданного в него одномерного массива чисел.
В строке 17 описан метод без использования синтаксиса Varargs. В строке 24 в описании метода используется синтаксис Varargs. Соответственно и вызываются эти методы по разному (строки 9 и 13 соответственно), хотя и выполняют абсолютно одну и ту же задачу, просто в случае использования синтаксиса Varargs код более читаем и понятен.
По существу в методе max_new numbers это тот же одномерный массив чисел и соответственно с ним можно работать как с массивом.
Поскольку классы и методы мы еще не изучали я немного поясню данный код.
Метод main() заканчивается на строке 15, то есть выполнение программы заканчивается на этой строке.
После строки 15 идет объявление методов max_old и max_new, которые вызываются в строках 9 и 13 соответственно.
Данная программа генерирует следующий вывод:
Отметим две важные особенности этой программы. Во-первых, как уже было сказано, внутри метода max_new() переменная numbers действует как массив. Это обусловлено тем, что numbers является массивом. Синтаксическая конструкция … просто указывает компилятору, что метод будет использовать переменное количество аргументов, и что эти аргументы будут храниться в массиве, на который ссылается переменная numbers.
Метод max_new() может вызываться с различным количеством аргументов, в том числе, и вовсе без аргументов. Аргументы автоматически помещаются в массив и ссылка на него передается переменной numbers. В случае отсутствия аргументов длина массива равна нулю.
Наряду с параметром переменной длины массив может содержать “нормальные” параметры. Однако параметр переменной длины должен быть последним параметром, объявленным в методе. Например, следующее объявление метода вполне допустимо:
int
doIt(int a, int b, double c, int… vals)В данном случае первые три аргумента, указанные в обращении к методу doIt() , соответствуют первым трем параметрам. Все остальные аргументы считаются принадлежащими параметру vals.
Помните, что параметр vararg должен быть последним. Например, следующее объявление записано неправильно:
int
doIt(int a, int b, double c, int… vals, boolean stopFlag) // Ошибка!В этом примере предпринимается попытка объявления обычного параметра после параметра типа vararg, что недопустимо.
Существует еще одно ограничение, о котором следует знать: метод должен содержать только один параметр типа varargs. Например, следующее объявление также неверно:
int
doIt(int a, int b, double c, int… vals, double… morevals) // Ошибка!Попытка объявления второго параметра типа vararg недопустима.
Рассмотрим еще одну простую программу с varargs представленную справа.
В строке 9 происходит вызов метода varArgs, без аргумента переменной длины, то есть он отсутствует.
В строке 10 в varargs передан один аргумент, ав строке 12 три.
Так же, как видите, как аргумент varargs можно передавать и одномерный массив (строка 15).
В varargs можно передать и многомерный массив, но из него будет взято только первое измерение – первый индекс.
Данная программа сгенерирует следующий вывод:
Я думаю сразу следует рассказать и о возможности перегрузки методов использующих varargs и подводные камни которые могут при этом быть, хотя сейчас, возможно, вам и не понятно, что такое перегрузка методов, но все же стоит завязать узелок на память.
Если сказать по простому, то перегрузка методов, это объявление двух или более методов с одинаковым названием, но разным количеством и/или разными типами данных принимаемых аргументов. Это позволяет использовать одно название метода, но передавать туда аргументы разных типов данных и/или разное количество аргументов. Лучше все это посмотреть на примере и тогда все станет более или менее ясно.
В строках с 9 по 14 происходит вызов перегруженного метода varArgs.
Строка 11 содержит ошибку, так как нет метода varArgs, который бы принимал как аргументы строку и varargs параметры типа double. Это строку я вставил для пущего понимания происходящего.
С 17 строки идет объявление перегруженного метода varArgs.
Обратите пристальное внимание на то, какие аргументы принимает данный перегруженный метод и как он вызывается. Особенно на строку 23. В ней не используется varargs!
Хотя сейчас это может быть и не особо понятно, но на подкорочке пусть будет.
Программа генерирует следующий вывод:
На заметку! Метод, поддерживающий varargs, может быть перегружен также методом, который не поддерживает эту функциональную возможность (строка 23). Например, в приведенной программе метод varArgs() перегружен методом varArgs(int numbers). Эта специализированная версия вызывается только при наличии одного аргумента int. В случае передаче методу двух и более аргументов int программа будет использовать varargs-версию метода varArgs(int… numbers) определенную в строке 27.
При перегрузке метода, принимающего аргумент переменной длины, могут случаться непредвиденные ошибки. Они связаны с неопределенностью, которая может возникать при вызове перегруженного метода с аргументом переменной длины.
Например, рассмотрим следующую программу:
Вызов метода varArgs в строке 16 вызовет ошибку компиляции. Поскольку параметр типа vararg может быть пустым, этот вызов может быть преобразован в обращение к varArgs(int…), varArgs(double…) или varArgs(boolean…). Все варианты допустимы. Поэтому вызов принципиально неоднозначен.
Если же мы закомментируем допустим описание методов для double… и boolean… , а так же их вызовы и оставим только описание метода int… и его вызов с параметрами и без то все откомпилируется и будет работать нормально.
В данном случае программа сгенерирует следующий вывод:
Рассмотрим еще один пример неопределенности. Следующие перегруженные версии метода varArgs() изначально неоднозначны, несмотря на то, что одна из них принимает обычный параметр:
static
void varArgs(int … v)static void varArgs(int n, int … v)
Хотя списки параметров метода varArgs() различны, компилятор не имеет возможности разрешения следующего вызова:
varArgs
(1)Должен ли он быть преобразован в обращение к varArgs(int…) с одним аргументом переменной длины или в обращение к varArgs(int, int…) без аргументов переменной длины? Компилятор не имеет возможности ответить на этот вопрос. Таким образом ситуация неоднозначна.
Из-за ошибок неопределенности, подобных описанным, в некоторых случаях придется пренебрегать перегрузкой и просто использовать два различных имени метода. Кроме того, в некоторых случаях ошибки неопределенности служат признаком концептуальных изъянов программы, которые можно устранить путем более тщательного построения решения задачи.
Ну и на последок небольшой пример программы, которая генерирует двумерный массив с переменной длиной строк, заполняет его числами и затем сортирует и выводит все это на консоль.
Программа может сгенерировать такой вывод:
За сим с массивами пока заканчиваем, но мы с ними еще не раз встретимся.
Объявление, определение и доступ к массиву [обновлено]
Java, один из самых популярных языков программирования в мире, является неотъемлемой частью набора инструментов любого профессионала в области веб-разработки и разработки приложений. Хотя есть много компонентов и концепций для понимания этого мощного языка, в этой статье мы поговорим о массивах в Java. Массивы — это простая, но важная концепция программирования на Java. Являетесь ли вы опытным программистом или новичком, вы неизбежно будете использовать массивы почти во всех аспектах программирования на Java.
Что такое массив в Java?
Массив относится к структуре данных, которая содержит однородные элементы. Это означает, что все элементы массива имеют один и тот же тип данных. Возьмем пример:
Это массив из семи элементов. Все элементы целые и однородные. Зеленое поле под массивом называется индексом, который всегда начинается с нуля и доходит до n-1 элементов. В данном случае, поскольку элементов семь, индекс от нуля до шести. Существует три основных свойства массива:
- Динамическое выделение: в массивах память создается динамически, что уменьшает объем памяти, необходимый для кода.
- Элементы хранятся под одним именем: Все элементы хранятся под одним именем. Это имя используется каждый раз, когда мы используем массив.
- Занимает смежную позицию: элементы в массивах хранятся в смежных позициях. Это позволяет пользователю легко находить расположение его элементов.
Преимущества массивов в Java
- Массивы Java позволяют случайным образом обращаться к любому элементу с помощью индексов
- Легко хранить большие наборы данных и управлять ими
Недостатки массивов в Java
- Размер массива не может быть увеличен или уменьшен после его объявления — массивы имеют фиксированный размер
- Java не может хранить разнородные данные. Он может хранить только один тип примитивов
Теперь, когда мы поняли, что такое массивы в Java, давайте посмотрим, как объявляются и определяются массивы в Java.
Определить массив в Java
Массивы в Java легко определить и объявить. Во-первых, мы должны определить массив. Его синтаксис:
Здесь тип int, String, double или long. Var-name — это имя переменной массива.
Объявление массива в Java
Это два способа объявления массива в Java. Вы можете присвоить значения элементам массива следующим образом:
Мы объявили массив обр целочисленного типа. Размер массива равен 5, что означает, что он может состоять из пяти элементов. Массиву присваиваются элементы для каждой позиции индекса. Мы запустим цикл for для печати элементов массива. Переменная-счетчик «i» используется для увеличения позиции индекса после проверки того, меньше ли текущая позиция индекса длины массива.
После выполнения этой программы вывод, который вы получите, используя этот массив, будет следующим:
Теперь, когда вы знаете, как создавать и использовать массивы в Java, давайте рассмотрим типы массивов.
Получите прочную основу для Java, наиболее часто используемого языка программирования в разработке программного обеспечения, с помощью учебного курса сертификации Java.
Типы массивов
Существует три типа массивов. Мы используем эти типы массивов в соответствии с требованиями программы. Это:
1. Одномерный массив
Также известный как линейный массив, элементы хранятся в одной строке. Например:
В этом примере у нас есть массив из пяти элементов. Они хранятся в одной строке или в соседних ячейках памяти.
Посмотрите на этот пример в коде Java. Здесь пять элементов: 1, 2, 3, 4 и 5. Мы используем цикл for для печати элементов массива. Результат выглядит следующим образом:
2. Двумерный массив
Двумерные массивы хранят данные в строках и столбцах:
Здесь массив состоит из двух строк и пяти столбцов. Индекс начинается от 0,0 в левом верхнем углу до 1,4 в правом нижнем углу.
В этом Java-коде у нас есть двумерный массив. У нас есть две строки и три столбца. Скобки разделяют строки, а количество элементов — столбцы. Для этого используем два цикла for : один для строк и по одному для каждого элемента в строке. Когда мы выполним эту программу, результат будет следующим:
3. Многомерный массив
Это комбинация двух или более массивов или вложенных массивов . Мы даже можем использовать более двух строк и столбцов, используя следующий код:
.Здесь мы используем три строки и три столбца, но мы используем только два
Теперь, когда мы знаем о типах массивов, давайте рассмотрим несколько примеров ниже.
Добавление с использованием массивов Java
/* Java-программа для нахождения суммы всех элементов массива */
Приведенная выше программа добавит все элементы, определенные в my_array[] , и выдаст результат.
Умножение с использованием массивов Java
/* Java-программа для нахождения суммы всех элементов массива */
Приведенная выше программа умножит все элементы, определенные в
Копирование с использованием массивов Java
Вы можете скопировать один массив в другой с помощью метода Arrays.copyOf() .
Приведенный выше фрагмент кода сохранит элементы массива « a» во вновь созданном массиве « b» .
Клонирование с использованием массивов Java
Java поддерживает клонирование объектов с помощью метода clone() для создания точной копии объекта.
Двоичный поиск с использованием массивов Java
Для лучшего понимания массивов рекомендуется изучить алгоритмы бинарного поиска. Все алгоритмы поиска и сортировки начинаются с массивов.
Например:
У нас есть массив из семи элементов; допустим, нам нужно найти элемент 11. Алгоритм применяется, и мы получаем элемент с порядковым номером.
Ниже приведен код Java для двоичного поиска:
Это код класса двоичного поиска.
Ниже приведен код программы main().
Эта программа получает элементы массива от пользователя, а затем просит пользователя найти элемент в массиве. Вывод этой программы будет:
Сначала введите элементы в порядке возрастания. Затем вам нужно указать элемент, который вы хотите найти, и результат будет следующим:
Заключение
Прочитав эту статью, вы должны понимать основы массивов в Java. Вы узнали, как объявлять массивы и как присваивать им значения. Затем вы увидели три типа массивов с примерами каждого из них вместе с кодом Java. Вы узнали, как реализовать программу для добавления элементов в массив, умножения элементов массива, а также как копировать и клонировать массивы. Наконец, у вас появилась идея реализовать программу бинарного поиска, которая прояснила бы концепцию массива. Чтобы узнать больше о массивах Java, посмотрите это видео.
Хотите начать карьеру в Java-разработке?
Если вы готовы поднять свою карьеру в области разработки программного обеспечения на новый уровень, ознакомьтесь с учебным курсом Simplilearn Full Stack Java Developer. Эта комплексная онлайн-программа смешанного обучения научит вас всему, что вам нужно знать об инструментах и методах, используемых в программировании на Java. Выполнив комплекс учебных упражнений, советов экспертов и реальных отраслевых проектов, вы получите сертификат, который поможет вам найти работу своей мечты или получить повышение по службе.
404: Страница не найдена
Страница, которую вы пытались открыть по этому адресу, похоже, не существует. Обычно это результат плохой или устаревшей ссылки. Мы приносим свои извинения за доставленные неудобства.
Что я могу сделать сейчас?
Если вы впервые посещаете TechTarget, добро пожаловать! Извините за обстоятельства, при которых мы встречаемся. Вот куда вы можете пойти отсюда:
Поиск- Узнайте последние новости.
- Наша домашняя страница содержит самую свежую информацию о Java-разработке.
- Наша страница «О нас» содержит дополнительную информацию о сайте, на котором вы находитесь, TheServerSide.com.
- Если вам нужно, свяжитесь с нами, мы будем рады услышать от вас.
Поиск по категории
SearchAppArchitecture
- Растущая роль разработчиков, ориентированных на данные
Больше, чем когда-либо, растущая зависимость разработчиков от данных, источников данных и пользователей подталкивает разработчиков к пониманию ИТ-покупок . ..
- 12 рекомендаций по безопасности API для защиты вашего бизнеса
Как и в любом цикле разработки программного обеспечения, безопасность API должна быть встроена с самого начала. Следуйте этим рекомендациям по проектированию, развертыванию…
- Основы, преимущества и риски сотовой архитектуры
Разработчикам, работающим с микросервисами, эта концепция может показаться знакомой, но архитектура на основе ячеек имеет свои особенности …
ПоискSoftwareQuality
- Документация по API может улучшить или испортить опыт разработчиков
На конференции API World на этой неделе эксперты освещают проблемы, связанные с плохой документацией API, и предлагают способы их устранения, например отказ от …
- Разработчики хотят повышения производительности и эффективности в Java 20
Java 20, вероятно, будет включать полезные функции, такие как улучшения параллелизма и профилирования, но добавочные обновления . ..
- Обзор тестирования API на основе данных
Тестирование API, включая тестирование API на основе данных, отличается от других тестов программного обеспечения своим общим процессом и соответствующими показателями…
SearchCloudComputing
- С помощью этого руководства настройте базовый рабочий процесс AWS Batch
AWS Batch позволяет разработчикам запускать тысячи пакетов в AWS. Следуйте этому руководству, чтобы настроить этот сервис, создать свой собственный…
- Партнеры Oracle теперь могут продавать Oracle Cloud как свои собственные
Alloy, новая инфраструктурная платформа, позволяет партнерам и аффилированным с Oracle предприятиям перепродавать OCI клиентам в регулируемых …
- Dell добавляет Project Frontier для периферии, расширяет гиперконвергентную инфраструктуру с помощью Azure
На этой неделе Dell представила новости на отдельных мероприятиях — одно из которых демонстрировало программное обеспечение для управления периферийными устройствами, другое — углубление гиперконвергентной инфраструктуры . ..
ПоискБезопасность
- Как Sheltered Harbour помогает банкам справляться с кибервосстановлением
Банки должны быть в состоянии быстро восстановиться после кибератаки — сложная задача, учитывая объем и изощренность атак. …
- Типы облачных вредоносных программ и способы защиты от них
Облачное вредоносное ПО не исчезнет в ближайшее время, но в распоряжении организаций появляется все больше инструментов для борьбы с …
- Основные проблемы кибербезопасности метавселенной: как их решить
По мере того, как метавселенная обретает форму, компании должны учитывать множество новых проблем кибербезопасности и способы их решения.
ПоискAWS
- AWS Control Tower стремится упростить управление несколькими учетными записями
Многие организации изо всех сил пытаются управлять своей огромной коллекцией учетных записей AWS, но Control Tower может помочь.