This commit is contained in:
parent
981ebd2c59
commit
4bb3df2cd9
33
dev/java/Расширяющее преобразование в Java.md
Normal file
33
dev/java/Расширяющее преобразование в Java.md
Normal file
@ -0,0 +1,33 @@
|
||||
---
|
||||
aliases:
|
||||
- widening conversions
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-11-01
|
||||
---
|
||||
Расширяющие преобразования (widening conversions) позволяют в Java автоматически преобразовывать значение одного типа к другому, более широкому типу без явного приведения.
|
||||
|
||||
```
|
||||
byte → short → int → long → float → double
|
||||
↑
|
||||
char
|
||||
```
|
||||
|
||||
**Потеря точности**:
|
||||
- int -> float
|
||||
- long -> float (на больших значениях long)
|
||||
- long -> double (на больших значениях long)
|
||||
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 Java разработка|00 Java разработка]]
|
||||
**Родитель**::
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-01]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
- [[Сжимающее преобразование в Java]]
|
||||
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
|
31
dev/java/Сжимающее преобразование в Java.md
Normal file
31
dev/java/Сжимающее преобразование в Java.md
Normal file
@ -0,0 +1,31 @@
|
||||
---
|
||||
aliases:
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-11-01
|
||||
---
|
||||
Сужающие преобразования (narrowing conversions) позволяют в Java преобразовывать значение более широкого типа к более узкому типу, но такие преобразования **не выполняются автоматически** и требуют явного приведения. Сужающие преобразования могут привести к **потере данных** или **потере точности** и требуют внимания при их использовании.
|
||||
|
||||
```
|
||||
double → float → long → int → short → byte
|
||||
↓
|
||||
char
|
||||
```
|
||||
|
||||
- Преобразование int в short может привести к потере данных, если значение int выходит за пределы диапазона short (-32768, 32767).
|
||||
- Преобразование double в float может привести к потере точности, так как float имеет меньше значащих разрядов, чем double.
|
||||
- Преобразование float или double в int, short, byte приводит к усечению десятичной части, что также может вызвать потерю точности.
|
||||
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 Java разработка|00 Java разработка]]
|
||||
**Родитель**::
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-11-01]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
- [[Расширяющее преобразование в Java|Расширяющее преобразование в Java]]
|
||||
|
||||
### Дочерние заметки
|
||||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||
|
@ -2,6 +2,7 @@
|
||||
aliases:
|
||||
- ссылочных типов
|
||||
- ссылочные типы
|
||||
- ссылочный тип
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-10-19
|
||||
|
@ -6,6 +6,20 @@ tags:
|
||||
date: 2024-10-30
|
||||
---
|
||||
## Арифметические
|
||||
### Особые числа
|
||||
|
||||
- +0.0, -0.0
|
||||
- Равны по equals, но различаются по toString
|
||||
- Double.POSITIVE_INFINITY
|
||||
- Больше всякого другого числа, положительное
|
||||
- 1/Infinity = 0.0
|
||||
- Infinity+1=Infinity, Infinity+Infinity=Infinity
|
||||
- Double.NEGATIVE_INFINITY
|
||||
- Меньше всякого другого числа, отрицательное
|
||||
- 1/-Infinity = -0.0
|
||||
- `Double.NAN`
|
||||
- Не больше, не меньше и не равно никакому числу, в том числе себе
|
||||
- Любая операция с NaN даст NaN
|
||||
### Отсутствие переполнения
|
||||
```java
|
||||
System.out.println(-Integer.MIN_VALUE) // -2147483648
|
||||
@ -28,11 +42,20 @@ System.out.println(Character.isDigit('⑤')); // false
|
||||
System.out.println(Character.getNumericValue('⑤') == 5); // true
|
||||
```
|
||||
## Прочее
|
||||
### Хранение массивов в памяти
|
||||
```
|
||||
int[][] table = new int[2][500]; // 4056 байт, 1.4%
|
||||
int[][] table = new int[500][2]; // 14016 байт, 350.4%
|
||||
```
|
||||
|
||||
- [[../../../../knowledge/dev/java/Устройство объекта в памяти Java|Устройство объекта в памяти Java]]
|
||||
- Мы создаём **только 2 объекта массива** (главный массив и два подмассива). На каждый массив выделяется небольшая дополнительная память для служебной информации, связанной с объектом.
|
||||
- Мы создаём **500 подмассивов** (главный массив и 500 маленьких подмассивов). На каждый массив также выделяется дополнительная память для служебной информации о каждом объекте.
|
||||
### polygenelubricants
|
||||
```java
|
||||
System.out.println("polygenelubricants".hashCode()); // Integer.MIN_VALUE
|
||||
```
|
||||
###
|
||||
### Bugaga
|
||||
```java
|
||||
class Hello {
|
||||
public static void main(String[] args) {
|
||||
|
BIN
meta/files/images/Pasted image 20241101204701.png
Normal file
BIN
meta/files/images/Pasted image 20241101204701.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.8 MiB |
BIN
meta/files/images/Pasted image 20241101204919.png
Normal file
BIN
meta/files/images/Pasted image 20241101204919.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 769 KiB |
BIN
meta/files/images/comp/Pasted image 20241101204701.png
Normal file
BIN
meta/files/images/comp/Pasted image 20241101204701.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 470 KiB |
@ -0,0 +1 @@
|
||||
825c987a75119c607296093dc849a8a5
|
BIN
meta/files/images/comp/Pasted image 20241101204919.png
Normal file
BIN
meta/files/images/comp/Pasted image 20241101204919.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 169 KiB |
@ -0,0 +1 @@
|
||||
9cc729fe4212fb6a31182fb8ce5bb12f
|
BIN
meta/files/images/webp/Pasted image 20241101204701.webp
Normal file
BIN
meta/files/images/webp/Pasted image 20241101204701.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 156 KiB |
@ -0,0 +1 @@
|
||||
825c987a75119c607296093dc849a8a5
|
BIN
meta/files/images/webp/Pasted image 20241101204919.webp
Normal file
BIN
meta/files/images/webp/Pasted image 20241101204919.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 64 KiB |
@ -0,0 +1 @@
|
||||
9cc729fe4212fb6a31182fb8ce5bb12f
|
Loading…
Reference in New Issue
Block a user