Путь разработчика    

Почему Java не поддерживает указатели?

Большинство исследований согласны с тем, что указатели являются одной из основных функций, которые позволяют разработчикам вводить ошибки в свой код. Когда Java была создана, было сделано намерение создать язык, который легко изучить и не подвержен ошибкам, с которыми склонен C ++. Это не похоже на c / c ++, где мы должны управлять управлением памятью деструкторами. В Java автоматическая сборщик мусора работает для управления памятью. На самом деле ссылки Java являются указателями, поэтому все в Java доступно только через указатели.

Некоторые причины для Java не поддерживают указатели:

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

2. Безопасность. Не позволяя указателям, Java эффективно предоставляет другой уровень абстракции разработчику. Никакая поддержка указателей не делает Java более безопасным, поскольку они указывают на местоположение памяти или используются для управления памятью, которая теряет безопасность, поскольку мы используем их напрямую.

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

4. Ручное управление памятью: вы можете использовать указатели для ручного управления и выделения блоков памяти. Это полезно для некоторых более крупных приложений, таких как игры, драйверы устройств и т. Д., Но для объектно-ориентированного программирования общего назначения это просто не стоит усилий. Java вместо этого обеспечивает очень хорошую автоматическую сборку мусора (GC), которая занимается управлением памятью.

Источник: http://net-informations.com/Java/cJava/pointers.htm



Отзывы (через Facebook):

Оставить отзыв с помощью аккаунта FaceBook:

Выполните действие по умолчанию без кнопки подтверждения в C#

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

01 04 2020 13:46:26

Разница между Java и JavaScript?

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

31 03 2020 15:50:32

Является ли Monkey patching хорошей практикой программирования?

MonkeyPatch - это часть кода программирования, которая расширяет или изменяет другой код во время выполнения. Это означает, что он вносит изменения в модул...

30 03 2020 17:30:42

Запись значений в реестре в C#

Пример Чтение реестра значения (чтобы получить размер значка на рабочем столе) в C# показывают, как считывать значения из реестра. В этом примере показано,...

29 03 2020 8:45:57

Распечатайте диаграмму конверсии по Цельсию в Фаренгейт в C#

Один из моих друзей повара много использует японские кулинарные книги. Поскольку печи в Соединенных Штатах показывают только температуру в градусах Фаренге...

28 03 2020 21:24:44

Java 8. Полное руководство (Шилдт Герберт)

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

27 03 2020 20:49:42

Генерация случайных полигонов в C#

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

26 03 2020 9:59:17

Статические переменные класса в Python

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

25 03 2020 5:38:22

LINQ. Карманный справочник (Джозеф Албахари, Бен Албахари)

Справочник посвящен технологии LINQ (Language Integrated Query) — новой функциональной возможности языка C# и платформы .NET Framework, которая позволяет п...

24 03 2020 3:14:16

Программирование на Java

Сокет - одна из самых фундаментальных технологий программирования компьютерной сети. Это способ подключения двух узлов в сети для связи друг с другом. Прог...

23 03 2020 3:48:40

Что такое package в Java?

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

22 03 2020 7:38:51

Выполнить анимацию свойств Windows Forms в C#

Изменение свойств элемента управления со временем называется анимацией свойств. Отслеживание того, где свойства элемента управления, например, его положени...

21 03 2020 2:22:47

Сделайте строковые расширения для URL-кодирования и декодирования строк в C#

Следующий код создает методы расширения для строкового класса, который позволяет преобразовывать пробелы в строку «& amp; nbsp;» и этот URL кодировать и де...

20 03 2020 15:25:17

Переопределение WndProc, чтобы увидеть, когда пользователь нажимает любой элемент управления на форме в C#

Метод WndProc формы обрабатывает сообщения, отправленные в форму операционной системой Windows. Это чрезвычайно важный метод, который позволяет формам пере...

19 03 2020 21:15:56

Установите вкладку RichTextBox в C#

Вы можете установить разные вкладки вкладки RichTextBox для разных частей текста элемента управления RichTextBox. В этом примере используется следующий код...

18 03 2020 21:32:38

Как преобразовать String в Date (строки в дату) в Java?

SimpleDateFormat позволяет начать с выбора любых пользовательских шаблонов для форматирования даты и времени. Класс Java.text.SimpleDateFormat используется...

17 03 2020 10:12:58

Выполнить анимацию свойств Windows Forms в C#

Изменение свойств элемента управления со временем называется анимацией свойств. Отслеживание того, где свойства элемента управления, например, его положени...

16 03 2020 20:11:43

Найти файлы, которые соответствуют нескольким шаблонам в C#

Метод System.IO.Directory.GetFiles позволяет легко искать файлы в каталоге, соответствующем шаблону. К сожалению, он может искать только файлы, соответству...

15 03 2020 20:52:31

Увеличьте и прокрутите изображение, нарисованное на C#

Эта программа позволяет масштабировать и прокручивать изображение, нарисованное программой. Программа содержит Panel с AutoScale, установленным в true. Вну...

14 03 2020 6:34:32

Как получить изображение элемента управления, формы или клиентской области формы в C#

В этом примере показано, как получить изображение элемента управления. Поскольку форма является типом управления, тот же метод позволяет получить образ фор...

13 03 2020 14:48:48

Что делает ключевое слово yield в Python?

Если компилятор определяет ключевое слово yield внутри функции, эта функция больше не возвращается через оператор return. Вместо этого он немедленно возвра...

12 03 2020 4:17:30

Что такое конструктор в C#

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

11 03 2020 9:49:37

Случайный цвет для прокладки Аполлония в C#

Этот пример похож на пример Нарисуйте прокладку Аполлония в C# < / a> за исключением того, что он заполняет круги, которые он рисует со случайными цветами....

10 03 2020 3:20:18

Важные характеристики объектов Python

Все объекты Python имеют уникальный идентификатор. Встроенная функция id() возвращает идентификатор объекта как целое. Это целое число обычно соответствует...

09 03 2020 20:48:49

Сортировка элемента управления ListView, используя все его столбцы в C#

Вы можете сделать сортировку ListView, установив для свойства Sorting значение Ascending или Descending, но это займет дополнительную работу по сортировке...

08 03 2020 1:16:55

Что такое поток Daemon в Java

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

07 03 2020 6:40:25

В чем разница между классом и прототипным наследованием?

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

06 03 2020 19:31:40

Нарисуйте анимированный атом в C#

Когда срабатывает Timer формы, его обработчик события Tick обновляет форму, чтобы принудительно выполнить перерисовку. Обработчик события Paint формы рисуе...

05 03 2020 4:40:56

Получить имя исполняемого метода в C#

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

04 03 2020 15:14:43

Позвольте пользователю нарисовать эллипсы резиновой ленты (или другие фигуры) в C#

Программа представляет собой эллипсы со списком структур Rectangle с именем Ellipses. Он представляет начальный и конечный углы нового эллипса с переменным...

03 03 2020 13:57:24

Класс FileReader в Java

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

02 03 2020 23:46:37

Используйте двойную буферизацию, чтобы предотвратить мерцание при рисовании на C#

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

01 03 2020 13:44:23

Класс BufferedReader в Java

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

29 02 2020 22:27:35

Порог цвета к изображению в C#

Пример Предоставляет гамма-коррекцию для изображения в C# использует метод ImageAttribute объекта SetGamma для гамма-коррекции изображения. В этом примере...

28 02 2020 6:22:38

Что такое синхронизация Java?

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

27 02 2020 5:17:18

Лутц М. Программирование на Python. Том 1 (4-е издание, 2011)

  Монументальный труд Марка Лутца « Программирование на Python» в 2-х томах представляет собой учебник по применению языка Python для решения наиболее типичн...

26 02 2020 9:26:12

Программа, которая отображает собственный двоичный код тремя способами в C#

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

25 02 2020 12:53:43

Что такое отказобезопасные и отказоустойчивые итераторы в Java

Неуправляемые итераторы Fail-Fast iterators, возвращенные большинством типов коллекций, не переносят каких-либо структурных изменений в коллекции, итерации...

24 02 2020 14:22:24

Является ли Python скомпилированным или интерпретированным?

Скомпилированные языки записываются в код, который может быть выполнен непосредственно на процессоре компьютера. Компилятор - это специальная программа, ко...

23 02 2020 1:11:29

Почему мне нужно переопределить методы equals и hashCode в Java?

В Java каждый объект имеет доступ к методу equals(), поскольку он наследуется от класса Object. Если два объекта равны в соответствии с методом equals (Obj...

22 02 2020 6:27:59

Как очистить базу данных WordPress в C#

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

21 02 2020 3:53:31

Нарисуйте кривую с отрицательным напряжением в C#

Сообщение Нарисуйте кривую с разной напряженностью в C# использует метод Graphics класса DrawCurve класса для рисования набора кривых с разными напряжениям...

20 02 2020 13:32:43

Перечислить узлы TreeView в C#

Предыдущие два сообщения показывают два способа перечисления узлов TreeView, которые проверяются. Идея состоит в том, чтобы рекурсивно сканировать узлы дер...

19 02 2020 7:35:21

1С-программирование как дважды два. Самоучитель (Михайлов Сергей)

Книга "1 С-программирование как дважды два. Самоучитель" основана на личном опыте предпринимательской деятельности автора в сфере 1 С-программирования. Начин...

18 02 2020 3:12:30

1С:Предприятие. Бухгалтерский учет. Секреты работы (Наталья Рязанцева)

Книга "1 С: Предприятие. Бухгалтерский учет. Секреты работы" посвящена системе программ ведения автоматизированного учета на предприятиях, в организациях и у...

17 02 2020 23:21:26

Как сделать изображение прозрачным фоном в C#

Метод Bitmap класса MakeTransparent изменяет все пиксели с заданным цветом на прозрачный цвет A = 0, R = 0, G = 0, B = 0 Когда программа запускается, следу...

16 02 2020 17:53:43

Как создать документ Word в C#

В этом примере показано, как заставить C# создать документ Word. Сначала откройте диалоговое окно « Добавить ссылки». На вкладке COM выберите « Библиотека об...

15 02 2020 18:17:55

Отображение простого пароля перед запуском программы на C#

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

14 02 2020 4:30:55

Рисуем гладкий текст в GraphicsPath в C#

Вы можете установить свойство TextRenderingHint объекта Graphics для AntiAliasGridFit, чтобы нарисовать гладкий текст. Однако, если вы поместите текст в об...

13 02 2020 16:33:48

Как интерпретируется Python?

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

12 02 2020 19:35:53

Что такое try-with-resources в Java?

Справа try-with-resources, представленная на Java 7, хорошая функция обработки исключений. Это оператор try, который объявляет один или несколько ресурсов....

11 02 2020 15:53:35

Каковы final переменные в Java?

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

10 02 2020 12:41:21

Нарисуйте цветное колесо с альфа-и насыщенными значениями в C#

Пример Нарисуйте цветное колесо цвета в C# показывает, как рисовать цветовое колесо. В этом примере вы можете использовать полосы прокрутки для изменения з...

09 02 2020 7:41:59

Получите серийные номера системной платы и идентификаторы ЦП в C#

В этом примере показано, как получить серийные номера системной платы и идентификаторы Ц П. WMI ( Инструмент управления Windows) позволяет использовать SQL-п...

08 02 2020 1:37:13

Что используется для создания строки Unicode в Python?

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

07 02 2020 2:28:32

Что такое JVM и является ли она независимой от платформы?

Java Virtual Machine (JVM) - это спецификация, предоставляющая среду выполнения, в которой может быть запущен Java-байт-код (файлы .class). JVM - платформа...

06 02 2020 19:45:37

Связать массивы и списки в C#

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

05 02 2020 21:47:30

Отображение анимированных GIF-файлов и их изменение во время выполнения в C#

Вы можете отображать анимированные GIF-файлы, установив свойство Изображение кнопки , PictureBox, Label или другой элемент управления в файл GIF. ( Если вы...

04 02 2020 23:34:28

Используйте ветку и привязаны для решения проблемы раздела в C#

Сообщение Используйте исчерпывающий поиск для решить проблему раздела в C# , объясняет проблему раздела и то, как вы можете использовать исчерпывающий поис...

03 02 2020 20:18:21

Как добавить файл в Python?

Режимы доступа определяют тип операций, доступных в открытом файле. Это относится к тому, как файл будет использоваться после его открытия. Чтобы добавить...

02 02 2020 23:32:34

Потоки (Threading) в Python

Что такое поток? Поток исполнения является наименьшим последовательность запрограммированных инструкций , которые могут управляться независимо друг от друг...

01 02 2020 1:27:18

Метод Split() в Java

Есть ситуация, когда строки содержат несколько фрагментов информации, тогда нам нужно разбить строку, чтобы извлечь отдельные фрагменты. Строки в Java можн...

31 01 2020 12:40:49

Метод Substring в C#

Метод Substring в строке C#. Класс возвращает новую строку, которая является подстрокой этой строки. Подстрока начинается с указанного заданного индекса и...

30 01 2020 5:24:25

Определение и использование бит-маски в C#

Пример Понимание бит-масок в C# объясняет, как использовать бит маски. Чтобы определить битовую маску, просто создайте enum и присвойте ему атрибут Flags,...

29 01 2020 1:45:41

Как использовать * args и ** kwargs в Python

Параметр с ** (двойной звездой) и * (звезда) позволяет определять функции для принятия и для пользователей передавать любое количество аргументов, position...

28 01 2020 21:18:26

Добавление метода расширения в класс Graphics в C#

По какой-то странной причине метод DrawRectangle класса Graphics не может принимать параметр RectangleF в качестве параметра. Он может принимать значения R...

27 01 2020 16:21:43

Класс Java HashSet

Класс HashSet расширяет AbstractSet и реализует заданный интерфейс. Набор представляет собой набор, который не содержит повторяющихся элементов и элементы...

26 01 2020 15:36:56

Делегаты и интерфейсы в C#

Делегаты: Делегаты являются ссылочными типами, поэтому они выделяют весь объект только для ссылки на метод. Делегаты быстрее всего звонят, когда вы знаете...

25 01 2020 6:37:34

Использование лямбда-выражений в C#

Пример Использование лямбда-выражений в C# показало, как использовать лямбда выражения для сжатого создания анонимного метода, который принимает параметры...

24 01 2020 16:40:25

История языков программирования: развитие и создание

История создания и развития языков программирования довольно захватывающая и интересная. Рассмотрим же основные этапы становления этой важнейшей сферы деятельности...

23 01 2020 11:24:46

Создание и отображение HTML в C#

Этот пример фактически выполняет две вещи: он делает элемент управления WebBrowser перемещаться по домашней странице пользователя и показывает, как создава...

22 01 2020 20:16:38

В чем разница между файлами .py и .pyc?

Python компилирует .py файлы и сохраняет его как .pyc-файлы, поэтому он может ссылаться на них при последующих вызовах. Файл .pyc содержит скомпилированный...

21 01 2020 11:47:45


Parse error: syntax error, unexpected ',' in /home/users/9/9161484547/domains/flash-mx.ru/lessons/926.php on line 69