Поскольку многие люди упомянули его прежде, , Java всегда является передачей значением
, Вот другой пример, который поможет Вам понять различие ( классический пример подкачки ):
public class Test {
public static void main(String[] args) {
Integer a = new Integer(2);
Integer b = new Integer(3);
System.out.println("Before: a = " + a + ", b = " + b);
swap(a,b);
System.out.println("After: a = " + a + ", b = " + b);
}
public static swap(Integer iA, Integer iB) {
Integer tmp = iA;
iA = iB;
iB = tmp;
}
}
Печать:
Прежде: = 2, b = 3
После: = 2, b = 3
Это происходит, потому что iA и iB являются новыми переменными локальной ссылки, которые имеют то же значение переданных ссылок (они указывают на a и b соответственно). Так, попытка изменить ссылки iA или iB только изменится в локальном объеме а не за пределами этого метода.
Я предполагаю, что базовое оборудование нарушает иерархию классов. Есть (что, возможно, удивительно) много раз, когда вы заботитесь о том, что UInt32
имеет размер 4 байта и без знака, поэтому UInt32
не является разновидностью Int32
, а также Int32
не является типом Int64
.
И вы почти всегда заботитесь о разнице между int
и float
.
По сути, наследование и иерархия классов не то же самое, что включение математического множества. Тот факт, что значения, которые может содержать UInt32
, являются строгим подмножеством значений, которые может содержать Int64
, не означает, что UInt32
является типом ] Int64
. Менее очевидно, an Int32
не является типом Int64
- хотя между ними нет концептуальной разницы, их базовые представления различаются (4 байта против 8 байтов). Десятичные числа
еще больше различаются.
XPath отличается: представления для всех числовых типов в основном одинаковы - это строка цифр ASCII. Здесь разница между коротким
и длинным
является одним из возможных диапазонов, а не представлением - «123» является действительным представлением short
и действительное представление long
с тем же значением.
Десятичные числа
еще больше различаются.
XPath отличается: представления для всех числовых типов в основном одинаковы - это строка цифр ASCII. Здесь разница между коротким
и длинным
является одним из возможных диапазонов, а не представлением - «123» является действительным представлением short
и действительное представление long
с тем же значением.
Десятичные числа
еще больше различаются.
XPath отличается: представления для всех числовых типов в основном одинаковы - это строка цифр ASCII. Здесь разница между коротким
и длинным
является одним из возможных диапазонов, а не представлением - «123» является действительным представлением short
и допустимое представление long
с тем же значением.
Десятичное число предназначено для вычислений, требующих точности (в основном, денег). См. Здесь: http://msdn.microsoft.com/en-us/library/364x0z75 (VS.80) .aspx
Одиночные / парные разряды отличаются от десятичных, поскольку предназначены для приближения (в основном, для научных расчетов).
Вот почему они не связаны.
Что касается байтов и символов, они совершенно разные: байт - это 0-255, тогда как char - это символ, и может следовательно, хранить символы Юникода (их намного больше 255!)
Uints и int не конвертируются автоматически, потому что каждый из них может хранить значения, которые невозможны для другого (uints имеют вдвое больший положительный диапазон int) .
Как только вы во всем разобрались, это действительно имеет большой смысл.
Что касается вашего возраста, я бы просто использовал int;)