A statically typed language is a programming language where the type of a variable is known at compile time. In other words, before source code is compiled, the type associated with each variable must be known. Some examples of statically typed programming languages include Java, C, C++, C#, Scala, Kotlin, Fortran, Go, Pascal, and Swift. In statically typed languages, type checking occurs at compile time, and types are associated with variables, not values. This means that the compiler decides whether a given variable can perform the actions requested from it or not. Statically typed languages perform type checking during the course of compilation rather than during run time, which makes programs written in these languages run much faster.