Главная » Просмотр файлов » В.В. Кулямин - Технологии программирования. Компонентный подход

В.В. Кулямин - Технологии программирования. Компонентный подход (1134162), страница 57

Файл №1134162 В.В. Кулямин - Технологии программирования. Компонентный подход (В.В. Кулямин - Технологии программирования. Компонентный подход) 57 страницаВ.В. Кулямин - Технологии программирования. Компонентный подход (1134162) страница 572019-05-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 57)

Чаще всего этообъекты класса System.Globalization.NumberFormatInfo.Набор математических функций и константреализован в виде элементов классаSystem.Math.Для генерации псевдослучайных чиселиспользуется класс System.Random.203обладающий большей функциональностьюкласс java.util.Random.Для более сложных вычислений можноиспользовать классы пакета java.math —BigInteger и BigDecimal, представляющиецелые числа произвольной величины идесятичные дроби произвольной точности.java.lang.Thread — класс, объекты которогопредставляют потоки в Java машине.Он содержит методы, позволяющие прерватьожидание данным потоком синхронизационнойоперации (interrupt()), подождать концаработы данного потока (join()), запуститьпоток (start()), приостановить выполнениетекущего потока на какое-то время (sleep()),получить текущий поток (currentThread()), атакже получить различные характеристикиданного потока (приоритет, имя, и пр.).Класс java.lang.ThreadLocal служит дляхранения значений, которые должны бытьспецифичны для потока.

Т.е. значение,получаемое методом get() из объекта этогокласса, — то самое, которое текущий потоксохранил ранее с помощью метода set().В пакете java.lang находится и набор наиболееважных интерфейсов.CharSequence — интерфейспоследовательности символов.Cloneable — маркирующий интерфейсобъектов, для которых можно строить копии.Сам по себе он не требует реализации какихлибо методов, хотя для построения копийнужно перегрузить метод clone(), а лишьпозволяет использовать функциональностьэтого метода в классе Object.Iterable<T> — интерфейс итерируемыхколлекций. Объекты, реализующие этотинтерфейс, могут, наравне с массивами,использоваться в инструкции цикла поколлекции.Comparable<T> — интерфейс, реализуемыйклассами, объекты которых линейноупорядочены, т.е.

любые два объекта этогокласса сравнимы по отношению«больше/меньше». Используется, например, дляреализации коллекций с быстрым поиском.В пакете java.lang также находится рядклассов, объекты которых представляютэлементы самого языка — Class<T>,представляющий классы, Enum<T>,представляющий перечислимые типы, иКлассом, представляющим потоки .NET в C#,является System.Threading.Thread.Текущий поток может быть получен с помощьюего свойства CurrentThread.Этот класс тоже содержит методы Interrupt(),Join(), Start(), Sleep() и др.Аналогичные интерфейсы в C# следующие.System.ICloneable — требует реализацииметода Clone() для создания копий.System.Collections.IEnumerable,System.Collections.Generic.IEnumerable<T> — интерфейсы итерируемыхколлекций.System.IComparable, System.IComparable<T>— интерфейсы типов, объекты которыхлинейно упорядочены.В C#, в отличии от Java, где шаблонные типывсегда имеют и непривязанный к типамаргументам интерфейс, шаблоны стипизированным интерфейсом простодобавляются в библиотеки к ужесуществовавшим там до появления C# 2.0нетипизированным классам и интерфейсам.Для C# аналогичную роль в механизмерефлексии играют классы System.Type,System.ValueType, System.Enum и классы,входящие в пространство именSystem.Reflection — MemberInfo, MethodInfo,204Package, представляющий пакеты.Все эти классы, а также классы, находящиеся впакете java.lang.reflect (Field, Method,Constructor) используются в рамкахмеханизма рефлексии (reflection) для доступа кинформации об элементах языка во времявыполнения программы.

На механизмерефлексии построены очень многие среды итехнологии, входящие в платформу Java,например JavaBeans.Для анализа структуры и элементов массивов вовремя работы программы можно использоватьметоды класса java.lang.reflect.Array,позволяющие определить тип элементовмассива, получить их значения, создавать новыемассивы и пр.Для манипуляций с массивами — поиска,сортировки, сравнения и пр. — используютсяметоды класса java.util.Arrays.FieldInfo, и т.д.Аналогом обоих классов Java для работы смассивами служит класс System.Array.Он содержит как методы анализа структурымассива, так и операции для поиска,упорядочения, копирования и сравнениямассивов.В обоих языках имеются механизмы, позволяющие определять слабые ссылки.

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

ссылки на нихостались только из такого хранилища.Пакет java.lang.ref содержит классы дляорганизации сложной работы со ссылками.Например, классjava.lang.ref.WeakReference представляетслабые ссылки.Другие классы представляют более хитрыевиды ссылок.Пакет java.util содержит классы иинтерфейсы, представляющие разнообразныеколлекции объектов.Collection<T> — общий интерфейс коллекцийJava.Collections — предоставляет наборобщеупотребительных операций надколлекциями: построение коллекций сразличными свойствами, поиск, упорядочение ипр.Set<T>, HashSet<T>, TreeSet<T> — интерфейсмножества объектов и различные егореализации.

TreeSet<T> требует, чтобыобъекты типа T были линейно упорядоченными,и предоставляет быстро работающие (залогарифмическое время от числа объектов вмножестве) функции добавления, удаления иВ C# слабые ссылки реализуются при помощикласса System.WeakReference.Набор интерфейсов и классов коллекций C#находится в пространствах именSystem.Collections иSystem.Collections.Generic.

В первомнаходятся интерфейсы и классынетипизированных коллекций, во втором —шаблоны. Далее упоминаются толькошаблонные типы, если их нетипизированныйаналог называется соответствующим образом.Базовые интерфейсы коллекций —Generic.IEnumerable<T>,Generic.ICollection<T>.Интерфейс отображений и классы,реализующие отображения —Generic.IDictionary<K, V>,Generic.Dictionary<K, V>, Hastable(нетипизированный).205поиска.Map<K, V>, HashMap<K, V>, TreeMap<K, V> —интерфейс ассоциативных массивов илиотображений (maps) и его различныереализации.

TreeMap<K, V> требует, чтобыобъекты-ключи были линейноупорядоченными, и предоставляет быстрыеоперации с отображением.List<T>, ArrayList<T>, LinkedList<T> —интерфейс расширяемого списка и различныеего реализации.BitSet — реализует расширяемый списокфлагов-битов.IdentityHashMap<K, V> реализуетотображение, сравнивающее свои ключи по ихсовпадению, а не с помощью метода equals(),как это делают остальные реализации Map<K,V> (и Set<T>).WeakHashMap<K, V> хранит ключи с помощьюслабых ссылок, что позволяет автоматическиуничтожать хранящиеся в таком отображениипары ключ-значение, если на объект-ключдругих ссылок не осталось.Много полезных классов-коллекций можнонайти вне стандартных библиотек, например, вбиблиотеке Jakarta Commons [12], частиобширного проекта Apache Jakarta Project [13].Для определения линейного порядка наобъектах типа T используется интерфейсjava.util.Comparator<T>.Наиболее часто применяется его реализация длястрок — java.text.Collator, абстрактныйкласс, позволяющий создавать специфическиеобъекты, сравнивающие строки в различныхрежимах, включая игнорирование регистрасимволов, использование национальноспецифических символов и пр.Классы java.util.Calendar,java.util.GregorianCalendar,java.util.Date и java.text.DateFormatиспользуются для работы с датами.Первые два класса используются дляпредставления информации о календаре,объекты класса Date представляют даты имоменты времени, а последний классиспользуется для их конвертации вформатированный текст и обратно.Класса для представления временныхинтервалов в стандартной библиотеке нет.Гораздо более широкий набор средств дляработы с датами и временами предоставляетИнтерфейс и классы списков —Generic.IList<T>, Generic.List<T>,ArrayList (нетипизированный).BitArray — реализует расширяемый списокбитов.Аналогичный интерфейс в C# —System.Collections.Generic.

IComparer<T>.Его реализация для строк — абстрактный классSystem.StringComparer.Для представления различных календарейиспользуются подклассыSystem.Globalization.Calendar, тоженаходящиеся в пространстве именSystem.Globalization.Для представления моментов времени —System.DateType.Для интервалов времени — System.TimeSpan.Для форматированного текстовогопредставления дат и времени —System.Globalization. DateTimeFormatInfo.206библиотека Joda [14].Классы java.util.Timer иjava.util.TimerTask служат выполненияопределенных действий в заданное время иличерез определенное время.Для построения и анализа форматированныхстрок, содержащих данные различных типов,полезен класс java.util.Formatter.С помощью реализации интерфейсаjava.util.Formattable можно определитьразные виды форматирования для объектовпользовательских типов.В пакете java.util есть несколько классов,представляющих регионально- илинационально-специфическую информациюС помощью объектов класса Currencyпредставляют различные валюты.Информация о региональных или национальноспецифических настройках и параметрахпредставляется в виде объектов класса Locale.Набор объектов, имеющих локализованныеварианты, например, строки сообщений наразных языках, может храниться с помощьюподклассов ResourceBundle —ListResiourceBundle,PropertyResourceBundle.Работа с различными кодировками текстаорганизуется при помощи классов пакетаjava.nio.charset.Интерфейс и классы пакета java.utilEventListener, EventListenerProxy,EventObject используются для реализацииобразца «подписчик» в рамках спецификацийJavaBeans (см.

предыдущую лекцию).Класс java.util.Scanner реализует простойлексический анализатор текста.Более гибкую работу с регулярнымивыражениями можно реализовать с помощьюклассов пакета java.util.regex.Пакет java.util.concurrent и его подпакетlocks содержат набор классов, реализующихколлекции с эффективной синхронизациейработы нескольких потоков (например, разныепотоки могут параллельно изменять значенияпо разным ключам отображения) и примитивысинхронизации потоков — барьеры, семафоры,Аналоги в C# — System.Threading.Timer иделегатный типSystem.Threading.TimerCallback.Еще одни аналоги находятся в пространствеимен System.Timers сборки System.В C# преобразование в форматированнуюстроку осуществляется методом ToString() спараметром типа System.IFormatProvider.Такой метод есть в типах, реализующихинтерфейс System.IFormattable.Обычно в качестве объектов, задающихформатирование, используются объектыклассов System.Globalization.

CultureInfo,System.Globalization. NumberFormatInfo иSystem.Globalization. DateTimeFormatInfo.Аналогичную роль в C# играют классыпространства имен System.Globalization —RegionInfo и CultureInfo.Для хранения наборов объектов вместе с иханалогами для нескольких культуриспользуются объекты классаSystem.Resources.ResourceSet.Работа с различными кодировками текстаорганизуется при помощи классов пространстваимен System.Text.В C# работа с регулярными выражениямиможет быть организована при помощи классовпространства именSystem.Text.RegularExpressions в сборкеSystem.Аналогичные функции выполняют классыпространства имен System.Threading,расположенные как в сборке mscorlib, так и вSystem.207события, затворы (latches), блокировки типа«много читателей-один писатель» и пр.Пакет java.util.concurrent.atomic содержитклассы, реализующие гарантированноатомарные действия с данными различныхтипов.Пакет java.io содержит класс File,представляющий файлы и операции над ними, атакже большое количество подклассовабстрактных классов Reader и InputStream,предназначенных для потокового ввода данных,и Writer и OutputStream, предназначенных дляпотокового вывода данных.Пакет java.nio содержат классы дляорганизации более эффективного асинхронноговвода-вывода.Аналогичные классы содержатся впространстве имен System.IO.Аналоги классов из java.nio находятся впространстве именSystem.Runtime.Remoting.Channels в сборкахmscorlib и System.Runtime.Remoting.Классы и интерфейсы, лежащие в основеКлассы и интерфейсы, лежащие в основекомпонентной модели графических элементовкомпонентной модели JavaBeans, находятся вуправления .NET, находятся в пространствепакете java.beans.На основе этой модели реализованы библиотеки имен System.ComponentModel.элементов управления графическогоЭти классы, в основном, расположены в сборкепользовательского интерфейса (graphical userSystem.interface, GUI) Java.Библиотека элементов GUI находится вОдна из этих библиотек (самая старая и непространстве имен System.Windows.Forms вочень эффективная) размещается в пакетерамках сборки System.Windows.Forms.java.awt.Библиотека классов общего назначения дляДругая, более новая и демонстрирующаяработы с графикой находится в пространствебольшую производительность — в пакетеSystem.Drawing в сборке System.Drawing.javax.swing.Одной из наиболее эффективных библиотекграфических элементов управления на Java наданный момент считается библиотека SWT(Standard Widget Toolkit [15]), на основекоторой разрабатывается расширяемая средаразработки приложений Eclipse [16].Интерфейсы и классы для разработки сетевогоАналогичные классы и интерфейсы находятся вПО и организации связи между приложениями, пространствах имен System.Net иработающими на разных машинах, находятся вSystem.Runtime.Remoting в рамках сборокпакетах java.net, javax.net, java.rmi,mscorlib и System.javax.rmi.Аналогичные классы и интерфейсы находятся вПакеты java.security, javax.crypto ипространстве имен System.Security в сборкахjavax.security определяют основныеmscorlib, System и System.Security.интерфейсы и классы для поддержкиобеспечения безопасных соединений,шифрования, использования различныхпротоколов безопасности и различных моделейуправления ключами и сертификатами.Аналогичные библиотеки в .NET находятся вПакеты java.sql и javax.sql содержатпространстве имен System.Data в сборкеосновные интерфейсы и классы дляорганизации работы с базами данных,System.Data.208образующие так называемый интерфейс связи сбазами данных JDBC (Java DataBaseConnectivity).Пакет javax.naming содержит стандартныйинтерфейс служб директорий, называемый JNDI(Java Naming and Directory Interface) (см.следующие лекции).Определенные там интерфейсы являютсяосновой ADO.NET.Интерфейс и реализация аналогичной службыдиректорий ActiveDirectory on Microsoftнаходятся в пространстве именSystem.DirectoryServices в сборкахSystem.DirectoryServices иSystem.DirectoryServices.Protocols.Литература к Лекции 11[1] J.

Характеристики

Тип файла
PDF-файл
Размер
3,61 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6451
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее