Основні арифметичні операції в мові Ява 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Основні арифметичні операції в мові Ява



Перелік питань з дисципліни

Теоретичні питання

1. Історія створення мови програмування java.

Мова програмування Java зародилася в 1991 р. в лабораторіях компанії Sun Microsystems. Розробку проекту започаткував Джеймс Ґослінґ, сам проект мав назву «Green»(Зелений). Створення першої робочої версії, яка мала назву «Oak» (дуб), зайняло 18 місяців. Оскільки виявилось, що ім'я Oak уже використовувалось іншою фірмою, то в результаті тривалих суперечок навколо назви нової мови з поміж ряду запропонованих було вибрано назву Java [4], у 1995 р. мову було офіційно перейменовано[5].

Головним мотивом створення Java була потреба в мові програмування, яка б не залежала від платформи (тобто від архітектури) і яку можна було б використовувати для створення програмного забезпечення, яке вбудовується в різноманітні побутові електронні прилади, такі як мобільні засоби зв'язку, пристрої дистанційного керування тощо.

Досить скоро майже всі найпопулярніші тогочасні веб-оглядачі отримали можливість запускати «безпечні» для системи Java аплети всередині веб-сторінок. У грудні 1998 р. Sun Microsystems випустила Java 2 (спершу під назвою J2SE 1.2), де було реалізовано декілька конфігурацій для різних типів платформ. Наприклад, J2EE призначалася для створення корпоративних застосунків, а значно урізана J2ME для приладів з обмеженими ресурсами, таких як мобільні телефони. У 2006 році в маркетингових цілях, Версії J2 було перейменовано у Java EE, Java ME та Java SE, відповідно.

13 листопада 2006 року Sun випустили більшу частину Java в якості вільного та відкритого програмного забезпечення згідно з умовами GNU General Public License(GPL). 8 травня 2007 корпорація закінчила процес, в результаті якого всі початкові коди Java були випущенні під GPL, за винятком невеликої частини коду, на який Sun не мала авторського права.

Період становлення Java збігся у часі з розквітом міжнародної інформаційної служби World Wide Web. Ця обставина відіграла вирішальну роль у майбутньому Java, оскільки Web теж вимагала платформо-незалежних програм. Як наслідок, були зміщені акценти в розробці Sun з побутової електроніки на програмування для Інтернет.

 

2. Проблема мобільності програмного забезпечення. Основні підходи до

розробці мобільного програмного забезпечення.

 

На кожній новій платформі користувач очікує побачити багат ий додаток. Користувач не приймає в розрахунок того, що вам доводиться робити додаток з нуля для кожної платформи. Нова платформа - це нові девайси, нова документація, нові ресурси. Чим популярніший платформа, тим більше у вас конкурентів. Фрагментація операційної системи. Якщо ви розробляєте програми під Android, враховуйте фрагментацію і існування цілого зоопарку пристроїв. Це позначається на часі розробки на всіх етапах: проектування, дизайн, розробка і особливо тестування.

Agile-підхід (гнучкий, живий, подвижний). розробка ведеться короткими циклами (итерациями), тривалістю 1-4 тижні;

в кінці кожної ітерації замовник отримує цінне для нього додаток (або його частина), яке можна використовувати в бізнесі.

Проблемно - орієнтоване проектування (англ. Domain - driven design) не є який-небудь конкретної технологією або методологією. DDD - це набір правил, які дозволяють приймати правильні проектні рішення. Даний підхід дозволяє значно прискорити процес проектування програмного забезпечення в незнайомій предметної області.

При правильному застосуванні воно призводить до створення програмних абстракцій, які називаються моделями предметних областей. У ці моделі входить складна бізнес-логіка, що усуває проміжок між реальними умовами області застосування продукту і кодом.

 

3. Поняття віртуальних обчислювальних середовищ. Віртуальні машини.

 

Програми, які написані на будь-якій мові високого рівня, в тому числі і Java, не можуть бути виконані зразу. Будь-яку програму необхідно відкомпілювати, тобто перевести в послідовність машинних команд (об’єктний модуль). Але і він, як правило, не може бути зразу виконаний. Об’єктний модуль необхідно ще скомпілювати з бібліотеками, які використовуються в модулі та дозволити перехресні посилання між секціями об’єктного модуля, одержавши в результаті повністю готову до виконання програму. Всі ці дії над програмою, написані на мові Java, виконує віртуальна Java машина.

Віртуальна Java машина – це сукупність команд разом з системою їх виконання. Іншою особливістю Java є те, що всі стандартні функції під’єднуються до програми тільки на етапі виконання і не включаються в байт-коди. Це значно зменшує об’єм відкомпільованої програми. Необхідно відмітити, що інтерпретація байт-кодів та динамічна компоновка значно зменшують продуктивність виконання програм. Це не має значення в тих ситуаціях, коли байт-код передається по мережі, але в інших ситуаціях необхідний комп’ютер з сучасними технічними характеристиками. Тому, розробники мови Java кожен рік вдосконалюють інтерпретатори. Були розроблені Just in time компілятори, котрі запам’ятовували інтерпретовані ділянки коду в машинних командах процесора і просто виконували ці ділянки при повторному зверненні. Розробником технології Java являється фірма Sam Microsystem. Для повного циклу роботи з даною мовою компанія випустила програмний пакет під назвою Java Development Kid. Набір програм і класів JDK містить:

1. Компілятор із коду в байт-коди

2. Інтерпретатор Java, який містить в собі реалізацію віртуальної Java машини

3. Програму перегляду аплетів, яка заміняє браузер

4. Відладник JDK

5. Dis Asembler Java

6. Програму архівації JAR

7. Програму збору документації Java Doc

8. Програму генерації заготовочного файлу мови С

9. Програму додавання електронного підпису

10. Програму, яка перетворює бінарні файли в текстові

11. Програми для роботи з віддаленими об’єктами

12. Програму, яка визначає номер версії класу

13. Бібліотеку класів Java IP

14. Бібліотеки та заготовочні файли методів

 

Крім JDK компанія Sam окремо поширює набір програм під назвою JRE. Відмінність JRE від JDK полягає в тому, що JRE містить набір програм і пакетів класів, які необхідно для виконання байт-кодів, а також інтерпретатор Java і бібліотека класів. Але JRE не містить компілятора та відладника. JRE використовується в браузерах, що виконують програми на Java, а також ОС та системах керування бази даних.

 

4. Основні особливості Ява - машини. Поняття Pi-коду. «Запуск» Ява

програми.

 

Програми, які написані на будь-якій мові високого рівня, в тому числі і Java, не можуть бути виконані зразу. Будь-яку програму необхідно відкомпілювати, тобто перевести в послідовність машинних команд (об’єктний модуль). Але і він, як правило, не може бути зразу виконаний. Об’єктний модуль необхідно ще скомпілювати з бібліотеками, які використовуються в модулі та дозволити перехресні посилання між секціями об’єктного модуля, одержавши в результаті повністю готову до виконання програму. Всі ці дії над програмою, написані на мові Java, виконує віртуальна Java машина.

Віртуальна Java машина – це сукупність команд разом з системою їх виконання. Іншою особливістю Java є те, що всі стандартні функції під’єднуються до програми тільки на етапі виконання і не включаються в байт-коди. Це значно зменшує об’єм відкомпільованої програми. інтерпретація байт-кодів та динамічна компоновка значно зменшують продуктивність виконання програм. Це не має значення в тих ситуаціях, коли байт-код передається по мережі, але в інших ситуаціях необхідний комп’ютер з сучасними технічними характеристиками

 

5. Технологія отримання виконуваної Ява програми. Поняття JDK.

 

Java Development Kit, скорочено JDK — безплатно розповсюджуваний Oracle(раніше Sun) комплект розробника за стосунків на мові Java, який включає до себе компілятор Java (javac), стандартні бібліотеки класів Java, приклади, документацію, різноманітні утиліти і виконавчу систему Java (JRE). В склад JDK не входить інтегроване середовище розробки на Java (IDE), тому розробник, що використовує тільки JDK, повинен використовувати текстовий редактор і компілювати та виконувати свої програми через утиліти командного рядка.

 

6. Основна структура програми мови програмування Ява. Основна

одиниця програми. Класи і методи. Метод main;


Програми на Java утворені з визначень класів та інтерфейсів. Класи містять змінні та сталі, які утримують дані, методи, які виконують дії, та конструктори, які створюють екземпляри класів — об'єкти. Дані можуть мати простий тип (наприклад байт, ціле число, символ) або бути посиланням на об'єкт. Мова Java є статично типізованою. Базовим елементом в ООП в мові програмування Java є клас. Опис класу подається в наступному вигляді:class first {} К лас – це шаблон для опису об’єктів. Об’єкти, що містять поля, методи – все це включає в собі клас. Метод - це іменований відокремлений блок коду. З методом можна виконати три операції. Оголосити - описати, що такий метод є, проте не розписувати його вміст, тобто тіло; визначити - описати метод з його структурою, тобто з його тілом; викликати, тобто запустити цей метод на виконання. У кожному додатку на повинен бути присутнім один метод Main, який вказує точку початку виконання програми. У Java використовується нижній регістр main. Main може повертати тільки int або void, і має необов'язковий аргумент масиву рядків для представлення параметрів командного рядка

 

 

7. Зарезервовані ключові слова мови Ява. Коментарі. Складові

оператори.

 

примитивные типы данных byte short int long float double char boolean Ключевые слова выполнения цикла do while for break continue Ключевые слова, выполняющие переход else switch case default break Метод, переменная и модификаторы класса private public protected final static abstract synchronized volatile strictfp Буквальные константы false true null Ключевые слова, связанные с методом return void Ключевые слова, связанные с пакетом package import Ключевые слова, связанные с обработкой особых ситуаций try catch finally throw throws Другие ключевые слова new extends implements class instanceof this super

 

8. Правила запису імен «операторів» та іменування ідентифікаторів

класів, об'єктів, змінних мовою Ява.

Идентификаторы - это имена, которые даются различным элементам языка для упрощения доступа к ним. Имена имеют пакеты, классы, интерфейсы, поля, методы, аргументы и локальные переменные (все эти понятия подробно рассматриваются в следующих лекциях). Идентификаторы можно записывать символами Unicode, то есть на любом удобном языке. Длина имени не ограничена.
Идентификатор состоит из букв и цифр. Имя не может начинаться с цифры. Java-буквы, используемые в идентификаторах, включают в себя ASCII-символы A-Z (\u0041-\u005a), a-z (\u0061-\u007a), а также знаки подчеркивания _ (ASCII underscore, \u005f) и доллара $ (\u0024). Знак доллара используется только при автоматической генерации кода (чтобы исключить случайное совпадение имен), либо при использовании каких-либо старых библиотек, в которых допускались имена с этим символом. Java-цифры включают в себя обычные ASCII-цифры 0-9 (\u0030-\u0039).
Для идентификаторов не допускаются совпадения с зарезервированными словами (это ключевые слова, булевские литералы true и false и null-литерал null). Конечно, если 2 идентификатора включают в себя разные буквы, которые одинаково выглядят (например, латинская и русская буквы А), то они считаются различными.

 

9. Основні прості типи даних, підтримуваних в мові

програмування Ява. Правила запису літералів (констант).

 

Boolean byte char short int long float double

В мові програмування Java можна записувати константи різних типів в різному виді. Зокрема:

1. Цілі константи. Цілі константи в мові програмування Java можна записувати в трьох системах вимірювання. Це: в 10-й системі вимірювання (8, -3 і т.д.), 8-й системі вимірювання (числа в 8-й системі вимірювання завжди починаються з нуля: 012, 053, 0809! – цифр 8 і 9 в 8-й системі числення бути не може), в 16-й системі числення (числа починаються з 0х, можна використовувати Х або х). В кінці цифр цілого типу можна прописувати англійську літеру L (велику або маленьку), тоді компілятор зберігає константу в форматі типу long.

2. Дійсні константи. Дійсні константи записуються тільки в 10-й системі числення. З плаваючою крапкою (2.5е-25). Якщо після цифр з плаваючою або фіксованою точкою поставити літеру f,то компілятор зберігає константу в форматі float. А якщо в кінці прописати літеру d, то в форматі double.

 

10. Змінні, правила їх іменування і способи оголошення в мові Ява.

Оголошення змінних розпочинаються з обов'язкового вказання типу даних, після чого йде назва змінної. Оголошення змінної завершується крапкою з комою, оскільки оголошення в Java вважається інструкцією.

Назва змінної повинна починатися з букви, далі може бути необмежена кількість цифр та букв. Причому, оскільки в Java використовується Unicode, то змінні можуть бути написані навіть кирилицею, проте в такому разі ваша програма буде важко читабельною для іноземців. В мові враховується регістр символів. Тому K та k — це різні змінні. Не можна використовувати як назви зарезервовані слова. В одному рядку можна оголошувати декілька змінних, проте в такому разі утруднюється читання тексту програми: int k,i, num;

Ініціалізацію змінної можна здійснити як при оголошенні так і в подальшому в програмі:

int i; int j=1; char key;

key='Y';

i=0;

 

 

11. В мові Java існує чотири цілочисельних типи: byte, short, int, long. Вони розрізняються об'ємом пам'яті, яка буде виділена під змінну і діапазоном значень, які можна в цій змінній зберігати. Найчастіше використовуваний тип int займає в пам'яті 4 байти і придатний для зберігання чисел від -231 до 231. Тип byte витрачає найменше пам'яті і підходить для роботи з невеликими числами (від -128 до 127). Типи short і long займають 2 і 8 байт відповідно.

Дійсні числа (або числа з плаваючою крапкою) представлені двома типами: float і double. Тип float займає 4 байта пам'яті і не дає великий ступеня точності при роботі з дуже великими або дуже маленькими числами. Його рекомендують використовувати у випадку, коли дрібна частина потрібна, але висока точність не потрібно. При необхідності більш точних обчислень рекомендується оперувати з величинами типу double.

Приклади оголошення змінних:

int x; //Оголошення цілочисельної змінної x

double a, b; //Оголошення двох дійсних змінних a і b

 

12. char - Символьний тип даних. Змінна такого типу займає 2 байта пам'яті, тому що зберігається в кодуванні unicode.

З змінними цього типу можна робити тільки операції привласнення, але зате різними способами. Найпростіший з них виглядає так:

c = 'b';

Символ можна представити також у вигляді його коду, записаного в вісімковій системі числення:

c = '\077';

Де 077 - це обов'язково тризначне число, не більше ніж 377 (= 255 у десятковій системі числення)

Або ж у 16 - річної системі числення наступним чином:

c = '\u12a4';

Крім того, існують спеціальні символи, такі як знак абзацу, розрив сторінки та ін. Знак абзацу запишеться, наприклад, так:

c = '\n';

 

13. Значення логічного типуboolean виникають в результаті різноманітних порівнянь і використовуються головним чином в умовних операторах та операторів циклу. Існує лише 2 значення умовних операторів – це True і False. Над логічними даними можна виконувати операції присвоєння та виконувати логічні операції. Логічні операції можуть бути 4-х типів:

1. Заперечення. Позначається:!

2. Кон’юнкція (AND). Позначається у вигляді &

3. Диз’юнкція (OR). Позначається у вигляді |

4. Виключаючи або (XOR). Позначається у вигляді каре ^

Дане правило можна записати наступним чином для стовпчиків!a,!b – заперечення змінює значення істинності. Для стовпчика a&b– кон’юнкція істина, коли обидва оператора істинні. Для стовпчика a|b – диз’юнкція хибна в тому випадку, коли обидва оператора хибні. Для стовпчика a^b – виключення або істинне в тому випадку, коли значення операндів різні. Крім того, в мові програмування Java існують оператори скорочення – це &&та ||.

 

14. Іноді виникають ситуації, коли необхідно змінної одного типу привласнити значення змінної іншого типу. наприклад:

int a = 1;

byte b = 2;

a = b;

Як чинити в цьому випадку? Всі типи умовно можна розташувати «у порядку збільшення»:

byte<short<int<long<float<double

Якщо ми хочемо зміною «більшого» типу привласнити значення «меншого» типу, то виконуємо звичайне присвоювання:

int a = 1;

float f = 2.2f;

f = a;

Якщо ж навпаки, змінної «меншого» типу значення «більшого», то треба вказувати тип, в який ми перетворюємо:

int a = 1;

float f = 2.2f;

a = (int) f;

При цьому дрібна частина просто відкидається.

Перетворювати число в змінну типу char завжди необхідно явно, а ось змінну типу char явно перетворюють тільки в byte і short:

int a;

char c = '*', c1;

byte b;

a = c;

c1 = (char) a;

b = (byte) c1;

 

15.  Масив у мові Java - це теж клас.

Задання і ініціалізація масиву:

int [] B = newint [100]; //Масив ста цілих чисел

int [] C = newint [N]; //Масив цілих чисел довжини N

//Якщо N < 0, відбудеться помилка при виконанні

int [] D = {1,2,3,4,5} //масив з п'яти елементів

int [] E;

При створенні масиву відбувається ініціалізація елементів (в наших прикладах - нульовими значенями). При зверненні до елементів масиву виконується перевірка на вихід індексу за межі масиву.

Одного разу задана, довжина масиву не може змінитися. Її можна отримати наступним чином:

A.length;

Слід зазначити, що length не метод, а public (дозволяє перегляд довжини поза класу), final поле.

 

16. Багатовимірних масивів в Java немає. Можна задати масиви масивів, наприклад:

int [][] M; //Масив масивів цілих чисел

Ініціалізувати масив масивів можна так:

M = newint [10] [20];

або

M = newint [10] [];

for (int i = 0; i <10; i + +) {

M [i] = newint [20];

}

На перший погляд, користь другого варіанту ініціалізації неочевидна, але такий спосіб дозволяє нам задати не прямокутний масив. Наприклад, створення трикутного масиву має наступний вигляд:

M = newint [10][];

for (int i = 0; i <10; i + +) {

M [i] = newint [i +1];

}

Коли в коді зустрічається оператор new, автоматично виділяється пам’ять для об’єкта вказаного в операції типу та повертається в якості результата адрес даної ділянки. Наприклад: a=newdouble[] Якщо ми не вказуємо кількість елементів масиву, то по замовчуванню даний масив може бути безмежний.

 

17. Ініціалізація (initialization) — ряд дій, що передують виконанню програми, зокрема, встановлення програмних змінних в нуль, або надання їм інших початкових значень.Ініціалізація об'єкта відбувається у методі, що називається конструктором.

Ініціалізацію масивів можна виконати або статично, або динамічно. У першому випадку ви просто перераховуєте значення у фігурних дужках, як це показано нижче:

int [] nColorRed={255,255,100,0,10};

Динамічна ініціалізація виконується з використанням індексу масиву, наприклад, в циклі:

intnInitialValue = 7;

int [] nAnotherNumbers;

nAnotherNumbers = newint [15];

for (int i = 0; i <15; i + +)

{

nAnotherNumbers [i] = nInitialValue;

}

Ініціалізацію змінної можна здійснити як при оголошенні так і в подальшому в програмі:

int i;

int j=1;

charkey;

key='Y';

i=0;

 

18. Будь-яке оголошення змінної має свою область дії, межі якої залежать від того, де саме розташоване це оголошення. При приміщенні фрагмента тексту програми в пару фігурних дужок {} створюється новий блок. Блоки в програмі на мові Java можуть бути вкладеними. Мінлива доступна в блоці тільки в тому випадку, якщо вона визначена в цьому блоці або в одному з вищестоящих блоків, в який входить поточний блок, наприклад:

//Блок 1

{

int x;

//Блок 2

{

int y;

//Кінець блоку 2

}

//Кінець блоку 1

}

Мінлива x визначена і в блоці 1 і в блоці 2, а змінна y - тільки в блоці 2.

На відміну від мови C, у внутрішньому блоці не можна оголошувати змінну з таким же ім'ям, як у зовнішній області дії. Тому наступний фрагмент програми

int x = 1;

{

int x = 2;

}

призведе до помилки при компіляції програми (в C кожна змінна x була б дійсна тільки у своєму блоці).

 

19. Крім області дії, кожна змінна має і час життя. Коли поточний блок, в якому змінна була оголошена, закінчується, вона стає доступною для знищення за допомогою так званого збирача сміття.

Змінити область дії і час життя змінної можна за допомогою модифікаторів доступу. Модифікатори вставляються в оголошення змінної перед ім'ям - типу.

За замовчуванням (без модифікатора) змінна доступна тільки класам в тому ж пакеті, що і клас, в якому вона міститься.

Модифікатор public визначає, що змінна доступна як усередині, так і поза класом, тобто змінна є глобальною і доступна будь-якому іншому об'єкту.

Так, якщо змінна callCount в класі A1Class пакета apckg оголошена з модифікатором public:

publicintcallCount;

то вона доступна в класі B1Class пакета bpckg.

Модифікатор private, навпаки, означає, що змінна доступна тільки в тому класі, в якому вона була оголошена.

Модифікатор final визначає, що змінна має постійне (незмінне) значення і не може бути перевизначена. Так, при спробі змінити значення змінної PI, оголошеної як

publicfinal PI = 3.14;

буде видано повідомлення про помилку, і виконання програми буде припинено.

 

20. Оператор присвоєння доволі вживаний оператор при ініціалізації змінних та присвоєнні результату обчислення виразу.

int x=5;

int k=x+8;

Крім того в Java він може застосовуватися для ланцюгового присвоєння змінних

х=k=z=100;

Дана можливість оператора присвоєння доволі корисна при необхідності присвоєння кільком змінним одного і того ж значення.

 

 

Описpublic і private

Інкапсуляція - це процес упаковки даних об'єкта разом з його методами. Результатом інкапсуляції є запобігання небажаного доступу ззовні до даних і методам всередині об'єкта і можливість зміни внутрішньої реалізації об'єкта без зміни інших частин програми.

public – визначає загальний доступ, тобто змінні, методи і класи, що мають даний модифікатор будуть доступні з будь-якої точки програми і в тому числі з інших пакетів.

private – при використанні даного модифікатора змінні та методи можуть бути використані лише в класі, в якому вони створюються.

Прості и складені імена.

Імена бувають простими (складаються з 1 ідентифікатора) і складними, що складаються з послідовності ідентифікаторів, розділених крапкою.

Щоб отримати складене ім'я пакету, необхідно до повного імені пакету, в якому він розташовується, додати точку, а потім його власне просте ім'я. Наприклад, складене ім'я основного пакету мови Java - java.lang

І mport -виразидозволяютьзвертатися до типів з іншихпакетів по їх простим іменам, "імпортувати" їх.

Наприклад: import java. net. URL; (import іповне імя типу.)

1.                public – визначає загальний доступ, тобто змінні, методи і класи, що мають даний модифікатор будуть доступні з будь-якої точки програми і в тому числі з інших пакетів.

2.                Якщо користувач не ставить модифікатор. В даному випадку змінні, методи та класи можуть бути використані з будь-якого місця програми, але тільки в середині пакета, в якому вони були створені.

3.                private – при використанні даного модифікатора змінні та методи можуть бути використані лише в класі, в якому вони створюються.

4.                protected – змінні та методи при використанні даного модифікатора можуть використовуватись в пакеті, який містить даний клас, в якому вони були створенні або в будь-якому іншому підкласі даного класу.

5.                static – змінні та методи з даним модифікатором використовуються для роботи з класом в цілому. Для їх виклику немає необхідності ініціалізувати екземпляр класу, так як доступ до даної змінної відбувається через ім’я класу.

 

38. Інтерфейси. Оператор implements. Використанняспільновикористовуванихзмінних і методів.

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

Оператор implements - цедоповнення до визначеннякласу, щореалізовуєдеякийінтерфейс.

class имякласса [ extends суперкласс]

[ implements интерфейс0 [, интерфейс 1...]]

{тело класса}

Всіметоди в інтерфейсахповиннімати тип public. Методиповинні бути визначені в класі, якийздійснюєцейінтерфейс. Якщо ми реалізуємоновийінтерфейс, якийрозширюєстарийінтерфейс, то ми повинніскасуватиметоди в новому інтерфейсі, так само як і в старому.

 

 

Runtime

Класс Runtime инкапсулирует интерпретатор Java. Вы не можете создать нового представителя этого класса, но можете, вызвав его статический метод, получить ссылку на работающий в данный момент объект Runtime. Обычно апплеты и другие непривелигированные программы не могут вызвать ни один из методов этого класса, не возбудив при этом исключения SecurityException. Одна из простых вещей, которую вы можете проделать с объектом Runtime - его останов, для этого достаточно вызвать метод exit(int code).

Управление памятью

Хотя Java и представляет собой систему с автоматической сборкой мусора, вы для проверки эффективности своего кода можете захотеть узнать, каков размер "кучи" и как много в ней осталось свободной памяти. Для получения этой информации нужно воспользоваться методами totalMemory и freeMemory.

ВНИМАНИЕ!

При необходимости вы можете "вручную" запустить сборщик мусора, вызвав метод gc. Если вы хотите оценить, сколько памяти требуется для работы вашему коду, лучше всего сначала вызвать gc, затем free-Memory, получив тем самым оценку свободной памяти, доступной в системе. Запустив после этого свою программу и вызвав freeMemory внутри нее, вы увидите, сколько памяти использует ваша программа.

Выполнение других программ

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

В очередном примере используется специфичный для Windows вызов ехес, запускающий процесс notepad - простой текстовый редактор. В качестве параметра редактору передается имя одного из исходных файлов Java. Обратите внимание - ехес автоматически преобразует в строке-пути символы "/" в разделители пути в Windows - "\".

class ExecDemo { public static void main(String args[])   { Runtime r = Runtime. getRuntime(); Process p = null; String cmd[] = { "notepad", "/java/src/java/lang/Runtime.java" }; try     { p = r.exec(cmd); }     catch (Exception e)     { System.out.println("error executing " + cmd[0]); } } }

System

Класс System содержит любопытную коллекцию глобальных функций и переменных. В большинстве примеров этой книге для операций вывода мы использовали метод System.out.println(). В следующей главе будут детально рассмотрены потоки InputStream и OutputStream.

Метод currentTimeMillis возвращает текущее системное время в виде миллисекунд, прошедших с 1 января 1970 года.

Метод arraycopy можно использовать для быстрого копирования массива любого типа из одного места в памяти в другое. Ниже приведен пример копирования двух массивов с помощью этого метода.

class ACDemo { static byte a[] = { 65, 66, 67, 68, 69, 70, 71, 72, 73, 74 }; static byte b[] = { 77, 77, 77, 77, 77, 77, 77, 77, 77, 77 }; public static void main (String args[])   { System.out.println("a = " + new String(a, 0)); System.out.println("b = " + new String(b, 0)); System.arraycopy(a, 0, b, 0, a.length); System.out.println("a = " + new String(a, 0)); System.out.println("b = " + new String(b, 0)); System.arraycopy(a, 0, a, 1, a.length - 1); System.arraycopy(b, 1, b, 0, b.length - 1); System.out.println("a = " + new String(a, 0)); System.out.println("b = " + new String(b, 0)); } }

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

Date

Класс Date используется для операций с датой и временем. Через него вы можете получить доступ к дате, месяцу, году, дню недели, часам, минутам, секундам. У объектов этого класса - несколько конструкторов. Самый простой - Date() - инициализирует объект текущими датой и временем. Три остальных конструктора предлагают дополнительные возможности задавать начальные значения для нового объекта.

  • Date(year, month, date) - устанавливает указанную дату, при этом время устанавливается в 00:00:00 (полночь).
  • Date(year, month, date, hours, minutes) - устанавливает указанные дату и время, секунды устанавливаются в 0.
  • Date(year, month, date, hours, minutes, seconds) - наиболее полное задание времени, в объекте устанавливаются указанные дата и время, в том числе и секунды.

Get и set

Класс Date включает в себя набор методов для получения и установки отдельных атрибутов, хранящихся в объекте. Каждая из функций семейства get - getYear, getMonth, getDate, getDay, getHours, getMi-nutes и getSeconds - возвращает целое значение. Каждой из функций семейства set - setYear, setMonth, setDate, setHours, setMinutes и setSeconds - в качестве параметра передается целое значение. Вы также можете получить представление объекта Date в виде значения типа long с помощью метода getTime. Возвращаемое этим методом значение представляет собой число миллисекунд, прошедших после 1 января 1970 года.

Math

Класс Math содержит функции с плавающей точкой, которые используются в геометрии и тригонометрии. Кроме того, в нем есть две константы, используемые в такого рода вычислениях: - Е (приблизительно 2.72) и PI (приблизительно 3.14159).

Тригонометрические функции

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

  • sin(double а) возвращает синус угла а, заданного в радианах.
  • cos(double а) возвращает косинус угла а, заданного в радианах.
  • tan(double а) возвращает тангенс угла а, заданного в радианах.

Следующие четыре функции возвращают угол в радианах, соответствующий значению, переданному им в качестве параметра.

  • asin(double r) возвращает угол, синус которого равен г.
  • acos(double r) возвращает угол, косинус которого равен г.
  • atan(double r) возвращает угол, тангенс которого равен г.
  • atan2(double a, double b) возвращает угол, тангенс которого равен отношению а/b.

Степенные, показательные и логарифмические функции

  • pow(double у, double x) возвращает у, возведенное в степень х. Так, например, pow(2.0, 3.0) равно 8.0.
  • exp(double х) возвращает е в степени х.
  • log(double х) возвращает натуральный логарифм х.
  • sqrt(double х) возвращает квадратный корень х.

Округление

  • ceil(double а) возвращает наименьшее целое число, значение которого больше или равно а.
  • floor(double а) возвращает наибольшее целое число, значение которого меньше или равно а.
  • rint(double а) возвращает в типе double значение а с отброшенной дробной частью.
  • round(float а) возвращает округленное до ближайшего целого значение а.
  • round(double а) возвращает округленное до ближайшего длинного целого значение а.

Кроме того, в классе Math имеются полиморфные версии методов для получения модуля, нахождения минимального и максимального значений, работающие с числами типов int, long, float и double:

  • abs(a) возвращает модуль (абсолютное значение) а.
  • max(a, b) возвращает наибольший из своих аргументов.
  • min(a, b) возвращает наименьший из своих аргументов.

Random

Класс Random - это генератор псевдослучайных чисел. Используемый в нем алгоритм был взят из раздела 3.2.1 "Искусства программирования" Дональда Кнута. Обычно в качестве начального значения используется текущее время, что снижает вероятность получения повторяющихся последовательностей случайных чисел.

Из объекта класса Random можно извлекать 5 типов случайных чисел. Метод nextInt возвращает целое число, равномерно распределенное по всему диапазону этого типа. Аналогично, метод nextLong возвращает случайное число типа long. Методы nextFloat и nextDouble возвращают случайные числа соответственно типов float и double, равномерно распределенные на интервале 0.0..1.0. И, наконец, метод nextGaussian возвращает нормально распределенное случайное число со средним значением 0.0 и дисперсией 1.0.

 

42. Робота з рядками. Оболонка String. Основні методи.

В пакет java.lang встроен класс, инкапсулирующий структуру данных, соответствующую строке. Этот класс, называемый String, не что иное, как объектное представление неизменяемого символьного массива. В этом классе есть методы, которые позволяют сравнивать строки, осуществлять в них поиск и извлекать определенные символы и подстроки. Класс StringBuffer используется тогда, когда строку после создания требуется изменять. И String, и StringBuffer объявлены final, что означает, что ни от одного из этих классов нельзя производить подклассы. Это было сделано для того, чтобы можно было применить некоторые виды оптимизации позволяющие увеличить производительность при выполнении операций обработки строк. Как и в случае любого другого класса, вы можете создавать объекты типа String с помощью оператора new. Для создания пустой строки используется конструктор без параметров:

String s = new String():

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

char chars[] = { 'а', 'b', 'с' }:String s = new String(chars);    System.out.println(s);

Этот фрагмент кода выводит строку "abc". Итак, у этого конструктора - 3 параметра:

String(char chars[], int начальныйИндекс, int числоСимволов);

Используем такой способ инициализации в нашем очередном примере:

char chars[] = { 'a', 'b', 'с', 'd', 'e', 'f' }:String s = new String(chars,2,3);System.out.println(s);

Этот фрагмент выведет "cde".

лас String в Java містить понад 50 методів, які можуть бути корисні при програмуванні. Нижче наведено список з найбільш корисних методів.

Методи String



Поделиться:


Последнее изменение этой страницы: 2021-12-07; просмотров: 73; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.224.39.32 (0.142 с.)