Это приведет к утечке памяти?

Я довольно новичок в мире java и задавался вопросом, может ли следующее вызвать утечку памяти вокруг меня, переназначая вверх и вниз до нуля. Просто хочу убедиться, что это не вызовет утечки памяти, потому что это плохо

import android.graphics.Point; import android.util.Log; import android.view.MotionEvent; public class TouchHandler { public TouchHandler() { } static Point down; static Point up; static boolean isUp = false; static boolean isDown = false; public static void processEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: Log.i("betterinf", "ACTION DOWN"); down = new Point(); down.x = (int) event.getX(); down.y = (int) event.getY(); isDown = true; break; case MotionEvent.ACTION_UP: Log.i("betterinf", "ACTION UP"); down = new Point(); up.x = (int) event.getX(); up.y = (int) event.getY(); isUp = true; break; case MotionEvent.ACTION_MOVE: break; } } public static void Update(Long deltaTime) { if (isDown && isUp) { //event has happened isDown = false; isUp = false; down = null; up = null; Point vel = new Point(); vel.x = down.x - up.x; vel.y = down.y - up.y; GM.getBallManager().newPlayerBall(down, vel); } } } 

Сборщик мусора в этом примере будет соответствующим образом обрабатывать любую выделенную память, которая больше не используется. Таким образом, это не даст вам утечки памяти. Важно отметить, что вы все равно можете создавать утечки памяти, и я предлагаю вам посмотреть, как их можно сделать, чтобы избежать их в будущем.

Java – это сборник мусора, вы не получите утечек памяти. Однако, как говорится, вы можете просачивать собственные ресурсы, поэтому всегда закрывайте файлы, сокеты, курсоры баз данных и т. Д., Когда закончите с ними.

Не бойся, сборщик мусора справится с этим!

Я думаю, что просто упоминание сборщика мусора, а затем бла-бла-бла не поможет вам в полном смысле.

Поскольку Java имеет GB так, создание истинной утечки памяти в Java не так просто! В SO есть много вариантов Q / A: Создание утечки памяти с помощью Java . Вы также можете прочитать эту статью, где утечки памяти описаны с помощью приятных примеров.

В java могут возникать утечки памяти:

  • Если количество обработчиков файлов превышает (например, открытие файла в / из потока много раз, не закрывая его)

  • Если какое-либо статическое поле содержит ссылку на объект.

  • Любой собственный метод блокировки памяти выходит за рамки сборщика мусора JVM. Это может привести к утечке памяти.

Java имеет сборщик мусора. Фактически, я видел ошибку в вашем коде:

  case MotionEvent.ACTION_UP: Log.i("betterinf", "ACTION UP"); down = new Point(); up.x = (int) event.getX(); up.y = (int) event.getY(); isUp = true; break; 

модифицировать

  down = new Point(); 

в

  up = new Point();