new BitSet(Integer.MAX_VALUE).size() informa un valor negativo:
import java.util.BitSet; public class NegativeBitSetSize { public static void main(String[] args) { BitSet a; a = new BitSet(Integer.MAX_VALUE); System.out.println(a.size()); // -2147483648 a = new BitSet(Integer.MAX_VALUE - 50); System.out.println(a.size()); // -2147483648 a = new BitSet(Integer.MAX_VALUE - 62); System.out.println(a.size()); // -2147483648 a = new BitSet(Integer.MAX_VALUE - 63); System.out.println(a.size()); // 2147483584 } }En el sistema de prueba:
$ java -version openjdk version "11.0.14" 2022-01-18 OpenJDK Runtime Environment (build 11.0.14+9-Ubuntu-0ubuntu2.18.04) OpenJDK 64-Bit Server VM (build 11.0.14+9-Ubuntu-0ubuntu2.18.04, mixed mode, sharing)No pude encontrar un informe de error para esto. ¿Es esto conocido o documentado?