| 
 | 
| 
 
Вопрос про статику и пчм получается 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?desktop=1&fid=59&tid=2121166]:  | 
    0ms | 
get settings:  | 
    10ms | 
get forum list:  | 
    14ms | 
check forum access:  | 
    4ms | 
check topic access:  | 
    4ms | 
track hit:  | 
    44ms | 
get topic data:  | 
    9ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    51ms | 
get tp. blocked users:  | 
    2ms | 
| others: | 15ms | 
| total: | 155ms | 

| 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    «На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
    
    
    ... ля, ля, ля ...