Top 30 Scala Interview Questions

Top 30 Scala Interview Questions: Here are the top interview questions of Scala. Be prepared for the interview. You can download the entire questions in a pdf format. so guys All the best for your interview.

1) What is Scala?

Scala is a general-purpose programming language. It supports object-oriented, functional and imperative programming approaches. It is a strong static type language. In Scala, everything is an object whether it is a function or a number. It was designed by Martin Odersky in 2004.

Scala Program Example:

 object MainObject{  
    def main(args:Array[String]){  
        print("Hello Scala")  
    }  
}   

2) What are the features of Scala?

There are following features in Scala:

  • Type inference: In Scala, you don’t require to mention data type and function return type explicitly.
  • Singleton object: Scala uses a singleton object, which is essentially class with only one object in the source file.
  • Immutability: Scala uses immutability concept. Immutable data helps to manage concurrency control which requires managing data.
  • Lazy computation: In Scala, computation is lazy by default. You can declare a lazy variable by using the lazy keyword. It is used to increase performance.
  • Case classes and Pattern matching: In Scala, case classes support pattern matching. So, you can write a more logical code.
  • Concurrency control: Scala provides a standard library which includes the actor model. You can write concurrency code by using the actor.
  • String interpolation: In Scala, string interpolation allows users to embed variable references directly in processed string literals.
  • Higher order function: In Scala, the higher-order function allows you to create function composition, lambda function or anonymous function, etc.
  • Traits: A trait is like an interface with partial implementation. In Scala, the trait is a collection of abstract and non-abstract methods.
  • Rich set of collection: Scala provides a rich set of collection library. It contains classes and traits to collect data. These collections can be mutable or immutable.

You might like: Top 32 Selenium Interview Questions and Answers with PDF Download in 2019


3) What are the Data Types in Scala?

Data types in Scala are much similar to Java regarding their storage, length, except that in Scala there is no concept of primitive data types every type is an object and starts with a capital letter. A table of data types is given below.

Data Types in Scala:

Data TypeDefault ValueSize
BooleanFalseTrue or false
Byte08 bit signed value (-27 to 27-1)
Short016 bit signed value(-215 to 215-1)
Char‘\u0000’16 bit unsigned Unicode character(0 to 216-1)
Int032 bit signed value(-231 to 231-1)
Long0L64 bit signed value(-263 to 263-1)
Float0.0F32 bit IEEE 754 single-precision float
Double0.0D64 bit IEEE 754 double-precision float
StringNullA sequence of characters

4) What is pattern matching?

Top 30 Scala Interview Questions Pattern matching is a feature of Scala. It works the same as switch case in other languages. It matches the best case available in the pattern.

Example:

 object MainObject {  
   def main(args: Array[String]) {  
        var a = 1  
        a match{  
            case 1 => println("One")  
            case 2 => println("Two")  
            case _ => println("No")  
        }  
        }  
}   

5) What is for-comprehension in Scala?

In Scala, for loop is known as for-comprehensions. It can be used to iterate, filter and return an iterated collection. The for-comprehension looks a bit like a for-loop in imperative languages, except that it constructs a list of the results of all iterations.

Example:

 object MainObject {  
   def main(args: Array[String]) {  
        for( a <- 1 to 10 ){  
         println(a);  
      }  
   }  
}   

6) What are the Scala variables?

Values and variables are two shapes that come in Scala. A value variable is constant and cannot be changed once assigned.  It is immutable, while a regular variable, on the other hand, is mutable, and you can change the value.

The two types of variables are

var  myVar : Int=0;

val   myVal: Int=1;

7) Mention the difference between an object and a class ?

A class is a definition for a description.  It defines a type in terms of methods and composition of other types.  A class is a blueprint of the object. While, an object is a singleton, an instance of a class which is unique. An anonymous class is created for every object in the code, it inherits from whatever classes you declared an object to implement.

8) What is recursion tail in scala?

‘Recursion’ is a function that calls itself. A function that calls itself, for example, a function ‘A’ calls function ‘B’, which calls the function ‘C’.  It is a technique used frequently in functional programming.  In order for a tail recursive, the call back to the function must be the last function to be performed.

9) What is ‘scala trait’ in scala?

Top 30 Scala Interview Questions ‘Traits’ are used to define object types specified by the signature of the supported methods.  Scala allows to be partially implemented but traits may not have constructor parameters.  A trait consists of method and field definition, by mixing them into classes it can be reused.

10) When can you use traits?

There is no specific rule when you can use traits, but there is a guideline which you can consider.

a)      If the behavior will not be reused, then make it a concrete class. Anyhow it is not a reusable behavior.

b)      In order to inherit from it in Java code, an abstract class can be used.

c)       If efficiency is a priority then lean towards using a class

d)      Make it a trait if it might be reused in multiple and unrelated classes. In different parts of the class hierarchy only traits can be mixed into different parts.

e)      You can use abstract class if you want to distribute it in compiled form and expects outside groups to write classes inheriting from it.

11) What is Scala “If..else”?



Scala “If. Else” is an expression. We can be assigned it to a variable. For EG:
val year = if( count == 0) 2014 else 2015

12) What do you mean by Scala Map?



This is the basic Scala Interview Questions which is asked in an interview. Scala map is a collection of key-value pair wherein the value in a map retrieved using a key. Values in a map are not unique but keys are unique.
There are two types of maps: Mutable and Immutable.

13) What do you understand by a closure in Scala? Top 30 Scala Interview Questions



Top 30 Scala Interview Questions The closure is the function in the scale where the returned value of the function depends on the one or more than one variable which is defined outside the function.

14) What do you mean by Option in Scala?


It is used for wrapping the missing value.

15) What is Scala Trait?

It’s a special kind of which enables the Multiple Inheritance. For Eg:
trait MyTrait {

  deff()
}

16) What is a nexted function in Scala?

In Scala, you can define the function of variable length parameters. It allows you to pass any number of arguments at the time of calling the function.

Example:

 object MainObject {  
    def add(a:Int, b:Int, c:Int) = {  
        def add2(x:Int,y:Int) = {  
            x+y  
        }  
        add2(a,add2(b,c))  
    }  
    def main(args: Array[String]) = {  
        var result = add(10,10,10)  
        println(result)  
    }  
}   

17) What is an object in Scala?

The object is a real-world entity. It contains state and behavior. Laptop, car, cell phone are the real world objects. An object typically has two characteristics:

1) State: data values of an object are known as its state.

2) Behavior: functionality that an object performs is known as its behavior.

The object in Scala is an instance of a class. It is also known as runtime entity.


18) What is a class in Scala?

The class is a template or a blueprint. It is also known as a collection of objects of similar type.

In Scala, a class can contain:

  1. Data member
  2. Member method
  3. Constructor
  4. Block
  5. Nested class
  6. Superclass information, etc.

Example:

 class Student{  
    var id:Int = 0;                         // All fields must be initialized  
    var name:String = null;  
}  
object MainObject{  
    def main(args:Array[String]){  
        var s = new Student()               // Creating an object  
        println(s.id+" "+s.name);  
    }  
}   

19) What is an anonymous object in Scala?

Top 30 Scala Interview Questions In Scala, you can create an anonymous object. An object which has no reference name is called an anonymous object. It is good to create an anonymous object when you don’t want to reuse it further.

Example:

 class Arithmetic{  
    def add(a:Int, b:Int){  
        var add = a+b;  
        println("sum = "+add);  
    }  
}  
  
object MainObject{  
    def main(args:Array[String]){  
        new Arithmetic().add(10,10);  
  
    }  
}   

20) What is a constructor in Scala?

In Scala, the constructor is not a special method. Scala provides primary and any number of auxiliary constructors. It is also known as default constructor.

In Scala, if you don’t specify a primary constructor, the compiler creates a default primary constructor. All the statements of the class body treated as part of the constructor.

Scala Primary Constructor Example:

 class Student(id:Int, name:String){  
    def showDetails(){  
        println(id+" "+name);  
    }  
}  
  
object MainObject{  
    def main(args:Array[String]){  
        var s = new Student(101,"Rama");  
        s.showDetails()  
    }  
}   

21)   How do I append to the list?

In scala to append into a list, use “:+” single value

var myList = List.empty[String]        
myList :+= "a"       
myList :+= "b"       
myList :+= "c"        
use++ for appending a list        
var myList = List.empty[String]        
myList ++= List("a", "b", "c") 

22)   How can you format a string?

To format a string, use the .format () method, in scala you can use

Val formatted=  “%s %i”.format (mystring.myInt)

23)   Why scala prefers immutability?

Scala prefers immutability in design and in many cases uses it as default. Immutability can help when dealing with equality issues or concurrent programs.

24)   What are the four types of scala identifiers ?

The four types of identifiers are

a)      Alpha numeric identifiers

b)      Operator identifiers

c)       Mixed identifiers

d)      Literal identifiers

25)   What are the different types of Scala literals?

The different types of literals in scala are

a)      Integer literals

b)      Floating point literals

c)       Boolean literals

d)      Symbol literals

e)      Character literals

f)       String literals

g)      Multi-Line strings

26) What is the final class in Scala?

In Scala, you can create a final class by using the final keyword. A final class can’t be inherited. If you make a class final, it can’t be extended further.

Scala Final Class Example

 final class Vehicle{  
     def show(){  
         println("vehicle is running")  
     }  
  
}  
  
class Bike extends Vehicle{  
       override def show(){  
        println("bike is running")  
    }  
}  
  
object MainObject{  
    def main(args:Array[String]){  
        var b = new Bike()  
        b.show()  
    }  
}   

27) What is an abstract class in Scala?

A class which is declared with the abstract keyword is known as an abstract class. An abstract class can have abstract methods and non-abstract methods as well. An abstract class is used to achieve abstraction.

Example:

 abstract class Bike{  
    def run()  
}  
  
class Hero extends Bike{  
    def run(){  
        println("running fine...")  
    }  
}  
  
object MainObject{  
    def main(args: Array[String]){  
        var h = new Hero()  
        h.run()  
    }  
}   

28) What is Scala Trait?

A trait is like an interface with partial implementation. In Scala, the trait is a collection of abstract and non-abstract methods. You can create a trait that can have all abstract methods or some abstract and some non-abstract methods.

Example:

 trait Printable{  
    def print()  
}  
  
class A4 extends Printable{  
    def print(){  
        println("Hello")  
    }  
}  
  
object MainObject{  
    def main(args:Array[String]){  
        var a = new A4()  
        a.print()  
    }  
}   

29) What is a trait mixins in Scala?

In Scala, “trait mixins” means you can extend any number of traits with a class or abstract class. You can extend only traits or combination of traits and class or traits and an abstract class.

It is necessary to maintain the order of mixins otherwise compiler throws an error.

Example:

 trait Print{  
    def print()  
}  
  
abstract class PrintA4{  
    def printA4()  
}  
  
class A6 extends PrintA4 {  
    def print(){                             // Trait print  
        println("print sheet")  
    }  
    def printA4(){                              // Abstract class printA4  
        println("Print A4 Sheet")  
    }  
}  
  
object MainObject{  
    def main(args:Array[String]){  
        var a = new A6() with Print             // You can also extend trait during object creation  
        a.print()  
        a.printA4()  
    }  
}   

30) What is the access modifier in Scala?

Top 30 Scala Interview Questions Access modifier is used to define the accessibility of data and our code to the outside world. You can apply accessibly to class, trait, data member, member method, and constructor, etc. Scala provides the least accessibility to access to all. You can apply any access modifier to your code according to your requirement.

In Scala, there are only three types of access modifiers.

  1. No modifier
  2. Protected
  3. Private