1

Тема: Java FAQ

Що таке Java?
Java - об'єкто-орієнтована мова програмування, яка знайшла своє застосування практично всюди: починаючи від Web-додатків і закінчуючи десктопними програмами. На Java не можна написати необ'єкто-орієнтовану програму, навідміну від C++, PHP, Python, які просто підтримують об'єкти.


Що таке віртуальна Java-машина?
Java-код компілюється в спеціальний байт-код, який є платформонезалежний. Для запуску цього коду необхідна віртуальна Java-машина (JVM). JVM доступна для всіх сучасних платформ, тому про програми можна сказати "Write once, run anywhere".


Що таке JRE та JDK?
JRE (Java Runtime Environment) - включає JVM та бібліотеку стандартних класів.
JDK (Java Development Environment) - комплект засобів для розробника на мові Java, який включає JRE, компілятор, приклади та документацію, а також інші утиліти. JDK не містить інтегрованого середовища розробки, тому потрібно окремо текстовий редактор, а всі дії, що пов'язані з компіляцією відбуваються за допомогою командного рядка. Завантажити JRE та JDK можна на офіційному сайті.


Які є IDE для розробки програм на Java?
- NetBeans
- Eclipse
- IDEA
- JDeveloper
- JBuilder


З чого почати вивчення мови Java?
Для початку необхідно запастись хорошою книжкою. Я би рекомендував почати з книги С. Хортсманн, Г. Корнелл "Java2". Також кілька навчальних уроків для новачків є на офіційному сайті Oracle.

Інші книги:
- Head First Java. Second Edition. (O'Reilly) - з картинками. Досить легко сприймається матеріал.
- П.Ноутон, Г.Шилдт - "Java 2. Наиболее полное руководство" - все розкладено по поличкам.
- Bruce Eckel - "Thinkng in Java" (Философия Java) - для тих хто вже написав кілька програм на Java і хоче перейти на більш серйозний рівень.
- Joshua Bloch - "Effective Java" - сильна книжка.
Ще тут можна глянути.


Web-ресурси:
http://docs.oracle.com/javase/6/docs/api/index.html - API
http://www.java2s.com/ - велика кількість прикладів
http://www.oodesign.com/ - паттерни в Java
http://www.javatalks.ru/ - російськомовний форум по Java.
http://forum.vingrad.ru/forum/java-forum.html - розділ на російськомовному форумі Vingrad.Ru
http://www.youtube.com/user/ytkach - велика кількість толкових відео по Java
http://stackoverflow.com/questions/tagged/java - stackoverflow, багато практичних прикладів
«Основи програмування на Java» prometheus.org.ua

Чи потрібно знати C++ для вивчення Java?
Ні, зовсім не потрібно знати C або C++ для вивчення Java. Java набагато простіше ніж C++. Ці знання будуть лише невеликим плюсом. Є люди, які вивчили Java після Pascal/Delphi або взагалі у яких Java перша мова програмування.


В чому різниця між Java та JavaScript?
Спільного у них лише слово Java. Javascript в основному використовується як скриптова мова для виконання сценаріїв на стороні клієнта (Web-браузерів).

2

Re: Java FAQ

Доброго часу доби!!! Незалежно від того, що я пішов по шляху самостійного вивчення програмування(конкретна мова - Java), я хочу сказати, що Java - дуже перспективне середовище, причому, - більш безпечніше.
Але мене ще більше радує той факт, що Java працює з Юнікодом, а це означає,  що я можу навіть програми у консольному виконанні створювати та прописувати вихідний код на російській та українській мовах, і все коректно відображається.
Рекомендую тим, хто хоче отримати від Java те, що не вдавалося отримати раніше при роботі з іншими мовними
базами(граматика і все таке...)

З Повагою,
Ігор.
АР Крим.

Подякували: Replace1

3

Re: Java FAQ

Якщо є якісь питання, не соромтесь - запитуйте на форумі :)

4

Re: Java FAQ

Привіт спільноті

Маю таку халепу. Знайшов код для спойлера, все класно працює, але відкриває лише один блок. Ось код

<html>

<head>
<base fptype="TRUE">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>

</<head>
<body>
<script language="javascript">
function toggle() {
var ele = document.getElementById("toggleText");
var text = document.getElementById("displayText");
if(ele.style.display == "block") {
ele.style.display = "none";
text.innerHTML = "Показати";
}
else {
ele.style.display = "block";
text.innerHTML = "Приховати";
}
}
</script>


<a href="javascript:toggle();" id="displayText">Показати</a>
<div id="toggleText" style="display: none;">Тут має бути прихований вміст</div>

<p>

<a href="javascript:toggle();" id="displayText">Показати</a>
<div id="toggleText" style="display: none;">Тут має бути прихований вміст 2</div>

</body>
</html>

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

Re: Java FAQ

petrovych50 скажу, коли напишите повідомлення у відповідному розділі.
P.S: От що за манера, писати будь-де!

Подякували: Patron1

6

Re: Java FAQ

Доброго дня дуже хороша стаття для починающих програмістів я вивчаю java 3 місяці мені дуже сподобалась ця мова програмування я з php перейшов на джава. Тепер читаю К. Сьерра, Б. Бейтс - Изучаем Java (Мировой компьтерный бестселлер) - 2012  дуже хороша книга далі думаю читати книгу Thinking_in_Java_(4th_Edition) думаю що за півроку буду вже виконувати складні завдання також вивчаю анг.мову як без неї задачки виконую на javarush.ru сайт мені сподобався можна почитати багато цікавого.
У мене питання:
Чи потрібна математика в програмуванні?
Книги які допоможуть розібратись в ООП бажано не на 1000 сторінок, а щоб коротко і ясно?
Дякую за увагу.

7

Re: Java FAQ

Lesko.Serhiy написав:

Чи потрібна математика в програмуванні?

Звичайно. Без розуміння, що таке гомоморфізм функції, там нічого робити.

МАКЕ ЦКЯАІИЕ БЯЕАТ АБАІИ
Подякували: leofun011

8

Re: Java FAQ

Без розрахунку дифиренціяла і тетриса не напишеш.

Хто хоче жити, той повинен боротися, а хто не захоче чинити опір у цьому світі вічної боротьби — той не заслуговує права на життя.
Подякували: leofun011

9

Re: Java FAQ

Чи потрібна математика в програмуванні?

так, але елементарна, головне почитати і зрозуміти, для криптографії вже потрібна вища математика

Книги які допоможуть розібратись в ООП бажано не на 1000 сторінок, а щоб коротко і ясно?

я ООп почав краще розуміти після вивчення чистого С

- Поганому трояну фаєрвол заважає
- Ніколи не програмуйте та не пийте пиво
Якщо ви з першого разу написали програму, в якій немає жодної помилки, повідомте про це системного програмісту: він виправить помилки в компіляторі

10

Re: Java FAQ

reverse2500 написав:

я ООп почав краще розуміти після вивчення чистого С

Цікаво, як це можливо?

x
Подякували: quez1

11

Re: Java FAQ

гадаю, що в голові все уляглося, а до того каша була.

Хто хоче жити, той повинен боротися, а хто не захоче чинити опір у цьому світі вічної боротьби — той не заслуговує права на життя.
Подякували: koala1

12

Re: Java FAQ

гадаю, що в голові все уляглося, а до того каша була.

саме так, починав з С++, процедурне програмування це ще нічого, але як діло дійшло до ООП, то далеко воно не пішло, а С++ без ООП бидлокод, перейшов на чистий С з компіляторами С ( сс, clang, Pelles C ) все стало зрозуміло, навіть тому що читав Кернігана швидше з а все, але коли вирішив вчити Java то багато чого зразу проявлялось в ООП

- Поганому трояну фаєрвол заважає
- Ніколи не програмуйте та не пийте пиво
Якщо ви з першого разу написали програму, в якій немає жодної помилки, повідомте про це системного програмісту: він виправить помилки в компіляторі

13

Re: Java FAQ

Прихований текст
Я взагалі не розумію тих людей хто рекомендує починати з ООП, а особливо з плюсів. Ні, воно не важка ідеологія, але кількість непотрібних прибамбасів у cpp зашкалює та засоряє мозок. Узяв на днях почитати (для роботи з Qt), усе було файно, допоки не дійшло до конструкторів копій, та проблем з його використанням (паразитні вказівники). Потім посилання якісь дурні (як зрозумів, воно потрібне аби зробити код більш читабельним, а то бачите зірочка плутає код :D). Купа нелогічних моментів і ніякого спрощення в написанні коду.. ну хіба що більш структурований проект отримаємо (використовуючи простори імен та класи). Поглиблене вивчення цього маразму не потрібне :/ Прототип на PyQt/PySide та облизування класикою (чиста сішечка) рулить.

Математика? Ходить думка, що хто гарно розуміється на математиці, то у нього все ок з логічним мисленням, без якого в програмуванні нема чого робити. Для прикладухи в Java буде достатньо знань систем числення (ІМХО).
Ну а поглиблене знання, то це криптографія, геймдев, робота з великими даними (усіляка оптимізація, складання оптимальних алгоритмів, ІМХО).
Вирішив був прочитати про еліптичну криптографію, а там таке:
http://i63.fastpic.ru/big/2014/1220/ae/90dd097b0e1b05669671e662f3483cae.png
..і сидиш фарами кліпаєш, бо нічого незрозуміло :D

Подякували: 0xDADA11C7, leofun012

14

Re: Java FAQ

Kane написав:

Вирішив був прочитати про еліптичну криптографію, а там таке:
http://i63.fastpic.ru/big/2014/1220/ae/90dd097b0e1b05669671e662f3483cae.png
..і сидиш фарами кліпаєш, бо нічого незрозуміло :D

Це запис математичною мовою, як і з мовами програмування просто слід знати що який знак означає, але математики тут нема.

x
Подякували: koala, Regen, leofun013

15

Re: Java FAQ

Ну гаразд хай буде потрібна математика хоча я  її не дуже люблю але почитавши хорошу літературу можна зрозуміти так вот порадьте будь-ласка хорошу літературу що до математики, а також як я й просив книги з ООП.
Дякую за увагу.

16

Re: Java FAQ

порадьте будь-ласка хорошу літературу що до математики

там математика спецефічна, наприклад з масивами в "С" можна виконувати дії додавання та віднімання і все. Все буде там в літературі, головне читайте.

- Поганому трояну фаєрвол заважає
- Ніколи не програмуйте та не пийте пиво
Якщо ви з першого разу написали програму, в якій немає жодної помилки, повідомте про це системного програмісту: він виправить помилки в компіляторі

17

Re: Java FAQ

Можливо у Вас є декілька рад для початківців будь-ласка поділіться з нами цим можливо є граблі на які стають всі java програмісти або поділіться на якій платформі Ви працюєте або яку краще вибрати?

18

Re: Java FAQ

Lesko.Serhiy написав:

можливо є граблі на які стають всі java програмісти

Не знають, чим відрізняється абстрактний клас від інтерфейсу.

МАКЕ ЦКЯАІИЕ БЯЕАТ АБАІИ

19

Re: Java FAQ

Можете поянити дуже цікаво.

20 Востаннє редагувалося P.Y. (24.12.2014 18:36:04)

Re: Java FAQ

1) Абстрактний клас — це просто клас, у якого частина методів може бути абстрактною (але можуть бути й неабстрактні методи, поля та ін. — головна відмінність від звичайного класу зводиться лише до неможливості створити екземпляр абстрактного класу). Інтерфейс може мати лише́ абстрактні методи.
2) Клас (абстрактний чи неабстрактний) може бути нащадком не більше ніж одного класу (абстрактного чи неабстрактного) і скількох-завгодно інтерфейсів. Інтерфейс може бути нащадком лише інтерфейсів (не класів).

py -3 -m pip install git+https://github.com/snoack/python-goto