In Weaviate the int datatype is represented as int64 however in the Java client it gets converted to a java.lang.Double which is an 8 byte structure to represent floating points.
I suspect if we were to store a value of 9223372036854775807 or -9223372036854775807 in Weaviate of datatype int that the java client wouldn't be able to get the correct value.