That is completely different. Integer is a boxed version of int. Integer objects can be null, but ints must have a number. You may be confused because Java autoboxes / unboxes this for you. This can lead to some head scratching bugs where you get a NPE when returning from a function due to it trying to unbox a null Integer.
Why is everything a class?
Why is everything null terminated?
This is fucking retarded.
By and large, things aren''t though, only when you're working with things you don't know the length of, and can reasonably use a sentinel.
...
They're only null terminated by convention, when you really think about it. Sure, string literals get parsed with an extra zero on the end, but no one's stopping you from writing your own functions and structs with fixed length. Strings are an abstract concept for computers, so it would be dumb to set it in stone. C lets you make the rules.
It doesn't have to be null terminated, you can also use the pascal strings
Maybe for your computer. LISP machines had a string data type.
i was told that doing so makes error-handling easier
(in the compiler) everything has methods, so there is a default method that gets called if you try to call a method that doesn't exist
android doesn't suck because of java, android just sucks because of the vendor software lock-ins and shitty vendor hardware drivers
Functions and procedures are an abstract concept for a computer so it would be dumb to set the rules for thing like parameter passing and returning values in stone.
Sure it might be messy and open up completely new ways to fuck things up, but you are free to implement it in a sane way. C lets you make the rules.
You forgot something: Java
C-Apps have to use the NDK which is garbage or run inside Java which makes the only source of non-laggy stuff a hard relationship. Java needs lots of memory, CPU-power and energy, all of which are pretty limited on a phone or portable device.