Un terminal interactif Java (REPL : Read Eval Print Loop)
```shell
jshell
| Welcome to JShell -- Version 25.0.1
| For an introduction type: /help intro
jshell>
```
- Tab completion
- Shift+Tab puis v : extraire dans une variable
- Shift+Tab puis m : extraire dans une méthode
- Shift+Tab puis i : propose l'import manquant
### Exo : JShell
Raccourcis dans JShell
```text
jshell>
"Mon nom" -> Shift+Tab puis v , String name
name ==> "Mon nom"
"Hello" + name + "!" -> Shift+Tab puis m , greet
| created method greet
greet()
$10 ==> "Hello Mon nom!"
"Hello" + name + "!" -> Shift+Tab puis m , greet(String name)
| created method greet(String)
greet("Toto")
$11 ==> "Hello Toto!"
```
- Tab completion
- Shift+Tab puis v : extraire dans une variable
- Shift+Tab puis m : extraire dans une méthode
- /list : afficher les résultats de commande, variables et méthodes
### Exo : Types primitifs : les nombres entiers
#### Int
```java
1
-500
int entier32 = 42
int i
Integer.MIN_VALUE
Integer.MAX_VALUE
30 + 12
23 - 12
10 / 2
5 / 3
5 % 3
5 % 5
2_147_483_647
2_147_483_648
2_147_483_647 + 1
```
**int**
Nombre entier signé (négatif ou positif sur 32 bits.
- minimum : -2^31 (-2147483648)
- maximum : 2^31 - 1 (2147483647)
#### long
```java
1L
1l
-500L
long entier64 = 42l
long l
long entier64b = 42
Long.MIN_VALUE
Long.MAX_VALUE
2_147_483_647L
2_147_483_648L
2_147_483_647L + 1
30L + 12
9223372036854775807L + 1
```
**long**
Nombre entier signé (négatif ou positif sur 64 bits.
- minimum : -2^63 (-9223372036854775808)
- maximum : 2^63 - 1 (9223372036854775807)
Est-ce que des chose vous surprennent ?
[dev.java : Primitive types](https://dev.java/learn/language-basics/primitive-types/#primitive-types)
### Exo : Types primitifs : les nombres décimaux
#### float
```java
var f = 1f
var f2 = 1F
float f3 = 2
Float.MAX_VALUE
Float.MAX_EXPONENT
Float.MIN_NORMAL
-Float.MAX_VALUE
1 / 3F
1.0f / 0.0f
1_009.
0.1f + 0.1f + 0.1f + 0.1f + 0.1f + 0.1f + 0.1f
```
**float**
Nombre à virgule flottant à précision simple signé (négatif ou positif sur 32 bits.
- minimum : -2^31 (-2147483648)
- maximum : 2^31 - 1 (2147483647)
#### double
```java
var d = 1.0
var d2 = 1d
var d3 = 1D
double d4 = 1
Double.MAX_VALUE
Double.MIN_NORMAL
Double.MAX_EXPONENT
1/2.0
0.1 + 0.1 + 0.1
```
**double**
Nombre à virgule flottant signé (négatif ou positif sur 64 bits).
- minimum : -2^63 (-9223372036854775808)
- maximum : 2^63 - 1 (9223372036854775807)
Est-ce que des chose vous surprennent ?
[dev.java : Primitive types](https://dev.java/learn/language-basics/primitive-types/#primitive-types)
## String et chars
```java
String s = ""
char c = 'a'
++c
s+c
String text = 1 + "A"
// Que se passe t'il?
```
# À suivre
[[POO en Java]]