Lecture11 (1133568), страница 8
Текст из файла (страница 8)
предыдущую лекцию).Класс 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.синхронизации потоков — барьеры, семафоры,события, затворы (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.интерфейсы и классы для поддержкиобеспечения безопасных соединений,шифрования, использования различныхпротоколов безопасности и различных моделейуправления ключами и сертификатами.Пакеты java.sql и javax.sql содержатосновные интерфейсы и классы дляорганизации работы с базами данных,образующие так называемый интерфейс связи сбазами данных JDBC (Java DataBaseConnectivity).Пакет javax.naming содержит стандартныйинтерфейс служб директорий, называемый JNDI(Java Naming and Directory Interface) (см.следующие лекции).Аналогичные библиотеки в .NET находятся впространстве имен System.Data в сборкеSystem.Data.Определенные там интерфейсы являютсяосновой ADO.NET.Интерфейс и реализация аналогичной службыдиректорий ActiveDirectory on Microsoftнаходятся в пространстве именSystem.DirectoryServices в сборкахSystem.DirectoryServices иSystem.DirectoryServices.Protocols.Литература к Лекции 11[1] J.
Gosling, B. Joy, G. Steele, and G. Bracha. Java Language Specification, 3-rd edition. AddisonWesley Professional, 2005.Доступна как http://java.sun.com/docs/books/jls/download/langspec-3.0.pdf.[2] C# Language Specification. Working Draft 2.7. ECMA, June 2004.Доступна как http://download.microsoft.com/download/8/1/6/81682478-4018-48fe-9e5ef87a44af3db9/standard.pdf.[3] C# Langauge Specification 2.0, March 2005 Draft.Доступна как http://download.microsoft.com/download/8/1/6/81682478-4018-48fe-9e5ef87a44af3db9/CSharp%202.0%20Specification.doс.[4] Б.
Лисков, Дж. Гатег. Использование абстракций и спецификаций при разработкепрограмм. М.: Мир, 1989.[5] Б. Майер. Объектно-ориентированное программирование. Концепции разработки. М.:Русская редакция, 2004.[6] Документация по JNI http://java.sun.com/j2se/1.5.0/docs/guide/jni/index.html.[7] S. Liang. Java Native Interface: Programmer’s Guide and Specification.
Addison-WesleyProfessional, 1999.[8] Страница технологии JavaBeans http://java.sun.com/products/javabeans/index.jsp.[9] JavaBeans Specification 1.01. Доступна через страницуhttp://java.sun.com/products/javabeans/docs/spec.html.[10] Документация по библиотекам J2SE http://java.sun.com/j2se/1.5.0/docs/api/index.html.[11] Страница разработчиков .NET http://www.msdn.microsoft.com/netframework/.[12] Страница библиотеки Jakarta Commons http://jakarta.apache.org/commons/index.html.[13] Страница Apache Jakarta Project http://jakarta.apache.org/.[14] Страница библиотеки Joda http://www.joda.org/.[15] Страница библиотеки SWT http://www.eclipse.org/swt/.[16] Страница проекта Eclipse http://www.eclipse.org/..