A programming language is said to use static typing when type checking is performed during compile-time as opposed to run-time. Statically typed languages include ActionScript 3, Ada, C, D, Eiffel, F#, Fortran,Go, Haskell, haXe, JADE, Java, ML, Objective-C, OCaml, Pascal, and Scala.
A type system is said to feature strong typing when it specifies one or more restrictions on how operations involving values of different data types can be intermixed.
Opposite to Strongly Type. Also defined as languages that support either implicit type conversion, ad-hoc polymorphism (also known as overloading) or both.
Type-safe code accesses only the memory locations it is authorized to access. (For this discussion, type safety specifically refers to memory type safety and should not be confused with type safety in a broader respect.) For example, type-safe code cannot read values from another object’s private fields.