это может быть тупая вопрос когда-нибудь задавали переполнение стека, но это беспокоит меня много ...прохождение INT литерала метод, который принимает целое число в Java
public class shorte
{
public static void main(String []args)
{
short e = 56; // no need for explicit cast
System.out.println(e);
start(56); // why does int literal here needs explicit cast ...
}
static void start(short e)
{
System.out.println(e);
}
}
при создании нормальной короткой переменной из INT буквальным в функции не запрашивается какой-либо явный приведение, но почему передача переменной int literal в короткую переменную (передача параметров) требует явного литья ...... ??
и снова
я теперь не рекомендуется задавать два несвязанных вопросов в одном посте, но это слишком тривиально, чтобы спросить, в другом посте ..
** объем «для» переменной счетчика * *
public class forloop
{
public static void main(String []args)
{
int a =12;
for(int a =12;a<14;++a) // no showdowing of variable ,give compile-time error
{
System.out.println(a);
}
}
}
так я попробовал его с нормальными блоками
a=12
{
a=13; even this doesn't compile
}
это означает, что блоки не имеют свои собственные рамки ...
у них есть собственная область видимости, но это не означает, что они игнорируют все, что было определено ранее. Перед циклом было определено просто 'a', и вы переопределяете переменную с тем же именем, которая приведет к ошибке времени компиляции. – SomeJavaGuy
Никто не может ответить сразу на два ответа. Пожалуйста, отделите свои вопросы, или они будут закрыты. – Riduidel
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html искать целые литералы. –