Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.87/872: Рейтинг темы: голосов - 872, средняя оценка - 4.87
68 / 68 / 1
Регистрация: 21.12.2012
Сообщений: 458

Java FAQ: для начинающих

18.01.2013, 18:49. Показов 177042. Ответов 118
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем форумчанам,в этом Java FAQ,е постараюсь собрать все самое нужное о Java)
Для начала давайте разберемся,что такое Java?Как говорит нам вики:

Java — объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems
(в последующем приобретённой компанией Oracle). Приложения Java обычно компилируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине (JVM) вне зависимости от компьютерной архитектуры. Дата официального выпуска — 23 мая 1995 года.(http://ru.wikipedia.org/wiki/Java)

Но Java это не только язык программирования,но и платформа,которая позволяет сделать нам все,что душа захочет,и вообще это классная весчь)

Пойдем дальше,многие видели,что есть какая-то Java SE,EE и.т.дНо какую Java,мне использовать?

Java SE — Java Standard Edition, основное издание Java, содержит компиляторы, API, Java Runtime Environment; подходит для создания пользовательских приложений, в первую очередь — для настольных систем.
Java EE — Java Enterprise Edition, представляет собой набор спецификаций для создания программного обеспечения уровня предприятия(сервлеты,jsp,и.тд).
Java ME — Java Micro Edition, создана для использования в устройствах, ограниченных по вычислительной мощности, например в мобильных телефонах, КПК, встроенных системах;
JavaFX — технология, являющаяся следующим шагом в эволюции Java как Rich Client Platform; предназначена для создания графических интерфейсов корпоративных приложений и бизнеса.
Java Card — технология предоставляет безопасную среду для приложений, работающих на смарт-картах и ​​других устройствах с очень ограниченным объемом памяти и возможностями обработки.

Видите,выбирай по вкусу,идем дальше,как мне начать пользоваться и писать на Java?Очень просто Нужно выпольнить несколько простых шагов:
  1. Нужно скачать JDK(скачать отсюда http://www.oracle.com/technetw... 33151.html)
  2. Установить JDK.Это просто щелкайте по установленному приложению,она загрузилась,дальше настройте системные переменные.Заходите Пуск\пр.щ.мыши по мой компьютер\свойства\слева меню дополнительные параметры системы\внизу переменные среды\системные переменные.Далее нажмите создать,и пропишите сначала
    JAVA_HOME(имя переменной) C:\Program Files\Java\jdk1.8.0_92(путь взял для примера)(значение переменной)
    PATH(имя переменной) C:\Program Files\Java\jdk1.8.0_92\bin(путь взял для примера)(значение переменной)
  3. Все!!)можно уже писать на Java,но вы скажете,что прямо в командной строке,я скажу -да)Но можно и в IDE(http://ru.wikipedia.org/wiki/%... 0%BA%D0%B8) .Их много,выбрал самые популярные):
    1. Eclipse
    2. Netbeans
    3. IntelliJ IDEA(версия Ultimate Edition - платная, Community Edition - бесплатная)
    4. Jdeveloper
Тут уж ваш выбор,где писать,почитайте,установите,какая вам понравится в ней и пишите)

Итак,мы все настроили ,установили,давайте что-нибудь напишем на Java,давайте,открываем понравившуюся IDE,и пишем в ней такое:
Java
1
2
3
4
5
public class Hello{
    public static void main(String[] args) {
        System.out.println("Тут не Hello Word,странно??");
    }
}
компилируем:
Bash
1
javac Hello.java
и запускаем:
Bash
1
java Hello
Смотрим в консоль ,и видим:
Тут не Hello Word,странно??
Можете порадоваться,но то,что вы сейчас написали,ради чего мучались,это капля в море,из всего моря..языка Java
Поэтому,мы же хотим стать крутыми программистами,нам нужно дольше изучать Java,и тут встает вопрос о литературе,долго о ней говорить я не буду,просто скажу:
Кей Хорстманн Гари Корнелл Java 2 Том 1.Основы
Кей Хорстманн Гари Корнелл Java 2 Том 2.Тонкости программирования
Я считаю(и не один я)лучшими книгами по Java для начинающих

На нашем форуме есть раздел Литература по Java Литература по Java .Там много интересного почитайте)

Вот пару интересных ссылок,которые могут помочь:
http://www.google.ru/
http://www.javaworld.com/
http://www.java2s.com/ (Много примеров интересных,и туториалов )
Ну и конечно:
https://www.cyberforum.ru/java/

(предлагайте ссылки в сообщениях)


P.S Предлагаю в этой теме выложить простые программы для начинающих(я в их числе)
Если я где-то ошибся ,исправьте,следующий FAQ,создание простого сайтика,с картинками!))
Всем пока,удачи!!)
И главное не путайте Java и JavaScript,это разные вещи)

Добавлено через 11 минут
Пару ссылок,дополнение:
http://habrahabr.ru/post/43293/
http://habrahabr.ru/post/66568/
http://habrahabr.ru/post/67777/
33
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.01.2013, 18:49
Ответы с готовыми решениями:

Java FAQ: для тех кто знает (учил) С/С++
1. Строки сравниваются не при помощи оператора == а при помощи метода equals ("a" == "a") == true...

JAva, с чего начать?
С чего начать ?

Книги по Java для начинающих
Подскажите пожалуйста какие книги вы посоветовали бы начинающему в изучении Java

118
18.01.2013, 19:32
 Комментарий модератора 
Прошу всех желающих сюда написать, постить только по теме, остальное будет удаляться
0
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
19.01.2013, 00:54
Удобная замена перебору элементов цикла:

Java
1
2
3
for(int i: arr){
  System.out.println(i+" ");
}
замена вот такого кода

Java
1
2
3
for(int i=0; i<arr.size(); ++i){
  System.out.println(arr.get(i)+" ");
}
минусы: нельзя обращаться к элементам по индексу

---------------------------------------------------------

Добавлено через 14 минут
Для обработки исключительных ситуаций можно использовать конструкцию типа
Java
1
2
3
4
5
6
try{
какое-либо действие
}
catch(Exception e){
обработка исключения
}
Один из множества примеров использования: при неверно введенных данных выводить соотвествующее сообщение, при попытке деления на ноль и т.д.

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

---------------------------------------------------------

Добавлено через 1 час 59 минут
Перевод в двоичную систему счисления
Java
1
2
3
4
5
6
7
8
9
10
11
12
public static String toBinary(int a){    
        int b;  
        String temp = "";  
        
        while(a!=0){
            b = a%2;  
            temp = b + temp;  
            a = a/2; 
        }
        
        return temp; 
    }
 Комментарий модератора 
http://docs.oracle.com/javase/... ring(long)


Добавлено через 48 секунд
Ряд чисел Фибоначи
Java
1
2
3
public static int f(int x){
        return ((x == 1) || (x == 2))? 1 : (f(x-2) + f(x-1));
    }
Добавлено через 1 минуту
В Java поддерживается тернарный оператор, он имеет такую конструкцию:
Java
1
a = (первое условие) ? первое значение: (второе значение)
если истино первое условие то присвоится первое значение, иначе второе, удобная замена if then

---------------------------------------------------------

Добавлено через 6 минут
В Java поддерживается множество видов записей, например:

Экспоненциальная:
Java
1
double a = 123.5e+4
Шестандцатиричная:
Java
1
double a = 0xBABA
Восьмеричная:
Java
1
double a = 014;
Двоичная:
Java
1
int a = (int) 0b111000101
Добавлено через 21 минуту
В Java поддерживается переменное кол-во аргументов метода:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Main {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println(sumAllInt(1,2,3,4,5));
        
    }
    
    public static int sumAllInt(int ... x){
        int sum = 0;
        
        for(int z: x){
            sum += z;
        }
 
        return sum;
    }
}
Данный метод на вход получает какое-то кол-во аргуметов типа int, складывает их и возвращает результат!
8
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
24.01.2013, 14:27
Для большей читабельности большого числа, в Java (а именно начиная с 7 версии) корректна такая запись:
Java
1
int a = 2_000_000; //a = 2000000
13
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
13.02.2013, 16:10
Как известно при работе с потоками ввода/вывода желательно обернуть этот участок к try catch finally, например:

Java
1
2
3
4
5
6
7
8
9
10
InputStream is = new FileInputStream("a.txt");
        try {
 
            /* здесь происходит чтение файла */
 
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            is.close();
        }
Начиная с java 7 такую конструкцию можно переписать на следующую:
Java
1
2
3
4
5
6
7
try (InputStream is = new FileInputStream("a.txt")){
 
            /* здесь происходит чтение файла */
 
        } catch (Exception e) {
            e.printStackTrace();
        }
В этом случае можно не писать блок finally, is гарантированно закроется
зы: такой способ прокатит только для классов, реализующих интерфейс AutoCloseable

Добавлено через 13 минут
Если имеется несколько блоков catch с одинаковой обработкой исключения, т.е.
Java
1
2
3
4
5
6
7
try {
            /* Какое-то действие */
        } catch (ArithmeticException e) {
            e.printStackTrace();
        } catch (NumberFormatException e){
            e.printStackTrace();
        }
То блоки catch можно объединить:
Java
1
2
3
4
5
try {
            /* Какое-то действие */
        } catch (ArithmeticException | NumberFormatException e) {
            e.printStackTrace();
        }
Добавлено через 22 часа 48 минут
Достаточно простой алгоритм нахождения кол-ва делителей числа вот таким способом:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.io.IOException;
 
public class Main {
    public static void main(String[] args) throws IOException {
        long start = System.currentTimeMillis();
        
        System.out.println(deliteli(1_000_000_000));
        
        long end = System.currentTimeMillis();
        
        System.out.println(end-start+" ms");
    }
 
    public static int deliteli(int x) {
        int rez = 1;
        int del = 2;
        int counter = 0;
 
        while (x > 1) {
            if (x % del == 0) {
                x /= del;
                ++counter;
            }
            
            if (x % del != 0) {
                rez *= (counter + 1);
                counter = 0;
                ++del;
            }
        }
 
        return rez;
    }
}
4
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
14.02.2013, 20:01
Велосипед для переворачивания строк:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Main {
    public static void main(String[] args) {
        System.out.println(reverse("Hello, cyberforum.ru"));
    }
    
    static String reverse(String s){
        StringBuilder rez = new StringBuilder();
        
        for(int i=0, j=s.length()-1; i<=s.length()-1; ++i, --j){
            rez.append(s.charAt(j));
        }
        
        return rez.toString();
    }
}
Еще один вариант с рекурсией (автор infected):
Java
1
2
3
4
5
6
7
8
9
 public String reverse(String str){
        if (str.length() <= 1) return str;
  
        String result = "";
        
        result += str.charAt(str.length()-1) + reverse(str.substring(0,str.length()-1));
          
        return result;
    }
Добавлено через 6 минут
И еще один вариант:
Java
1
2
3
static String reverse(String s){
        return new StringBuilder(s).reverse().toString();
    }
3
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
16.02.2013, 13:49
Маленькая утилита для построения UML-диаграмм: тынц
1
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
14.03.2013, 14:25
Вы можете использовать параметры, передаваемые в метод main, в своей программе.
Например:
Java
1
public static void main(String[] args)
Параметры же мы передаем при запуске программы через консоль! Пусть имя главного класса Main, тогда java Main one two, следовательно в
Java
1
args[0]
окажется "one", а в
Java
1
args[1]
"two", ну а дальше с этими данными можно оперировать как душе угодно)
зы: массив можно называть как угодно, т.е.
Java
1
public static void main(String[] wow)
не будет ошибкой

Вот маленький пример:
Java
1
2
3
4
5
6
7
8
9
10
11
public class Main {
    public static void main(String[] numbs) {
        int rez = 0;
        
        for(String x: numbs){
            rez += Integer.parseInt(x);
        }
        
        System.out.println(rez);
    }
}
Миниатюры
Java FAQ: для начинающих  
0
34 / 34 / 5
Регистрация: 25.02.2013
Сообщений: 221
05.05.2013, 00:26
здравствуйте! не нашёл темы где можно задать вопросы, поэтому согрешу и напишу здесь...
Java
1
2
3
4
String greet = "Hello";
int index = greet.offsetByCodePoints(0, 3);
int cp = greet.codePointAt(index);
System.out.println(cp);
выводит 108...что это такое 108? как в книге написано, так это кодовая точка, но где таблицу посмотреть этих точек?
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
05.05.2013, 11:30
в таблице UTF-16
1
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
05.05.2013, 21:40
Как сделать окно невидимым?

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.stage.Stage;
 
/**
 * 
 * @author Севак Аветисян
 * 
 */
 
public class Main extends Application {
 
    @Override
    public void start(final Stage stage) throws Exception {
        Group root = new Group();
        Scene scene = new Scene(root, 400, 300);
 
        scene.setOnKeyReleased(new EventHandler<KeyEvent>() {
            @Override
            public void handle(KeyEvent e) {
                if (e.getCode() == KeyCode.ENTER) {
                    stage.setOpacity(stage.getOpacity() == 1 ? 0 : 1);
                }
            }
        });
 
        
        stage.setScene(scene);
        stage.show();
    }
 
    public static void main(String[] args) {
        launch(args);
    }
 
}
В программе мы вешаем на сцену обработчик, если нажатая кнопка - enter, то меняем прозрачность окна в зависимости от текущего состояния

p.s.: стандартными средствами java не перехватить событие, если приложение не в фокусе (вот статья на эту тему)
2
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
06.05.2013, 21:57
Метод для проверки, есть ли в числе повторяющиеся цифры:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public static boolean isNotDuplicateNumber(int x) {
        String s = String.valueOf(x);
 
        if (s.length() > 10) {
            return false;
        }
 
        Set<Integer> set = new HashSet<Integer>();
 
        for (int i = 0; i < s.length(); ++i) {
            set.add(Character.digit(s.charAt(i), 10));
        }
 
        return (s.length() == set.size());
 
    }
1) Если заранее известно, что число состоит из 11 и более цифр, то в этом числе есть повторяющиеся цифры
2) Все цифры будут разными, если размер множества будет равен кол-ву цифр числа
1
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
26.06.2013, 20:46
Наткнулся сегодня на один интересный проект под названием AquaFX (страница проекта)
Он помогает легко привести внешний вид вашего JavaFX приложения к одноименной теме MacOS X

Поигрался и вот что получилось (Github)

Из документации видно: для того, чтобы сменить тему вашего приложения надо вызвать один метод
Java
1
AquaFx.style();
Просто, не правда ли?

Еще одна прелесть AquaFX заключается в том, что она позволяет менять размеры и стили элементво, например:
если мне захочется сделать "поисковый" TextField, то я сделаю следующее:
Java
1
2
3
TextFieldStyler tfStyler = AquaFx.createTextFieldStyler();
tfStyler.setType(TextFieldType.SEARCH);
tfStyler.style(textField);
Тоже самое можно проделать и с другими элементами, полное описание всех возможных Style'ов можно найти на сайте во вкладке Styled controls, ссылка выше!

p.s.: для того, чтобы не нагромождать код, написал классы-обертки (папка Controls)
p.s.s.: самое главное: для того, чтобы завести все это дело, нужно установить JDK 8, процитирую:
Minimum version is Build b92, latest tested and working verison is Build b94, which is recommended to use.
p.s.s.: вот еще одна полезная ссылка (тык)

________________________________________ ________________________________________ _________________


Вчера для меня стало открытием, что в java можно метод назвать так:

Java
1
2
3
4
5
6
7
8
9
10
11
12
package com.sevak_avet;
 
public class Main {
    public static void main(String[] args) {
        $(2,3);
    }
    
    public static void $(int a, int b){
        System.out.println(a+b);
    }
    
}
p.s.: к использованию, конечно, не рекомендуется! ну а так забавно

________________________________________ ________________________________________ _________________

Прозрачное окно в JavaFX:

1) При создании Scene нужно указать ее цвет:
Java
1
Scene scene = new Scene(root, 500,300, Color.TRANSPARENT);
2) Нужно поменять стиль нашего Stage
Java
1
stage.initStyle(StageStyle.TRANSPARENT);
1
 Аватар для AckiyBolt
653 / 402 / 35
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
27.06.2013, 13:30
Полная диаграмма основных коллекций:


Диаграмма основных эксепшенов:
8
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
27.06.2013, 20:42
@AckiyBolt, вот еще вдобавок к коллекциям (где-то была на русском, не смог найти)
Миниатюры
Java FAQ: для начинающих  
5
7 / 7 / 1
Регистрация: 07.05.2013
Сообщений: 17
11.07.2013, 20:25
Цитата Сообщение от Ванеек Посмотреть сообщение
Пуск\пр.щ.мыши по мой компьютер\свойства
или Win + Pause
2
30 / 10 / 1
Регистрация: 14.03.2013
Сообщений: 53
31.08.2013, 01:24
Цитата Сообщение от Ванеек Посмотреть сообщение
IntelliJ IDEA(Платная)
Уже есть и бесплатная. Правда урезана , и называется Community
Ссылочка:http://www.jetbrains.com/idea/download/index.html
0
5 / 2 / 1
Регистрация: 10.03.2013
Сообщений: 15
06.11.2013, 07:52
К литературе можно добавить Шилдт Г. "Java. Полное руководство".
Книга достаточно новая (издана 2011 - в Америке, 2012 - у нас), рассказывает про Java 7.
0
0 / 0 / 0
Регистрация: 19.09.2015
Сообщений: 15
17.11.2013, 02:26
Привет всем. Вопрос, когда создаю простейшую прогу в командной строке после java main пишет could nod find or load main class main. Что не так?

Добавлено через 43 минуты
Странное дело: дописал ";" в начале строки в переменных PATH и все норм стало. Правда один раз.Потом не находит компилируемый файл после команды javac main...
0
37 / 31 / 13
Регистрация: 08.12.2012
Сообщений: 815
23.12.2013, 00:42
очень здорово конечно тут написано...
у меня винда 7 32 разрядная
не пойму какую там на сайте javu скачать
куча мала всего
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.12.2013, 00:42
Помогаю со студенческими работами здесь

Самоучитель java для начинающих
Пожалуйста, подскажите где взять нормальный самоучитель java, не понимаю, что это за язык((( P.S. Программировать хочу для Android,...

Литература по Java для начинающих
Какие книги вы бы посоветовали для тех,кто только начинает изучение Java?

Java FAQ: задачи
Всем привет. Недавно увидел достаточно много интересных задач, а почему бы нам не собрать в одном месте различные задания по Java, а...

Задача Java для начинающих. Шилдт Г. ошибка?
Ребята возможно баян. Но правда ль выходит в варианте ответа на стр 559 для поиска простого числа ошибка? Выводится число 4 - которое не...

Исходники кода для книги Java 8 (2015) Шилдт - руководство для начинающих
Там код иногда странные ошибки возникают особенно UNicode сбивается , не могу нормально точь в точь переписать, а исходинки чет именно на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru