Contar cuantos 0 rodeados por 1

Buen día! Como puedo contar o identificar los 0 que están rodeados por 1. tiene que tener un 1 arriba, abajo, a la derecha y a la izquierda. Les dejo un ejemplo. Ejemplo: 01351 10102 21343 Salida: hay 1 0 rodeado por 1.

Alguien me podría apoyar? Ya los identifiqué solo me falta contarlo nada más.

Este es el codigo:

  int filas = 4;    int columnas = 4;    int dato = 0;    int[][] matriz = new int[filas][columnas];          for(int y = 0; y < filas ; y++ ){        for(int x = 0 ; x < columnas; x++){            int aleatoreo = (int)(Math.random() * 10 + 1);            dato = (aleatoreo > 5) ? 1 : 0;            System.out.println("dato: ("+x+","+y+") = "+dato);            matriz[x][y] = dato;        }    }    System.out.println("-----------Mostrando Matriz----------------");     for(int y = 0; y < filas ; y++ ){        for(int x = 0 ; x < columnas; x++){            dato = matriz[x][y];            System.out.print(" "+dato+" ");        }        System.out.println();     }    System.out.println("Revisar 0");    for(int y = 0; y < filas ; y++ ){        for(int x = 0 ; x < columnas; x++){            dato = matriz[x][y];            if(dato == 0){                 int valor = 0, posX = 0, posY = 0;                 System.out.println("Dato("+x+","+y+")="+dato);                System.out.println("Analisis");                // arriba                posX = x; posY = y - 1;                if(posY >= 0) {valor = matriz[posX][posY]; if(valor == 1) }                posX = x + 1; posY = y;                if(posX < columnas){valor = matriz[posX][posY]; if(valor == 1) }               if(posX < columnas && posY < filas) {valor = matriz[posX][posY]; if(valor == 1) }                posX = x; posY = y + 1;                if(posY < filas) {valor = matriz[posX][posY]; if(valor == 1) }                posX = x - 1; posY = y;                if(posX >= 0) {valor = matriz[posX][posY]; if(valor == 1)}               }        }