Strong has no meaning.
Safe means that it will not actually perform erroneous operations. Erroneous means violating abstractions such as that numbers, booleans, and strings are distinct. C is unsafe because you can add numbers to strings. Java is not because you can't. Even JavaScript is not, because although it allows "100" + 1, it gives that a meaning that it is faithful to.
Jay