Почему значение статической переменной разрешено печатать непосредственно в основном методе, а для печати значения обычного целочисленного типа требуется создание объекта.
хотя это глобально, но доступ к x также осуществляется в том же классе, тогда почему я не могу получить к нему прямой доступ.
При ответе, пожалуйста, обратите внимание на часть распределения памяти.
Насколько я понимаю,
статическая, поскольку это глобальная переменная, хранящаяся в постоянной генерации, то как насчет этого примитива int x, разве он не выделен в частном стеке? Пожалуйста, помогите.
public class Test{
int x = 7;
static int y = 10;
public static void main(String[] args) {
System.out.println("the value of y "+ y);
//compile error on sysout for value x like this,
//System.out.println("the value of x "+ x);
//While in this way i am able to print x, why?
Test test= new Test();
System.out.println("the value of x "+test.x);
}
}
Пожалуйста, помогите с распределением памяти для программы. Заранее спасибо!
[b]Почему значение статической переменной разрешено печатать непосредственно в основном методе, а для печати значения обычного целочисленного типа требуется создание объекта.[/b]
[list] [*]хотя это глобально, но доступ к x также осуществляется в том же классе, тогда почему я не могу получить к нему прямой доступ. [/list]
При ответе, пожалуйста, обратите внимание на часть распределения памяти.
Насколько я понимаю,
статическая, поскольку это глобальная переменная, хранящаяся в постоянной генерации, то как насчет этого примитива int x, разве он не выделен в частном стеке? Пожалуйста, помогите.
[code] public class Test{
int x = 7; static int y = 10;
public static void main(String[] args) {
System.out.println("the value of y "+ y);
//compile error on sysout for value x like this, //System.out.println("the value of x "+ x);
//While in this way i am able to print x, why?
Test test= new Test(); System.out.println("the value of x "+test.x);
}
} [/code]
[b]Пожалуйста, помогите с распределением памяти для программы. Заранее спасибо![/b]