<P> In most cases, Java support is unnecessary in Web browsers, and security experts recommend that it not be run in a browser unless absolutely necessary . It was suggested that, if Java is required by a few Web sites, users should have a separate browser installation specifically for those sites . </P> <P> When generics were added to Java 5.0, there was already a large framework of classes (many of which were already deprecated), so generics were chosen to be implemented using erasure to allow for migration compatibility and re-use of these existing classes . This limited the features that could be provided by this addition as compared to some other languages . The addition of type wildcards made Java unsound . </P> <P> Java lacks native unsigned integer types . Unsigned data are often generated from programs written in C and the lack of these types prevents direct data interchange between C and Java . Unsigned large numbers are also used in many numeric processing fields, including cryptography, which can make Java less convenient to use for these tasks . Although it is possible to partially circumvent this problem with conversion code and using larger data types, it makes using Java cumbersome for handling the unsigned data . While a 32 - bit signed integer may be used to hold a 16 - bit unsigned value with relative ease, a 32 - bit unsigned value would require a 64 - bit signed integer . Additionally, a 64 - bit unsigned value cannot be stored using any integer type in Java because no type larger than 64 bits exists in the Java language . If abstracted using functions, function calls become necessary for many operations which are native to some other languages . Alternatively, it is possible to use Java's signed integers to emulate unsigned integers of the same size, but this requires detailed knowledge of complex bitwise operations . </P> <P> While Java's floating point arithmetic is largely based on IEEE 754 (Standard for Binary Floating - Point Arithmetic), certain features are not supported even when using the strictfp modifier, such as Exception Flags and Directed Roundings--capabilities mandated by IEEE Standard 754 . Additionally, the extended precision floating - point types permitted in 754 and present in many processors are not permitted in Java . </P>

Java is platform independent due to presence of