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:
|
aliases:
|
||||||
- ссылочных типов
|
- ссылочных типов
|
||||||
- ссылочные типы
|
- ссылочные типы
|
||||||
|
- ссылочный тип
|
||||||
tags:
|
tags:
|
||||||
- maturity/🌱
|
- maturity/🌱
|
||||||
date: 2024-10-19
|
date: 2024-10-19
|
||||||
|
@ -6,6 +6,20 @@ tags:
|
|||||||
date: 2024-10-30
|
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
|
```java
|
||||||
System.out.println(-Integer.MIN_VALUE) // -2147483648
|
System.out.println(-Integer.MIN_VALUE) // -2147483648
|
||||||
@ -28,11 +42,20 @@ System.out.println(Character.isDigit('⑤')); // false
|
|||||||
System.out.println(Character.getNumericValue('⑤') == 5); // true
|
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
|
### polygenelubricants
|
||||||
```java
|
```java
|
||||||
System.out.println("polygenelubricants".hashCode()); // Integer.MIN_VALUE
|
System.out.println("polygenelubricants".hashCode()); // Integer.MIN_VALUE
|
||||||
```
|
```
|
||||||
###
|
### Bugaga
|
||||||
```java
|
```java
|
||||||
class Hello {
|
class Hello {
|
||||||
public static void main(String[] args) {
|
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