I have to use a variable which will never be changed in method which will be frequently used in many threads. Which of these variants are more efficient?  

Variant 1:

```
public class Test {
    private static int myVar;
    public Test(int myVar){
        this.myVar=myVar;
    }

    public void frequentlyUsedMultiThreadMethod(){
        //read myVar
    }
}

```

Variant 2:

```
public class Test {
    public void frequentlyUsedMultiThreadMethod(int myVar){
        //read myVar
    }
}

```

Variant 3:

```
public class Test {
    private final int myVar;
    public Test(int myVar){
        this.myVar=myVar;
    }

    public void frequentlyUsedMultiThreadMethod(){
        //read myVar
    }
}

```