Java в Първи Стъпки
- Теория
- Код
Въведение в Java: Първи стъпки 👣
Примитивни Типове и Променливи 🔢
В програмирането използваме променливи - те са като кутии, където пазим информация. В Java, тези кутии се разделят на два вида: примитивни и референтни. Примитивните са по-прости и директно съхраняват стойности, докато референтните пазят адреси към места в паметта, където се намира истинската информация.
Примери за Примитивни Типове:
- byte, short, int, long - за числа без десетични знаци.
- float, double - за числа с десетични знаци.
- boolean - за истина (
true) или лъжа (false). - char - за единични символи като
'A'или'!'.
📌 Важно: Използвайте винаги най-малкия примитивен тип, който ви трябва, за да спестите памет!
Референтни Типове: Object и String 📦
В Java, референтните типове са тези, които съдържат референции към обекти в паметта, а не самите стойности на обектите.
Object:
Objectе основният клас, от който наследяват всички други класове в Java. Всеки обект в Java имплицитно е или наследник наObject.Objectкласът предоставя базови методи катоtoString(),equals(),hashCode(), иgetClass().
Object obj = new Object();
System.out.println(obj.toString()); // Връща стринг представяне на обекта
String:
Stringе референтен тип и представлява поредица от символи. Въпреки че се държи като примитивен тип в много отношения, той всъщност е обект.- Стринговете в Java са неизменяеми (immutable), което означава, че веднъж създаден, низът не може да бъде променен.
String greeting = "Здравей, свят!";
Примитивни Типове и Референтни Типове:
- Примитивните типове като
int,char,double, са с малка буква и съхраняват директно стойностите си в паметта. - Референтни типове като
String,Integer,Doubleса с главна буква и са класове, които съдържат методи и свойства.
int primitiveInt = 5; // Примитивен тип
Integer referenceInt = Integer.valueOf(5); // Референтен тип
Разбирането на разликата между примитивните и референтните типове е важно, защото влияе на начина, по който се управлява паметта и се работи с променливите в програмата.
Оператори и Изрази ➕➖✖️➗
Операторите са като действия, които можем да използваме върху променливите:
- Унарни (само един участник):
++,--,+,-,~,!,(тип). - Аритметични (за смятане):
+,-,*,/,%. - Сравнение (за сравняване):
<,<=,>,>=,==,!=. - Логически (за комбиниране на истинност):
&&,||.
Вход и Изход от Конзолата 💻
Изход от конзолата:
За да покажете съобщение на потребителя, използвайте System.out.print() за прост текст или System.out.println() за текст с нов ред след него.
System.out.println("Учим Java с усмивка! 😄");
Ако искате да форматирате изхода, може да използвате System.out.printf() или System.out.format().
System.out.printf("Температурата е: %.2f градуса\n", 36.6);
Вход за конзолата:
Използвайте класа Scanner за да прочетете вход от потребителя.
Scanner scanner = new Scanner(System.in);
System.out.print("Как се казваш? ");
String name = scanner.nextLine();
System.out.println("Здравей, " + name + "!");
Цикли в Java 🔄
Циклите ни позволяват да повторим дадена част от кода без да го преписваме отново.
for Цикъл:
Идеален за случаите, когато знаем колко пъти трябва да се повтори действието.
for(int i = 1; i <= 10; i++) {
System.out.println("Число: " + i);
}
while Цикъл:
Използвайте, когато не сте сигурни колко пъти ще трябва да повторите действията.
int i = 1;
while(i <= 10) {
System.out.println("Число: " + i);
i++;
}
do...while Цикъл:
Сходен с while, но се гарантира, че действието ще се изпълни поне веднъж.
int i = 1;
do {
System.out.println("Число: " + i);
i++;
} while(i <= 10);
for-each Цикъл:
Предпочитан при обхождането на масиви и колекции.
String[] fruits = {"ябълка", "банан", "череша"};
for(String fruit : fruits) {
System.out.println("Плод: " + fruit);
}
Масиви в Java 📚
Масивите представляват колекция от елементи от един и същи тип.
Деклариране на Масив:
int[] myArray;
Инициализация на Масив:
myArray = new int[5];
Инициализация със стойности:
int[] myArray = {1, 2, 3, 4, 5};
Достъп до елементи:
int firstElement = myArray[0];
Многомерни Масиви:
int[][] myMatrix = new int[5][5];
Интересни Факти и Съвети 🌟
Специфични и Интересни Характеристики на Java:
- Garbage Collection: Java автоматично управлява паметта, което означава, че обекти, които вече не се използват, автоматично се изтриват, за да освободят ресурси.
- Платформена независимост: Кодът, написан в Java, се компилира в байткод, който може да се изпълнява на всяка машина с Java Virtual Machine (JVM), което прави Java идеална за крос-платформени приложения.
- Reflection: Java позволява на програмите да анализират себе си в рантайм, което означава, че един Java програма може да изследва или "разгледа" своя собствен класов строеж.
- Конкурентност: Java е един от езиците, които поддържат многонишково програмиране на езиково ниво, което позволява ефективно изпълнение на асинхронни операции и паралелни процеси.
ОПЕРАТОРИ И ИЗРАЗИ
Аритметични оператори:
int a = 5;
int b = 3;
int сума = a + b; // 8
int разлика = a - b; // 2
int произведение = a * b; // 15
int частно = a / b; // 1
int остатък = a % b; // 2
Обяснение: Освен основните аритметични оператори, имаме и оператора %, който връща остатъка при деление.
Оператори за сравнение:
boolean равни = (a == b); // false
boolean различни = (a != b); // true
boolean по_голямо = (a > b); // true
boolean по_малко = (a < b); // false
СТАНДАРТЕН ВХОД И СТАНДАРТЕН ИЗХОД ОТ КОНЗОЛАТА
Вход от конзолата:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Моля, въведете вашето име: ");
String име = scanner.nextLine();
System.out.print("Моля, въведете вашата възраст: ");
int възраст = scanner.nextInt();
System.out.println("Здравей, " + име + "! Ти си на " + възраст + " години.");
}
}
ЦИКЛИ
For цикъл:
for (int i = 0; i < 5; i++) {
System.out.println("Числото е: " + i);
}
While цикъл:
int i = 0;
while (i < 5) {
System.out.println("Числото е: " + i);
i++;
}
Do-While цикъл:
int i = 0;
do {
System.out.println("Числото е: " + i);
i++;
} while (i < 5);
МАСИВИ
Декларация и инициализация:
int[] числа = {1, 2, 3, 4, 5};
Достъп до елементи:
int първоЧисло = числа[0]; // 1
Проход по масив с for цикъл:
for (int i = 0; i < числа.length; i++) {
System.out.println("Число на индекс " + i + " е: " + числа[i]);
}