Это спецификаторы формата для чисел с плавающей запятой и двойных литералов.Когда вы пишете 1.0
, вы не можете понять, хотите ли вы, чтобы литерал был плавающим или двойным.Написав 1.0f
, вы сообщаете Java, что вы хотите, чтобы литерал был плавающим, а при использовании 1.0d
указывается, что он должен быть двойным.Также есть L
, который представляет long (например, 1L
- это long
1, в отличие от int
1)