[go: nahoru, domu]

Criticism of Java: Difference between revisions

Content deleted Content added
→‎Security: Add JIT related security challenges and possible exploits
No edit summary
Line 48:
| url=http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4504839
| access-date = 2011-01-18 }}</ref>
Although it is possible to get roundaround this problem using conversion code and larger data types, it makes using Java cumbersome for handling unsigned data. While a 32-bit signed integer may be used to hold a 16-bit unsigned value losslessly, and a 64-bit signed integer a 32-bit unsigned integer, there is no larger type to hold a 64-bit unsigned integer. In all cases, the memory consumed may double, and typically any logic relying on [[two's complement]] overflow must be rewritten. If abstracted, 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 [[emulator|emulate]] unsigned integers of the same size, but this requires detailed knowledge of [[bitwise operations]].<ref>{{cite web| url=http://darksleep.com/player/JavaAndUnsignedTypes.html |date=2009-11-05|access-date=2010-10-09|title=Java and unsigned int, unsigned short, unsigned byte, unsigned long, etc. (Or rather, the lack thereof) |first=Sean R. |last=Owen}}</ref> Some support for unsigned integer types was provided in JDK 8, but not for unsigned bytes and with no support in the Java language.<ref>{{cite web|url=https://blogs.oracle.com/darcy/entry/unsigned_api|title=Unsigned Integer Arithmetic API now in JDK 8 (Joseph D. Darcy's Oracle Weblog)|access-date=15 May 2016}}</ref>
 
=== Operator overloading ===