Ответ
Да, может. Класс в Java может содержать поля только примитивных типов (int, double, boolean, char и т.д.). При создании экземпляра такого класса, значения примитивов хранятся непосредственно в памяти, занимаемой объектом.
Пример класса:
public class SensorData {
private int sensorId;
private double value;
private long timestamp;
private boolean isActive;
public SensorData(int sensorId, double value, long timestamp, boolean isActive) {
this.sensorId = sensorId;
this.value = value;
this.timestamp = timestamp;
this.isActive = isActive;
}
// Геттеры, сеттеры...
}
Создание объекта:
SensorData data = new SensorData(101, 36.6, System.currentTimeMillis(), true);
// Объект 'data' состоит исключительно из примитивных значений.
Ключевые отличия от ссылочных типов:
- Хранение: Примитивы хранятся в стеке (для локальных переменных) или внутри объекта в куче. Ссылочные типы хранят в объекте только адрес (ссылку) на данные в куче.
- Значение по умолчанию: Поля-примитивы в классе инициализируются значениями по умолчанию (например,
0,false), а ссылочные —null.