Interfaces should be used to define types. Using an interface as a collection of static methods and fields violates that, and can lead to confusing type hierarchies if the interface is then implemented to allow easy access to the constants.

Prefer using a public final class instead to prohibit subclassing.

public interface Constants {
  final float PI = 3.14159f;
}
public final class Constants {
  public static final float PI = 3.14159f;

  private Constants() {}
}

See Effective Java 3rd Edition ยง22: Use interfaces only to define types for more details.