|
Вопрос про статику и пчм получается StackOverflowError =)
|
|||
---|---|---|---|
#18+
Привет ребята. Столкнулся с проблемой, не могу понять почему код выдаёт ошибку. Есть 2 класса, Test и Test1, почему в 1 примере код работает, а во 2 выдаёт ошибку, после того как я убрал static в классе Test1. А вот и ошибка, которую выдаёт ошибочный пример Exception in thread "main" java.lang.StackOverflowError at Test.<init>(Test.java:2) Пример 1, правильный. class Test{ static Test s = new Test(); Test() { System.out.println("s");}} public class Test1{ public static void main(String[] str) { Test f = new Test();}} Пример 2, ошибочный. class Test{ Test s = new Test(); Test() { System.out.println("s");}} public class Test1{ public static void main(String[] str) { Test f = new Test();}} ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2019, 00:24 |
|
Вопрос про статику и пчм получается StackOverflowError =)
|
|||
---|---|---|---|
#18+
Стек трейс же должен выдаваться. Там должно быть видно где ошибка происходит. Подсказка: в какой момент выполняется Код: java 1.
и Код: java 1.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2019, 08:04 |
|
Вопрос про статику и пчм получается StackOverflowError =)
|
|||
---|---|---|---|
#18+
Andrey53791, Все просто. static - один объект для всех созданных объектов. А если без статики то при каждом создании нового объекта класса Test будет создаваться еще объект класса Test, а в том еще один и т.д. А ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2019, 10:17 |
|
Вопрос про статику и пчм получается StackOverflowError =)
|
|||
---|---|---|---|
#18+
Tsyklop, Добрый день. На самом деле не совсем понятно, почему выкидывает ошибку, ведь если будет создаваться еще 1 объект класса Test, то в чем проблема, это же грубо говоря будет как переменная или я не прав? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2019, 10:45 |
|
Вопрос про статику и пчм получается StackOverflowError =)
|
|||
---|---|---|---|
#18+
Alexander A. Sak, Добрый день. Test s = new Test(); выполняется при создании объекта класса static Test s = new Test(); выполняется при любом "использовании" класса. Верно? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2019, 10:48 |
|
Вопрос про статику и пчм получается StackOverflowError =)
|
|||
---|---|---|---|
#18+
При создании экземпляра класса, объекты созданного экземпляра класса не наследуются, если они не статик, я пришёл только к этому выводу, скоординируйте пожалуйста.. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2019, 11:57 |
|
Вопрос про статику и пчм получается StackOverflowError =)
|
|||
---|---|---|---|
#18+
Andrey53791, StackOverflowError - это значит ты забил всю память тепер как ты это сделал: без статика у тебя класс Test имеет переменную типа Test которая имеет свою переменную типа Test и эта цепочка объектов нигде не заканчивается и ограничена только памятью джава машины... от чего и происходит StackOverflowError. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2019, 12:15 |
|
Вопрос про статику и пчм получается StackOverflowError =)
|
|||
---|---|---|---|
#18+
Dmitry.Andrey53791, StackOverflowError - это значит ты забил всю память тепер как ты это сделал: без статика у тебя класс Test имеет переменную типа Test которая имеет свою переменную типа Test и эта цепочка объектов нигде не заканчивается и ограничена только памятью джава машины... от чего и происходит StackOverflowError. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2019, 12:27 |
|
Вопрос про статику и пчм получается StackOverflowError =)
|
|||
---|---|---|---|
#18+
Dmitry.Andrey53791, StackOverflowError - это значит ты забил всю память тепер как ты это сделал: без статика у тебя класс Test имеет переменную типа Test которая имеет свою переменную типа Test и эта цепочка объектов нигде не заканчивается и ограничена только памятью джава машины... от чего и происходит StackOverflowError. StackOverflowError - значит что стек переполнен. В многопоточке, в каком-то потоке может переполниться стек, но это не приведет к крашу программы. А за "переполнение" памяти отвечает OutOfMemoryError. Даже правильней сказать когда она заканчивается. И вот тут уже приложение упадет в любом случае. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2019, 12:29 |
|
|
start [/forum/topic.php?fid=59&fpage=24&tid=2121166]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 238ms |
total: | 410ms |
0 / 0 |