This repository has been archived on 2024-08-23. You can view files and clone it, but cannot push or open issues or pull requests.
lessons/Java/Java.md
2023-09-24 09:01:39 +00:00

77 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Java
## Функция main
```Java
package org.example;
public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
```
## Сокращения InteliJ
* psvm - public static void main
* sout - Sytem.out.println()
* serr - System.err.println()
* I - for(Object object: ){}
* fori - for (int i = 0; i< ; i++) {}
* shift + shift - поиск по проекту
* ctrl + alt + t - сниппеты для блоков кода (циклы, if, switch, try-catch)
* alt + insert - сниппеты для класса
## Строки
Строки неизменяемые (immutable) и не могут иметь наследников (final). Для изменения копии
```Java
// foo и bar - 1 объект в Pool (аля static)
String foo = "foo";
String bar = "foo";
// baz - объект в куче
String baz = new String("baz");
```
### StringBuffer и StringBuilder
Данные типы - изменяемые строки с изменениями на месте. StringBuffer синхронизирует методы, поэтому медленее, но можно работать в многопотоке. StringBuilder быстрее, но методы не синхронизирует
```Java
// Можно передать строку в инициализатор, но не обязательно
StringBuffer sb = new StringBuffer();
sb.append("foo");
sb.append(5);
```
#### Методы StringBuffer и StringBuilder
* append (смотреть выше)
* delete(int start, int end)
* insert(int offeset, String str)
* replace(int start, int end, String str)
* reverse()
* substring(int start, int end) - создаст новую строку
* toString - перевести в строку
### RegEx
RegEx - щаблон для поиска строки в тексте
#### Примеры RegEx
* "java" - только слово java подойдёт
* "\\d{3}" - 3 цифры
#### Pattern для RegEx
Pattern - скомпилированный RegEx
```Java
Pattern p = Pattern.compile("java");
p = Pattern.compile("java", Pattern.CASE_INSENSETIVE);
```