A value x of primitive type T is first converted to a reference value as if by givingit as an argument to an appropriate class instance creation expression (§15.9):•If T is boolean, then use new Boolean(x).•If T is char, then use new Character(x).•If T is byte, short, or int, then use new Integer(x).•If T is long, then use new Long(x).•If T is float, then use new Float(x).•If T is double, then use new Double(x).This reference value is then converted to type String by string conversion.Now only reference values need to be considered:•If the reference is null, it is converted to the string "null" (four ASCII charactersn, u, l, l).•Otherwise, the conversion is performed as if by an invocation of the toStringmethod of the referenced object with no arguments; but if the result of invokingthe toString method is null, then the string "null" is used instead.The toString method is defined by the primordial class Object (§4.3.2). Manyclasses override it, notably Boolean, Character, Integer, Long, Float, Double,and String.See §5.4 for details of the string context.5.1.12Forbidden ConversionsAny conversion that is not explicitly allowed is forbidden.5.1.13Value Set ConversionValue set conversion is the process of mapping a floating-point value from onevalue set to another without changing its type.Within an expression that is not FP-strict (§15.4), value set conversion provideschoices to an implementation of the Java programming language:•If the value is an element of the float-extended-exponent value set, then theimplementation may, at its option, map the value to the nearest element of thefloat value set. This conversion may result in overflow (in which case the valueis replaced by an infinity of the same sign) or underflow (in which case the value