As a Java developer I'm a bit sad that we don't have a choice :)

The reason is in this interview,

http://www.gotw.ca/publications/c_family_interview.htm

> Quiz any C developer about unsigned, and pretty soon you discover that almost no C developers actually understand what goes on with unsigned, what unsigned arithmetic is. Things like that made C complex. The language part of Java is, I think, pretty simple. The libraries you have to look up.

You have the option in the standard library, all numeric classes have unsigned arithmetic methods.

And as we are finally getting value classes in Java (first integration steps), I expect someone will come up unsigned wrapper classes rather quickly, although it will be rather verbose without operator overloading.

You can do stuff with unsigned values, it's just awkward. It most frequently comes up when serializing things.

Or talking to the hardware, or doing graphics stuff.

But it isn't the end of the world, a few helper methods and done with it.