77 lines
2.1 KiB
Markdown
77 lines
2.1 KiB
Markdown
# 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);
|
||
```
|