1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wizardforcel-thinking-in-java-zh

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
1.11 Java和因特网.md 51 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 11.03.2025 09:15 d56454c

1.11 Java и Интернет

Учитывая, что Java представляет собой лишь ещё один тип языка программирования, может возникнуть вопрос, почему он заслуживает такого внимания и почему многие считают его вехой в области компьютерной программы. Если вы пришли из традиционного программистского фона, то ответ на этот вопрос может показаться неочевидным сначала. Java решает не только традиционные задачи программирования, но также и проблемы программирования в World Wide Web (веб).

1.11.1 Что такое Веб?

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

Клиент/серверное вычислениеОсновная идея клиент/серверной системы заключается в том, чтобы иметь возможность централизовано хранить информационные ресурсы. Обычно данные собираются в базе данных, а затем информация предоставляется другим людям или машинам по запросу. Основной момент клиент/серверной системы состоит в том, что информация "централизирована". Это позволяет легко менять информацию и распространять её потребителям информации. Соединение всех этих элементов — хранилище информации, программное обеспечение для доставки информации и машина, где находится информация и программное обеспечение — вместе образует "сервер" (server). Программы, расположенные на удалённой машине, которые должны взаимодействовать с сервером, получать информацию, выполнять необходимую обработку и отображать результат на удалённой машине, называются "клиентами" (clients).

На первый взгляд, основные концепции клиент-сервер архитектуры не являются сложными. Однако одной из ключевых проблем является необходимость того, чтобы один сервер мог одновременно обслуживать нескольких клиентов. В этом механизме обычно используется система управления базами данных, которая позволяет разработчикам организовать данные в таблицы для достижения максимальной эффективности. Кроме того, система часто позволяет клиентам вносить новые данные на сервер.Это требует обеспечения того, что новые данные одного клиента не будут конфликтовать с новыми данными других клиентов; другими словами, требуется гарантия целостности транзакций при внесении данных в базу (в терминологии баз данных это называется "транзакциями"). После изменения клиентского программного обеспечения, оно должно быть собрано, отлажено и установлено на клиентских машинах. Все эти факторы делают задачу гораздо более сложной, чем мы можем себе представить. К тому же, поддержка различных типов компьютеров и операционных систем также представляет собой значительную проблему. Наконец, вопросы производительности становятся особенно важными: может быть сотня клиентов, обращающихся к серверу одновременно. Любое незначительное замедление становится существенным. Для минимизации потенциальных проблем программисты должны аккуратно распределять нагрузку на выполнение задач. Обычно часть этой работы выполняется на стороне клиента, но иногда она может быть передана другим машинам, расположенными рядом со стороны сервера, известным как "middleware" (middleware также используется для улучшения обслуживания системы). Поэтому при конкретной реализации простое понятие публикации информации другими людьми может стать невероятно сложным. Иногда это вызывает ощущение полного бессилия.Концепция клиент/сервер здесь может оказаться очень полезной. В действительности около половины всех программистских активностей можно организовать с использованием этой архитектуры. Такие системы могут выполнять множество задач — от обработки заказов и транзакций с кредитными картами до распространения различных типов данных — рынки акций, научные исследования, государственные учреждения и так далее. В прошлом мы обычно создавали отдельные решения для каждого отдельного вопроса; каждый раз приходилось разрабатывать новую систему. Эти системы были как трудоемкими в создании, так и в использовании, требуя от пользователей обучения работе с новыми интерфейсами. Клиент/серверные проблемы требуют радикального изменения!2. Интернет — это огромная сеть серверов

Интернет фактически представляет собой масштабируемую клиент/серверную систему. Однако ситуация усложняется тем, что все серверы и клиенты одновременно существуют внутри одной сети. Но нам нет необходимости знать больше деталей, поскольку единственной задачей является установление соединения с одним и тем же сервером и взаимодействие с ним (хотя возможно придётся искать правильный сервер по всему миру).Начальная концепция была довольно простой однонаправленной операцией. Мы отправляем запрос на сервер, который затем передаёт нам файл, который браузер на нашем устройстве (то есть "клиент" или "клиентская программа") интерпретирует и форматирует, чтобы правильно отобразить его на экране. Однако вскоре стало недостаточно просто получать страницы от одного сервера. Люди хотели иметь возможность использовать полноценные клиент/серверные возможности, позволяющие клиентам (программам) также отправлять информацию обратно на сервер. Например, они хотели бы осуществлять поиск в базах данных на сервере, добавлять новые данные на сервер, делать заказы и так далее (что также требует более высоких стандартов безопасности по сравнению с предыдущими системами). В процессе развития Интернета мы можем четко наблюдать эти радикальные изменения. Развитие веб-браузеров наконец сделало шаг вперёд: теперь некоторые данные могут отображаться на любом типе компьютера без каких-либо изменений. Однако браузеры всё ещё выглядят довольно примитивными и оказываются не в состоянии удовлетворить быстро растущие требования пользователей. Их возможности взаимодействия ограничены, а также они создают определённые помехи для серверов и Интернета.Это происходит потому что при каждом выполнении операции, требующей программирования, данные должны быть отправлены обратно на сервер для обработки. Поэтому вполне возможно, что вам придется ждать несколько секунд до нескольких минут, прежде чем вы узнаете, что вы недавно допустили ошибку в написании одного слова. Поскольку браузер является чисто просмотровым программным обеспечением, он даже не способен выполнять самые простые вычислительные задачи (хотя с другой стороны, это делает его очень безопасным, так как никакие программы не могут выполняться локально, что избавляет от проблем программных ошибок или вирусов). Чтобы решить эту проблему, люди использовали множество различных подходов. В самом начале были улучшены графические стандарты, чтобы браузеры могли отображать более качественные анимации и видео. Для решения оставшихся проблем единственным способом стало выполнение программ непосредственно в клиентской части (браузере). Это называется «клиентским программированием», что является важным расширением традиционного «серверного программирования».### 1.11.2 Клиентское программирование (примечание ⑧)Изначально Web использовал схему "сервер-браузер", которая обеспечивала возможность взаимодействия с контентом, но эта способность была полностью предоставлена сервером, что создавало значительную нагрузку как на сервер, так и на интернет. Обычно сервер генерирует статичные веб-страницы для клиентского браузера, который затем просто интерпретирует и отображает их. Базовый язык HTML предлагает простую систему сбора данных: поля для ввода текста, флажки, радиокнопки, списки и выпадающие списки, а также кнопку, которую можно использовать для переопределения данных формы для отправки обратно на сервер. Информация, предоставленная пользователем, передается обратно на сервер через универсальный шлюз CGI (Common Gateway Interface), который поддерживается всеми веб-серверами. Текстовые указания, содержащиеся в отправленных данных, определяют действия CGI. Самым распространенным действием является запуск программы, находящейся на сервере. Такие программы обычно хранятся в директории с именем "cgi-bin" (при нажатии на кнопку внутри веб-страницы обратите внимание на адрес в верхней части браузера — часто вы можете заметить слово "cgi-bin"). Большинство языков могут использоваться для создания этих программ, но наиболее распространен Perl.Это связано с тем, что Perl был специально создан для работы с текстом和他的翻译应为: Это связано с тем, что Perl был специально создан для работы с текстом и его интерпретации, поэтому он может быть установлен и использован на любом сервере, независимо от используемого процессора или операционной системы。⑧: Этот раздел основан на статье одного автора. Оригинальная статья была опубликована на сайте Mainspring (www.mainspring.com). Использование этого раздела было одобрено автором. Сегодня многие веб-сайты строго основаны на CGI, фактически почти всё можно сделать с помощью CGI. Единственная проблема — это время отклика. Время отклика CGI-программ зависит от того, сколько данных требуется передать, а также от нагрузки на сервер и Интернет (и запуск CGI-программ занимает больше времени). Начальные дизайнеры веба не ожидали, что изначально достаточная пропускная способность быстро станет недостаточной, что является следствием большого количества приложений, заполняющих Интернет. Например, любое представление динамических графиков практически невозможно было показывать плавно, поскольку каждый раз требовалось создание GIF-файла и передача каждого изменения графика от сервера клиенту. Также стоит отметить глубокое понимание проверки данных в полях формы. Раньше мы нажимали кнопку отправки (Submit) на странице; данные отправлялись обратно на сервер; сервер запускал CGI-программу, которая проверяла правильность введённых данных пользователя; формировалась HTML-страница с сообщением об ошибках, если они были найдены, и эта страница отправлялась обратно нам; затем нам снова приходилось вернуться на исходную форму и заново ввести данные.Этот метод был не только медленным, но и крайне неудобным. Решение заключается в клиентской программной реализации. Большинство машин, запущенных с веб-браузерами, имеют достаточную мощность для выполнения множества других задач. В то же время, примитивный метод статического HTML всё ещё может использоваться, поскольку он будет ждать, пока сервер вернёт следующую страницу. Клиентская программа позволяет более эффективному использованию веб-браузера и значительному улучшению взаимодействия с веб-сервером.Обсуждение клиентских программ имеет мало отличий от обсуждения обычных программных вопросов. Применяемые параметры точно такие же, но платформа различна: веб-браузер действует как ограниченная операционная система. Независимо от этого, нам всё равно придётся писать программы, мы столкнёмся со многими проблемами при работе с клиентскими программами и найдём множество решений. Оставшаяся часть раздела представляет собой краткий обзор этих проблем и подходов к их решению.

1. ПлагиныОдним из наиболее важных аспектов перехода к клиентским программам является дизайн плагинов. С помощью плагинов программисты могут легко добавлять новые возможности браузеру; пользователи просто скачивают код и "устанавливают" его в нужное место браузера. Этот код сообщает браузеру, что теперь он может выполнять новые действия (необходимость установки плагина происходит всего один раз). Быстрый и мощный функционал часто добавляется через плагины. Однако создание плагинов — это не простая задача. При создании конкретного сайта возможно, что вам не потребуется эта работа. Для клиентских программ значение плагинов заключается в том, что они позволяют профессиональным программистам создавать новый язык и добавлять этот язык в браузер без необходимости согласования с автором браузера. Таким образом, можно сказать, что плагины являются своего рода «черным ходом» для создания новых языков программирования для клиента (хотя не все языки создаются в виде плагинов).2. Языки скриптов

Плагины привели к стремительному развитию языков скриптов. Эти скрипты позволяют встраивать исходный код для клиентских программ прямо в HTML-страницы, а интерпретаторы этих языков активируются автоматически при отображении HTML-страницы. Языки скриптов обычно стремятся к максимальной простоте и понятности. Поскольку они представляют собой простой текст, являющийся частью HTML-страницы, запрос к этой странице выполняется всего один раз, обеспечивая быструю загрузку. Недостаток заключается в том, что наш код полностью открыт для просмотра. С другой стороны, поскольку обычно не используются сложные вещи с помощью языков скриптов, данный недостаток можно временно игнорировать. Скриптовые языки программирования действительно ориентированы на решение конкретных типов задач, включая создание более богатых и интерактивных графических пользовательских интерфейсов (GUI). Однако скриптовые языки могут решать до 80% проблем клиентской стороны программирования. Возможно, ваша проблема полностью попадает в этот диапазон. Кроме того, поскольку цель скриптовых языков заключается в максимальной простоте и скорости, стоит сначала рассмотреть возможность использования скриптового языка перед переходом к более сложным решениям, таким как Java или ActiveX.На данный момент наиболее часто обсуждаемыми скриптовыми языками являются JavaScript (который никак не связан с Java; его название было выбрано исключительно как маркетинговая стратегия), VBScript (похожий на Visual Basic) и Tcl/Tk (происходит от популярного многоплатформенного языка GUI). Конечно, существует множество других языков и многие из них находятся в процессе развития.

JavaScript является одним из самых распространённых языков, а также тем, который получил наибольшую поддержку. Веб-браузеры Netscape Navigator, Microsoft Internet Explorer и Opera все поддерживают JavaScript. К тому же, количество книг по JavaScript значительно превышает количество литературы по другим языкам. Некоторые инструменты даже используют JavaScript для автоматического создания веб-страниц. Разумеется, если вы уже знакомы с Visual Basic или Tcl/Tk, использование этих языков будет намного проще, что позволит избежать необходимости изучения нового языка (решение проблем веб-разработки само по себе достаточно сложно).

3. JavaЕсли один скриптовый язык может решать около 80% задач клиентской стороны программирования, то какие решения существуют для оставшихся 20%? Это высокие требования или сложные проблемы? На данный момент самым популярным решением являются технологии на основе Java. Это мощный, безопасный, многоплатформенный и международно признанный язык программирования, который также имеет огромный потенциал для дальнейшего развития. Расширения Java постоянно происходят, предоставляя новые возможности и библиотеки, которые позволяют решать задачи, недоступные традиционным языкам, такие как многопоточность, работа с базами данных, сетевые программы и распределенные вычисления. Java использует "апплеты" (applets) для эффективного решения задач клиентской стороны программирования. Программка (или "小程序") — это очень маленькая программа, которая может выполняться только в веб-браузере. Как часть веб-страницы, код программки автоматически загружается обратно (что аналогично загрузке изображений на веб-страницах). После активации программка запускает выполнение программы. Одним из преимуществ программок является то, что они могут автоматически скачивать клиентское программное обеспечение с сервера при необходимости пользователя. Они всегда получают самую последнюю версию клиентского программного обеспечения без ошибок и без необходимости заново его устанавливать.Из-за принципов дизайна Java, программистам требуется создать только одну версию программы, которая будет работать практически на всех компьютерах и браузерах, поддерживающих интерпретатор Java. Поскольку Java представляет собой полноценный язык программирования, мы можем выполнять большинство операций на стороне клиента до отправки запроса на сервер. Например, больше нет необходимости передавать через Интернет форму запроса и ждать от сервера проверки наличия опечаток или других ошибок параметров. Большинство операций валидации данных можно выполнять на стороне клиента, что позволяет избежать нервотрепки от ожидания ответа сервера за компьютером. Это значительно повышает скорость и отзывчивость, а также снижает нагрузку на сеть и сервер, что крайне важно для обеспечения бесперебойной работы интернета. По сравнению со скриптовыми программами, одним из преимуществ Java-апплетов является то, что они предоставляются в компилированной форме, поэтому клиентская сторона не имеет доступа к исходному коду. Конечно, с другой стороны, декомпиляция Java-апплетов также не представляет особой сложности, а скрытие кода обычно не является важной проблемой. Важнее обратить внимание на два других вопроса.Как уже было указано ранее в этой книге, компилированные Java-апплеты могут содержать множество модулей, поэтому требуются несколько "запросов" к серверу для загрузки (в Java 1.1 эта проблема была значительно улучшена — благодаря использованию Java Archive (JAR)-файлов, которые позволяют разработчику объединять все необходимые модули для единого скачивания пользователями). С другой стороны, скрипты часто интегрируются как часть HTML-страницы. Такие программы обычно очень малы и эффективно снижают количество запросов к серверу. Другим фактором является вопрос обучения. Независимо от того, что вам говорят другие люди, Java не является особенно легким языком для изучения. Если вы раньше были разработчиком Visual Basic, переход на VBScript может быть самым быстрым решением. Поскольку VBScript способна решать большинство типичных задач клиент/сервер, после освоения этого языка сложно будет захотеть учиться Java. Если вы знакомы со скриптовыми языками, рекомендуется прежде чем переходить к Java, ознакомиться с JavaScript или VBScript, так как эти языки могут удовлетворить ваши потребности без необходимости изучать Java.4. ActiveX

На некотором уровне конкурентом Java может стать ActiveX компании Microsoft, хотя он использует совершенно другую реализацию. ActiveX первоначально был чисто Windows-решением. Благодаря усилиям независимых профессиональных организаций, сегодня ActiveX обладает возможностью работы на различных платформах. На самом деле, ActiveX означает "если ваша программа правильно связана с её окружением, она сможет войти в Web-страницу и работать в браузере, поддерживающем ActiveX" (Internet Explorer встроен в поддержку ActiveX, тогда как Netscape требует плагин). Таким образом, ActiveX не ограничивает использование конкретного языка. Например, если вы опытный разработчик Windows, который хорошо владеет языками C++, Visual Basic или Borland Delphi, вы сможете создать ActiveX-компоненты практически без дополнительного обучения. В действительности, ActiveX является лучшим способом использования "наследственного" кода в ваших Web-страницах.

БезопасностьАвтоматическая загрузка и выполнение программ через интернет могут показаться мечтой вирусов. В клиентском программировании ActiveX представляет собой наиболее проблематичную безопасность. При нажатии кнопки на веб-сайте вместе с HTML-страницей может вернуться любое количество объектов: GIF-файлы, скриптовые языки, скомпилированные Java-коды и ActiveX-компоненты. Некоторые из этих объектов безобидны; GIF-файлы не представляют опасности, а скрипты обычно имеют строгие ограничения на то, что они могут делать. Java также спроектирована так, чтобы работать в безопасной "коробке", которая препятствует доступу к дискам или памяти вне коробки.ActiveX является наиболее опасной частью этого списка. Программирование с использованием ActiveX напоминает создание Windows-приложений — вы можете делать всё, что захотите. После загрузки ActiveX-компонента он может повредить наши файлы на диске. Конечно, программы, которые скачиваются и не ограничены внутренним браузером, также могут повредить нашу систему. Вирусы, скачиваемые с BBS, всегда были большой проблемой, но скорость Интернета делает эту проблему ещё более сложной.

Существующее решение заключается в "цифровых подписях". Код проверяется авторитетными организациями, указывающими на его авторство. Основа этой системы состоит в том, что считается, что вирусы распространяются потому, что их создатели остаются анонимными. Поэтому если анонимность устранена, каждый разработчик будет обязан отвечать за свои действия. Это кажется хорошей идеей, поскольку она придаёт программам больше легальности. Однако я сомневаюсь, что это полностью устраняет злые умы, особенно если программа содержит ошибки, которые тоже могут вызывать проблемы.Java использует "коробку" для предотвращения таких проблем. Java-интерпретатор встроен в наш локальный веб-браузер, и при загрузке апплета проверяются все подозрительные команды. В частности, апплет не имеет права записывать файлы на диск или удалять файлы (это одно из любимых действий вирусов). Обычно мы считаем апплеты безопасными. Поскольку безопасность крайне важна для создания надёжной клиентской/серверной системы, все ошибки, которые могли бы предоставить вирусу доступ к системе, быстро исправляются (браузеры фактически должны строго следовать этим правилам безопасности; некоторые браузеры позволяют выбрать различные уровни безопасности, чтобы предотвратить различный уровень доступа к системе).

Может возникнуть сомнение, что такие ограничения помешают нам записывать файлы на локальный жёсткий диск. Например, иногда требуется создать локальную базу данных или сохранить данные для последующего использования в офлайн-режиме. В самом раннем варианте казалось, что каждый может делать всё, что ему заблагорассудится, онлайн, но это быстро стало нереалистичным (хотя недорогие "интернет-инструменты" однажды могут удовлетворить большую часть потребностей пользователей).Решением стала концепция "подписанных апплетов", которая использует публично-ключевые алгоритмы шифрования для проверки того, что апплет действительно создан тем местом, которое он претендует представлять. Конечно, даже после успешной проверки подписанный апплет всё ещё может начать очистку вашего жёсткого диска. Однако теоретически, зная, кто ответственен за создание апплета, они обычно не будут совершать такие глупости. Java 1.1 предоставила рамку для цифровой подписи, позволяющую апплету выходить из песочницы при необходимости.Цифровая подпись упускает один важный аспект — скорость перемещения людей через Интернет. Например, сколько времени потребуется, чтобы обнаружить, что вы скачали программу, полную ошибок, которая случайно начала выполнять какие-то глупые действия? Это может занять несколько дней или даже несколько недель. Обнаружив проблему, как можно будет отследить первоначально виновный апплет (и степень его ответственности)?

6. Интернет и корпоративные сетиВеб является распространённым решением для клиент/серверных проблем, поэтому лучше использовать ту же технологию для решения некоторых "вложенных" задач, особенно для традиционных клиент/серверных проблем внутри компании. Для традиционного клиента/серверного режима мы сталкиваемся с проблемами множества различных типов клиентских компьютеров и сложностью установки нового клиентского программного обеспечения. Но использование веб-браузера и клиентской программы позволяет эффективно решать эти проблемы. Если информационная сеть ограничивается одной конкретной компанией, то применение технологии Веб к такой сети делает её "корпоративной сетью" (Intranet), отличающейся от международного "Интернета". Корпоративная сеть обеспечивает более высокий уровень безопасности, так как доступ к внутренним серверам контролируется физически. Что касается обучения, если люди понимают основные концепции браузера, им легко освоить различия между веб-страницами и апплетами, что значительно снижает затраты на обучение новым системам. Проблемы безопасности привели нас в область клиентской программной инженерии, которая кажется автоматически сформированной ветвью. Если программа работает в интернете, то поскольку невозможно знать, на каких платформах она будет выполняться, следует особенно внимательно относиться к возможным ошибкам при написании кода.Нужно выполнять некоторые действия для обеспечения совместимости между различными платформами и принимать необходимые меры безопасности, такие как использование какого-либо скриптового языка или Java. Однако если приложение работает в локальной сети, некоторые ограничивающие факторы могут измениться. Все машины обычно имеют платформу Intel/Windows. В локальной сети вы должны нести ответственность за качество своего кода. При обнаружении ошибок можно немедленно исправить их. Кроме того, возможно уже существуют "наследственные" модули, используемые в более традиционной клиентской/серверной модели. Однако при каждом обновлении требуется физическое установление нового клиента, что занимает много времени. После перехода на использование браузера процесс обновления становится простым и прозрачным, а также автоматическим. Если действительно речь идет о локальной сети, наиболее подходящим решением будет использование ActiveX вместо попыток переписать программный код на новом языке.При наличии множества путей решения проблем клиентского программирования лучшим подходом является проведение анализа соотношения затрат и выгод. Определите все ограничивающие факторы и выберите наиболее эффективный метод. Так как клиентское программирование всё ещё требует написания кода, вам следует выбрать наилучший подход для конкретной ситуации. Это лучшая позиция для подготовки к неизбежным проблемам программирования.## 1.11.3 Серверное программирование

Наши обсуждения до сих пор пропустили вопросы, связанные с серверной стороной программирования. Что происходит, когда запрос отправляется на сервер? Большинство запросов являются простыми — "отправь мне этот файл". Браузеры затем интерпретируют этот файл в подходящем формате: как HTML-страницу, изображение, Java-апплет, скрипт и так далее. Более сложные запросы обычно связаны с операциями над базой данных (транзакционные операции). Самым распространённым является запрос на получение данных из базы данных; после получения этих данных сервер форматирует их в виде HTML-страницы и возвращает её обратно (конечно, если клиент использует Java или любой другой скриптовый язык, он может получить данные в сыром виде и форматировать их на стороне клиента; это позволяет увеличить скорость работы и уменьшить нагрузку на сервер). Иногда требуется зарегистрироваться в базе данных (например, при подписке на группу) или отправить заказ на сервер, что требует изменения базы данных. Такие запросы к серверу должны осуществляться через некоторый код на стороне сервера, который мы называем "серверной стороной программирования". В традиционном понимании серверная сторона программирования выполнялась с помощью Perl и CGI-скриптов, но более сложные системы уже появились.К ним относятся веб-серверы на основе Java, которые позволяют выполнять все серверное программирование на Java, а созданные таким образом программы называются "служебными программами" (Servlets).

1.11.4 Независимое пространство: приложенияБольшинство споров, связанных с Java, связано с апплетами. На самом деле, Java является универсальным языком программирования, который может решать любые типы задач, хотя это верно теоретически. Как было отмечено ранее, большинство клиентских/серверных проблем можно решить более эффективно. Если сосредоточиться на обычных приложениях, а не на апплетах (при этом смягчая некоторые ограничения, такие как запрет записи на диск), то мы попадаем в широкий мир универсальных приложений. Эти приложения могут работать самостоятельно, без необходимости использования браузера, как обычные исполняемые программы. Здесь особенности Java проявляются не только благодаря её способности к портированию, но и благодаря самому процессу программирования. Как будет подробно объяснено в книге, Java предоставляет множество полезных возможностей, что позволяет нам создавать более надёжные приложения за короткий промежуток времени по сравнению с использованием старых языков программирования.Однако стоит отметить, что ничего идеального нет, и за всё приходится платить. Один из самых очевидных недостатков — замедление скорости выполнения (хотя есть много способов его оптимизации). Как и любой другой язык, Java имеет свои ограничения, делающие его менее подходящим для решения некоторых специфических задач программирования. Тем не менее, Java представляет собой быстро развивающийся язык. С каждым новым выпуском он становится всё лучше и способен решать всё больше задач.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/wizardforcel-thinking-in-java-zh.git
git@api.gitlife.ru:oschina-mirror/wizardforcel-thinking-in-java-zh.git
oschina-mirror
wizardforcel-thinking-in-java-zh
wizardforcel-thinking-in-java-zh
master