Программируем на Java
Қосымшада ыңғайлырақҚосымшаны жүктеуге арналған QRRuStore · Samsung Galaxy Store
Huawei AppGallery · Xiaomi GetApps

автордың кітабынан сөз тіркестері  Программируем на Java

Анна В.
Анна В.дәйексөз келтірді2 жыл бұрын
Одно дело — создать язык, который мешает вам «выстрелить себе в ногу», и совсем другое — создать язык, который помешает кому-то другому «выстрелить вам в ногу».
2 Ұнайды
Комментарий жазу
Дубин В.
Дубин В.дәйексөз келтірді4 ай бұрын
Когда Бьёрн Страуструп выбрал ключевое слово private для обозначения скрытых компонентов классов в C++, он думал, скорее всего, о том, чтобы разработчика не беспокоили запутанные подробности кода других разработчиков, а не о том, как защищать классы и объекты от атак вирусов и троянов. Произвольные преобразования типов и арифметические операции с указателями в C и C++ позволяют легко нарушать разрешения доступа к классам, не нарушая при этом правила языка. Возьмем следующий код: // Код C++ class Finances { private: char creditCardNumber[16]; ... }; main() { Finances finances; // Формирование указателя для получения доступа // к конфиденциальным данным внутри класса char *cardno = (char *)&finances; printf("Card Number = %.16s\n", cardno); } В этой маленькой драме на C++ мы написали код, который нарушает инкапсуляцию класса Finances и извлекает секретную информацию. Подобные фокусы — злоупотребления с нетипизованными указателями — в Java невозможны. Если этот пример кажется вам нереалистичным, подумайте, как важно защищать фундаментальные (системные) классы исполнительной системы от подобных атак. Если ненадежный код сможет повредить компоненты, предоставляющие доступ к реальным ресурсам (к файловой системе, к сети, к оконной системе), то у него появится возможность перехватить номера ваших кредиток.
1 Ұнайды
Комментарий жазу
KR
KRдәйексөз келтірді2 жыл бұрын
Совокупность всей информации о типах в любой конкретный момент называется состоянием типов стека; именно его Java анализирует перед запуском приложения. Java ничего не знает о фактических значениях, хранящихся в стеке и в переменных; известны только их типы. Однако этой информации достаточно для соблюдения правил безопасности и для уверенности в том, что с объектами не будут выполняться некорректные операции.
1 Ұнайды
Комментарий жазу
public void mouseDragged( MouseEvent e ) { messageX = e.getX(); messageY = e.getY(); repaint();
Комментарий жазу
class HelloComponent extends JComponent { public void paintComponent( Graphics g ) { g.drawString( "Hello, Java!", 125, 95 );
Комментарий жазу
Код нового класса очень краток, мы написали всего несколько новых строк: import java.awt.*;
Комментарий жазу
Основные достоинства объектно-­ориентированных языков — это взаимосвязь между данными и функциональ­ностью в классах, а также способность классов к инкапсуляции, то есть к сокрытию деталей их внут­реннего устройства
Комментарий жазу
Первая линия защиты Java — верификатор байт-кода. Верификатор читает байт-код перед его выполнением и убеждается, что тот ведет себя правильно и соблюдает основные правила спецификации байт-кода Java
Комментарий жазу
Модель безопасности Java создает вокруг импортированных классов три уровня защиты
Комментарий жазу
Когда Бьёрн Страуструп выбрал ключевое слово private для обозначения скрытых компонентов классов в C++, он думал, скорее всего, о том, чтобы разработчика не беспокоили запутанные подробности кода других разработчиков, а не о том, как защищать классы и объекты от атак вирусов и троянов
Комментарий жазу