Java технологія и основні риси та перспективи застосування icon

Java технологія и основні риси та перспективи застосування



НазваниеJava технологія и основні риси та перспективи застосування
Дата конвертации16.07.2012
Размер113 Kb.
ТипРеферат
Java технологія и основні риси та перспективи застосування


Java технологія. Основні риси та перспективи застосування. Зміст.|Походження Java. |2 ||Безпечність. |2 ||Ефективність. |3 ||а) прозорість інтерфейсів; | ||б) легкість програмування; | ||Об’єктно-орієнтована спрямованість. |4 ||Стійкість до помилок. |4 ||Підтримка багатопоточності. |5 ||Незалежність від архітектури. |5 ||Переваги інтерпретованості в поєднанні з високою продуктивністю. |6 ||Розподіленість. |6 ||Доступність інструментарія. |7 ||Перспективи застосування |7 ||Резюме. |20 ||Джерела інформації. |21 | .Походження Java. Мова програмування Java зародилася в 1991р. в лабораторіях компаніїSun Microsystems inc. Як не дивно, поштовхом для створення Java сталазовсім не Internet. Головним мотивом була потреба в мові програмування, якане залежала б від платформи ( тобто від архітектури ) і яку можна було бвикористовувати для створення програмного забезпечення, яке вбудовується врізноманітні побутові електронні прилади, такі як мобільні засоби зв’язку,пристрої дистанційного управління тощо. Розробка першої робочої версіїзайняла 18 місяців і вона мала назву «Oak», але 1995 р. проект бувперйменований на «Java». Період становлення Java співпав за часом з розквітом міжнародноїінформаційної служби World Wide Web. Ця обставина відіграла вирішальну рольв иайбутньому Java, оскільки Web теж вимагала переносимих програм. Якнаслідок, були зміщені акценти в розробці Sun з побутової електроніки напрограмування для Internet.Безпечність. World Wide Web висунула Java на передній край програмування, і Java,в свою чергу, сильно вплинула і навіть змінила обличчя Internet, розширившиспектр об’єктів, які можуть розповсюджуватись у кіберпросторі. Програминової форми - аплети - завантажуються з віддаленого сервера і можутьзапускатися динамічно, тобто без участі користувача. До появи Java такийпідхід був неприпустимий з міркувань безпеки та переносимості. Вархітектурі аплетів зроблено ряд штучних обмежень, які роблять їх цілкомбезпечними. Перш за все, Java є інтерпретованою мовою і простір ресурсівJava-програми обмежений так званою віртуальною Java-машиною (VJM), яка можеконторолювати поведінку програми і захищати систему від побічних ефектів,які можуть виникати з вини аплета. Крім того, в мові Java є додатковіобмеження, які не дозволять аплету стати «троянським конем». Зокрема, Java-аплет не може отримати доступ до локального жорсткого диску. При такійспробі генерується виключна ситуація.Ефективність. Оскільки аплети Java інтерпретуються, а не компілюються, то їхвиконання на різних платформах значно полегшується. В цьому випадкудостатньо створити для кожної платформи виконуючу Java-систему. Якщо існуєтака система для даної операційної системи, то будь-яка Java-програма можевиконуватись в даному середовищі без додаткової компіляції на ційплатформі. Проте Java не є інтерпретованою мовою в чистому розумінні.Програма на Java компілюється. Результатом роботи компілятора Java єбайткод (bytecode). Байткод - це оптимізований набір команд, призначенийдля виконання уявним пристроєм - віртуальною Java-машиною. В такий спосібвитрати на інтерпретацію зводяться до мінімуму, оскільки байкод вже єоптимізованим, і досягається досить висока продуктивність Java-програм.Наведені вище особливості дають підставу розглядати Java не як ще одну мовупрограмування, а як окрему інформаційну технологію. Таким чином,інтерпретація - це найлегший шлях до перенесення програм, реалізований вJava технології. Незважаючи на те, що мова Java була розроблена врозрахунку на інтерпретацію, технічно немає нічого такого, що бперешкоджало компіляції байткоду в виконуваний код. До байткоду, якийпересилається по мережі, застосовується динамічна компіляція, але це ніякне впливає на переносимість та безпеку, оскільки роботу програми все щеконтролює виконуюча система. Такий підхід застосовано в багатьох виконуючихсистемах Java, що забезпечує продуктивність на рівні оптимізованого кодуС++. Мова Java є однією з наймолодших в сімействі мов програмуваня і буларозроблена з розрахунку на те, щоб професійний програміст міг легко їїопанувати та ефективно використовувати. За основу Java взятий синтаксис С++- безсумнівно однієї з найбільш популярних мов програмування сучасності.Проте, Java - це цілком самостійна мова програмування, і при її створенніне йшлося про будь-яку сумісність з С++. Тому деякі механізми реалізовані вJava інакше, а деякі зовсім відсутні. Ідеологічно ж Java побудована дещоінакше ніж С++. Розробники Java грунтувалися на досвіді розробки програм наС++ і прагнули позбутися можливостей, які зарекомендували себе непевними.Так, в Java відсутня перегрузка операторів а також автоматичне приведеннянесумісних типів - конструкції, які при неуважному використанні є джереломважких для виявлення помилок. Взагалі, інтерфейси Java більш прості тапрозорі для розуміння. Написати на Java програму з графічним інтерфейсомзначно легше. Звичайно, простота інтерфейсів компенсується меншоюгнучкістю, бібліотека Java не така багата, як стандартні бібліотеки С/С++.Але згадаймо, що Java задуманий для використання на різних платформах ітому реалізує в собі найбільш стандартні можливості задля легшої адаптаціїпід конкретне середовище.Об’єктно-орієнтована спрямованість. Від С++ Java успадкувала потужний механізм об’єктно-орієнтованогопрограмування. Оскільки Java розроблювався «на пустому місці», тобто небуло потреби забезпечувати сумісність з попередніми версіями, розробникимали повну свободу мислення. В результаті був сформований ясний іпрагматичний підхід до об’єктів. Вільно переймаючи ідеї, якіреалізовувалися протягом останніх десятирічь, мові Java вдалося знайтирівновагу між парадигмою «все є об’єктом» і прагматичним підходом. Об’єктнамодель Java проста і легко розширюється, в той час як просі типи, як цілі,зберігаються як дані, що не є об’єктами, що дозволяє значно підвищитишвидкість при їх обробці.Стійкість до помилок. Багатоплатформеність середовища Web висуває надзвичайно високі вимогидо надійності програм. Як наслідок, при розробці Java приорітет буввідданий можливості створення стійких до помилок програм. Java звільняєпрограміста від хвилювань з приводу багатьох поширених причин, яківикликають помилки програмування. Як вже згадувалося, Java є строготипіованою мовою програмування. Ще виконуюча система Java бере на себе«прибирання сміття», тобто автоматично звільняє пам’ять, яка буларозподілена динамічно. Звичайно, це дещо знижує ефективність коду, алезапобігає типових помилок, коли програміст забуває звільнити виділенупам’ять, або, навпаки, звільняє пам’ять, яка ще використовується. Javaпідтримує об’єктно-орієнтовану обробку виключних ситуацій подібно до С++.Але на відміну від С++ в Java обробка виключних ситуацій є обов’язкувою.Тобто неможливо скомпілювати програму, яка відкриває файл, не обробившиможливі помилки типу «файл не знайдено», які виникають при цьому. Добренаписана Java-програма може сама обробляти всі помилки часу виконання.Підтримка багатопоточності. Java розробляялася з орієнтацією на вимоги до створення інтерактивнихпрограм, які працюють з мережею. З цією метою Java підтримує багатопоточнепрограмування, яке дозволяє легко розробляти програми, що викинують багатопроцесів одночасно. Виконання Java-програми засновано на елгантному, але втой самий час високоорганізованому рішенні багатопроцесової синхронізації,яке дозволяє вам створювати високоефективні інтерактивні системи.Незалежність від архітектури. Основним питанням для розробників Java стало питання довготривалостіта переносимості. Одна з головних проблем, із якою зустрілися програмісти,полягала в відсутності гарантій того, що написана сьогодні програма завтрапрацюватиме з тим же успіхом, причому на тій самій машині. Оновленняопераційної системи, модернізація процесора та зміна об’єму оперативноїпам’яті можуть призвести до збою програми. Рощзробники Java, прагнулизмінити цю ситуацію і прийняли декілька важких рішень відносно мови Java тапроцесу виконання Java-програми. Їх мета полягала в тому, щоб «одного разунаписане працювало всюди, в любий час і завжди». Внаслідок цього Java єсистемою, яка легко розширюється за рахунок створення нових стандартнихкласів та бібліотек.Переваги інтерпретованості в поєднанні з високою продуктивністю. Як вже згадувалось, Java дозвляє створювати незалежні від платформипрограми шляхом компіляції в проміжне представлення, яке називаєтьсябайткодом. Багато попередніх спроб зпроб знати розв’язок проблеминезалежності від платформи були зроблені за рахунок продуктивності.Інтерпретуючі системи, подібні до BASIC, Perl, страждають на майженеподоланний дефіцит продуктивності. Це було враховано при створенні Java..Незважаючи на те, що Java є інтерпретованою мовою, генерація байткодів буларетельно оптимізована в такий спосіб, щоб одержуваний байткод можна булолегко перекладати в машинний код, який працює з дуже високоюпродуктивністю. Виконуючі системи такого роду не втрачають жодних перевагпереносимого коду.Розподіленість. Мова Java призначена для створення програм, які працюють врозподіленому середовищі Internet на базі протоколів TCP/IP. Насправдідоступ до ресурсів за допомогою URL відрізняється від доступу к файлу. Крімтого в Java наявний засіб передачі повідомлень в межах внутрішньогоадресного простору. Це дозволяє забеспечити віддалене виконання процедур.Ці інтерфкйси включені у пакет RMI (remote metod invocation). Цей засібпривносить високий рівень абстракції в програмування дл я середовищаклієнт/сервер. Java-програми несуть у собі значний обсяг інформації про типи часувиконання (run-time type information), яка використовується для дозволудоступу до об’єктів під час роботи програми. Це дозволяє забезпечитибезпечну та оптимальну динамічну компоновку. В такий спосіб досягаєтьсязахищеність середовища виконання аплетів.Доступність інструментарію та ефективність розробок. Зазначена вище простота програмування на Java є причиною того, щорозробки на Java коштуватимуть дешевше аналогічних на більш потужніх мовахпрограмування. Цьому ж сприяє і переносимість програм на Java, оскількиліквідуються витрати пов’язані з адаптацією програми на конкретнійплатформі. До того ж інтегровані програми-оболонки для розробки Javaпрограм коштують набагато дешевше ( 70-100$ ) ніж аналогічні продукти C++,Delphi ( ~1000$). А набір інструментарію для пакетної компіляції Javaпрограм JDK (Java Development Kit) є взагалі freeware. Тому платформу Javaможна рекомендувати як ідеальну для створення некомерційних програмнихпродуктів, зокрема для галузі освіти.Перспективи застосування. Програми на Java можуть знайти різне застосування в навчальному процесі:інтерактивні навчаючі програми (HTML в поєднанні з Java), програми-тести іособливо ділові ігри. Додаткові переваги можна отримати, якщо пистати ціпрограми у вигляді аплетів, які ініціалізуються з Web сервера внутрішньоїмережі Intranet. В такий спосіб можна уникнути інсталяції програми набагатьох комп’ютерах - користувач просто запускає Web-броузер і загружаєпотрібну сторінку. Для тестових програм, написаних на Java з викориситаннямархітектури клієнт/сервер можна підвищити ступінь конфіденційності. Базаданих тестових запитань знаходиться на сервері в каталозі з обмеженимдоступом. Коли користувач загружає аплет, він автоматично підключається допрограми-сервера, яка виконується на сервері і може видавати запитання збази даних у відповідь на запит користувача. В такий спосібунеможливлюється викрадення бази даних, за умови відсутності фізичногодоступу до серверу у користувачів. Окреме питання - навчальні ділові ігри. Під такою грою розумітимемгру, за участю кількох користувачів, в якій мається на увазі динамічнийобмін інформацією між ними. Система безпеки Java накладає обмеження,внаслідок якого аплет може встановлювати з’єднання лише з хостом, з якоговін був загружений і ні з яким більше. Але це обмеження легко обходиться:на сервері виконується програма-сервер, з якою з’єднуються усі клієнти ічерез яку здійснюється обмін інформацією. Таким чином така програма повиннамати архітектуру клієнт/сервер. В якості приклада наведу спрощену chat-програму. В ній реалізовані базові засоби для створення ділової гри. Серверна частина програми взята з книги Нотон П. Шилдт Г. «Полныйсправочник по Java»:-Киев, «Диалектика», 1997 і є практично універсальноюдля програм такого класу. Можливе легке доопрацювання цієї програми в бікрозширення кількості протокольних команд. Клієнтська частина була написанамною. Програма працює наступним чином: користувач запускає аплет ізсервера, вводить свій ідентифікатор і бачить перелік ідентифікаторівкористувачів, які під’єднані до сервера. Після чого користувач має змогуобмінюватись повідомленнями з іншими. Користувач одержує повідомлення вразі під’єднання або від’єднання користувачів. Програма складається з 4 класів: Server, ClientConnection, Client таServerConnection. Перші 2 класи відносяться до серверної частини, другі 2 -до клієнтської. Клас Server:import java.net.*;import java.io.*;import java.util.*;public class Server implements Runnable private int port = 6564; private Hashtable idcon = new Hashtable(); private int id = 0; static final String CRLF = ""; synchronized void addConnection(Socket s) ClientConnection con = new ClientConnection(this, s, id); id++; synchronized void set(String the_id, ClientConnection con) idcon.remove(the_id) ; con.setBusy(false); Enumeration e = idcon.keys(); while (e.hasMoreElements()) String id = (String)e.nextElement(); ClientConnection other = (ClientConnection) idcon.get(id); if (!other.isBusy()) con.write("add " + other + CRLF); idcon.put(the_id, con); broadcast(the_id, "add " + con); synchronized void sendto(String dest, String body) ClientConnection con = (ClientConnection)idcon.get(dest); if (con != null) con.write(body + CRLF); synchronized void broadcast(String exclude, String body) Enumeration e = idcon.keys(); while (e.hasMoreElements()) String id = (String)e.nextElement(); if (!exclude.equals(id)) ClientConnection con = (ClientConnection) idcon.get(id); con.write(body + CRLF); synchronized void delete(String the_id) broadcast(the_id, "delete " + the_id); synchronized void kill(ClientConnection c) if (idcon.remove(c.getId()) == c) delete(c.getId()); public void run() try ServerSocket acceptSocket = new ServerSocket(port); System.out.println("Server listening on port " + port); while (true) Socket s = acceptSocket.accept(); addConnection(s); catch (IOException e) System.out.println("accept loop IOException: " + e); public static void main(String args[]) new Thread(new Server()).start(); try Thread.currentThread().join(); catch (InterruptedException e) Цей невеликий клас реалізує програму-сервер. Точка вхолу програми - функціяmain. В програмі створюється головний потік, в якому створюється об’єктстандартного класу ServerSocket. Цей об’єкт приєднується до певного порта ів циклі здійснюється перевірка на підключення клієнта до порта. В разітакого підключення створюється об’єкт типу ClientConnection, в якомуреалізований потік по опитуванню сокета, до якого підключений клієнт, таобробка протокольних команд. Клас Server є універсальним і нічого не знаєпро повідомлення, якими обмінюються гравці (клієнти). В ньому реалізованелише приєднання/від’єднання клієнтів, надсилання строки певному клієнту тафункція broadcast яка, як зрозуміло з назви, надсилає повідомлення усімзареєстрованим клієнтам. Клас ClientConnection:import java.net.*;import java.io.*;import java.util.*;class ClientConnection implements Runnable private Socket sock; private DataInputStream in; private OutputStream out; private String host; private Server server; private static final int bufsize = 8192; private byte buffer[] = new byte[bufsize]; private static final String CRLF = ""; private String name = null; private String id; private boolean busy = false; public ClientConnection(Server srv, Socket s, int i) try server = srv; sock = s; in = new DataInputStream(s.getInputStream()); out = s.getOutputStream(); host = s.getInetAddress().getHostName(); id = "" + i; // tell the new one who it is... write("id " + id + CRLF); new Thread(this).start(); catch (IOException e) System.out.println("failed ClientConnection " + e); public String toString() return id + " " + host + " " + name; public String getHost() return host; public String getId() return id; public boolean isBusy() return busy; public void setBusy(boolean b) busy = b; public void close() server.kill(this); try sock.close(); // closes in and out too. catch (IOException e) public void write(String s) byte buf[] = new byte[s.length()]; s.getBytes(0, buf.length, buf, 0); try out.write(buf, 0, buf.length); catch (IOException e) close(); private String readline() try return in.readLine(); catch (IOException e) return null; static private final int NAME = 1; static private final int QUIT = 2; static private final int TO = 3; static private final int DELETE = 4; static private Hashtable keys = new Hashtable(); static private String keystrings[] = "", "name", "quit", "to", "delete" ; static for (int i = 0; i < keystrings.length; i++) keys.put(keystrings[i], new Integer(i)); private int lookup(String s) Integer i = (Integer) keys.get(s); return i == null ? -1 : i.intValue(); public void run() String s; StringTokenizer st;out: while ((s = readline()) != null) st = new StringTokenizer(s); String keyword = st.nextToken(); switch (lookup(keyword)) default: System.out.println("bogus keyword: " + keyword + ""); break; case NAME: name = st.nextToken() + (st.hasMoreTokens() ? " " + st.nextToken(CRLF) : ""); System.out.println("[" + new Date() + "] " + this + ""); server.set(id, this); break; case QUIT: break out; case TO: String dest = st.nextToken(); String body = st.nextToken(CRLF); server.sendto(dest, body); break; case DELETE: busy = true; server.delete(id); break; close(); Клас ClientConnection реалізує обмін інформацією з конкретним клієнтом. Вньому зберігається об’єкт класу Socket, до якого приєднаний цей клієнт, тастворюється потік, в якому здійснюється періодична спроба читати з сокета.Якщо ця спроба завершується успіхом, тобто надійшло повідомлення відклієнта, це повідомлення аналізується і здійснюється відповідна реакція.Для здіснення цієї реакції викликаються методи класу Server, об’єкт якогопередається класу ClientConnection в якості параметра конструктора. Крімтого в цьому класі є метод, який здійснює безпосереднє надсиланняінформації до клієнта. Коли серверу потрібно надіслати інформаціюконкретному клієнтові, він викликає цей метод.клас Client:import java.util.*;import java.io.*;import java.net.*;import java.awt.*;import java.applet.*;public class Client extends Applet private ServerConnection server; private String serverName; private boolean single = false; private boolean seen_pass = false; private boolean name_set = false; private String name; private String others_name; private Panel topPanel; private Label prompt; private TextField namefield; private Button done; private TextField chatfield; private List idList; private TextArea dialogArea; public void init() setLayout( new BorderLayout() ); serverName = getCodeBase().getHost(); if (serverName.equals("")) serverName = "localhost"; prompt = new Label("Enter id:"); namefield = new TextField(30); topPanel = new Panel(); topPanel.setBackground(new Color(255, 255, 200)); topPanel.add(prompt); topPanel.add(namefield); add("North", topPanel); idList = new List(10, false); add("West", idList ); dialogArea = new TextArea(); dialogArea.setEditable( false ); add("Center", dialogArea ); public void start() try showStatus("Connecting to " + serverName); server = new ServerConnection(this,serverName); server.start(); showStatus("Connected: " + serverName); catch (Exception e) single = true; public void stop() if (!single) server.quit(); void add(String id, String hostname, String name) delete(id); // in case it is already there. idList.addItem("(" + id + ") " + name + "@" + hostname); void delete(String id) for (int i = 0; i < idList.countItems(); i++) String s = idList.getItem(i); s = s.substring(s.indexOf("(") + 1, s.indexOf(")")); if (s.equals(id)) idList.delItem(i); break; if (idList.countItems() == 0) showStatus("Wait for other players to arrive."); private String getName(String id) for (int i = 0; i < idList.countItems(); i++) String s = idList.getItem(i); String id1 = s.substring(s.indexOf("(") + 1, s.indexOf(")")); if (id1.equals(id)) return s.substring(s.indexOf(" ") + 3, s.indexOf("@")); return null; void chat(String id, String s) dialogArea.appendText(id + ": " + s+ "");//append showStatus(id + ": " + s); void quit(String id) showStatus(id + " just quit."); delete(id); private void nameEntered(String s) if (s.equals("")) return; System.out.println(s); name = s; if( !single ) server.setName(name); showStatus("Wait for other players to arrive."); prompt.setText("You say:"); name_set = true; public boolean action(Event evt, Object arg) System.out.println("a"); if(evt.id == Event.ACTION_EVENT) if (evt.target == namefield) if( name_set ) dialogArea.appendText(name + ": " + namefield.getText()+""); if(!single) server.sendTo((String)arg, idList.getSelectedItem()); else nameEntered((String)arg); namefield.setText(""); return true; Цей клас є розширенням класу Applet, отже є аплетом. В цьому класістворюється об’єкт класу ServerConnection, через якій здійснюється обмінінформацією з сервером. Графічний інтерфейс цього класу представляє 3області: поле вводу, в яке спочатку вводиться ім’я користувача, а потім -повідомлення, адресовані іншим клієнтам, список клієнтів, в якому требаобирати адресата, та текстова область в якій відбивається текст діалога.Метод action реалізує обробку події вводу тексту в область вводу. Методиadd, delete, chat, nameEntered, quit є реакцією на наступні події:підключення нового клієнта, зникнення клієнта, надходження повідомлення відклієнта, ідентифікація та вихід. Ці методи визиваються класомServerConnection при надходженні відповідних повідомлень, або ж всерединіаплета, якщо джерелом події є сам клієнт.клас ServerConnection:import java.io.*;import java.net.*;import java.util.*;class ServerConnection implements Runnable void sendTo(String s, String id) if( id!= null ) out.println("to "+id+" "+s); private static final int port = 6564; private static final String CRLF = ""; private DataInputStream in; private PrintStream out; private String id, toid = null; private Client client; public ServerConnection(Scrabblet sc, String site) throws IOException Socket server = new Socket(site, port); in = new DataInputStream(server.getInputStream()); out = new PrintStream(server.getOutputStream(), true); public ServerConnection( Client c,String site) throws IOException client = c; Socket server = new Socket(site, port); in = new DataInputStream(server.getInputStream()); out = new PrintStream(server.getOutputStream(), true); private String readline() try return in.readLine(); catch (IOException e) return null; void setName(String s) out.println("name " + s); void delete() out.println("delete " + id); void setTo(String to) toid = to; void send(String s) if (toid != null) out.println("to " + toid + " " + s); void chat(String s) send("chat " + id + " " + s); void quit() send("quit " + id); // tell other player out.println("quit"); stop(); private Thread t; void start() t = new Thread(this); t.start(); void stop() t.stop(); private static final int ID = 1; private static final int ADD = 2; private static final int DELETE = 3; private static final int CHAT = 4; private static final int QUIT = 5; private static Hashtable keys = new Hashtable(); private static String keystrings[] = "", "id", "add", "delete","chat", "quit" ; static for (int i = 0; i < keystrings.length; i++) keys.put(keystrings[i], new Integer(i)); private int lookup(String s) Integer i = (Integer) keys.get(s); return i == null ? -1 : i.intValue(); public void run() String s; StringTokenizer st; while ((s = readline()) != null) st = new StringTokenizer(s); String keyword = st.nextToken(); switch (lookup(keyword)) default: System.out.println("bogus keyword: " + keyword + ""); break; case ID: id = st.nextToken(); break; case ADD: String id = st.nextToken(); String hostname = st.nextToken(); String name = st.nextToken(CRLF); client.add(id, hostname, name); break; case CHAT: String from = st.nextToken(); client.chat(from, st.nextToken(CRLF)); break; case QUIT: String from = st.nextToken(); client.quit(from); break; Цей клас є дзеркальним відображенням класу ClientConnection. Але він більштісно переплетений з класом Client. В ньому реалізований потік, який опитуєсокет, через який клієнт під’єднано до сервера, здійснює аналіз надходячихповідомлень та викликає потрібні методи класу Client. Крім того в ньому єметоди, які викликаються класом Client для відсилання інформації на сервер. Ця програма легко може бути модифікована в напрямку розширеннякількості протокольних команд та ускладнення клієнта за рахунок додаванняспецифічних реакцій на нові команди. В класі ClientConnection може бутиускладнена реакція на під’єднання клієнта. Наприклад, клієнту можевидаватися інформація про початкові умови гри. Таким чином наведенапрограма може служити скелетом для створення більш складних. Можна дещоурізати класи Client та ServerConnection, залишивши в них лише базовіфункції з тим, щоб потім розширювати їх шляхом механізму об’єктногоуспадкування.Резюме. Таким чином Java технологія є дуже перспективною для застосквання врозробках неокомерційного спрямування. Обмеженість інструментарію Java непроявляється в проектах невеликого обсягу і з лихвою компенсуєтьсяпростотою програмування розподілених програм, які працюють з мережеюInternet/Intranet . Переносимість Java програм спрощує обмін навчальнимипрограмами між різними навчальними закладими, відкрииває можливістьсумісних розробок та створення стандартних навчальних програм, наприкладдля шкіл. Крім того, дуже привабливою з точки зору ефективності,залишається ідея втілення в навчальних закладах мережевих комп’ютерів(Network Computers), які працюють на базі Java, замість звичнихперсональних комп’ютерів (Personal Computers). На останок можна згадати проте що Java добре підтримує національні абетки, оскільки розроблялася дляінтернаціональної мережі Internet. Ця обставина теж є важливою рисою вумовах України.Джерела інформації:1. http://www.sun.com/ Специфікація мови програмування Java.2. Нотон Патрик, Шилдт Герберт. Полный справочник по Java.: Пер. с англ.: - К.: Диалектика, 1997.3. Страуструп Бьярн. Язык программирования С++.: Пер. с англ.: - К.: ДиаСофт, 1993.4. Магические зерна Sun. COMPUTER WORLD Киев, №29-30 (19 августа 1998) с.10.5. Ціни на програмні продукти. ( По матеріалам Hot-line).




Нажми чтобы узнать.

Похожие:

Java технологія и основні риси та перспективи застосування iconJava технологія. Основні риси та перспективи застосування
Розробка першої робочої версії зайняла 18 місяців і вона мала назву «Oak», але 1995 р проект був перйменований на «Java»
Java технологія и основні риси та перспективи застосування icon1. Поняття та основні риси застосування юридичних норм
Таким чином, термін "застосування правових норм", який закріпився в теорії права і правозастосувальній діяльності, можна вважати...
Java технологія и основні риси та перспективи застосування iconОбвинувальний висновок. Поняття та основні риси обвинувальний висновок: поняття та основні риси
Обвинувальний висновок є важливим гарантом захисту прав і законних інтересів обвинуваченого та інших учасників процесу
Java технологія и основні риси та перспективи застосування iconЛабораторная работа «Исследование виртуальной машины Java» Цель работы
Демонстрация универсальности (кроссплатформенности) языка Java и виртуальной машины Java, на примере ос windows и Ubuntu Linux
Java технологія и основні риси та перспективи застосування iconВексельний обіг І перспективи його розвитку в Україні. План
Учасники вексельної схеми взаєморозрахунків, організація та технологія. 24
Java технологія и основні риси та перспективи застосування iconРозділ І запобіжний захід. Мета І підстави його застосування
Метою дослідження курсової роботи є висвітлення, систематизація та вивчення проблем застосування застави, як міри запобіжного заходу...
Java технологія и основні риси та перспективи застосування iconПравозастосовний орган керується такими вимогами
Основні вимоги до правильного застосування норм права. Види актів застосування норм права
Java технологія и основні риси та перспективи застосування iconМаркетинг та його специфіка в банківській сфері
Необхідність І перспективи застосування маркетингу комер­ційними банками України
Java технологія и основні риси та перспективи застосування iconМаркетинг та його специфіка в банківській сфері
Необхідність І перспективи застосування маркетингу комер­ційними банками України
Java технологія и основні риси та перспективи застосування iconДжерела І основні риси права в україні першої половини 19 віку, та початок 20 в

Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©rushkolnik.ru 2000-2015
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы