Является ли статический внутренний класс потокобезопасным внутри другого класса Java?

Для сбора небольших вспомогательных служебных классов я создал общий класс MyUtils :

// MyUtils.java
public final class MyUtils
{
  public static class Helper1 {};
  public static class Helper2 {};
//...
}

Эти вспомогательные классы изнутри MyUtils будут используется в других файлах пакета:

// MyClass1.java
public class MyClass1
{
  private MyUtils.Helper1 help1 = new MyUtils.Helper1();
  public void method ()
  {
    private MyUtils.Helper2 help2 = new MyUtils.Helper2();
  }
}

Чтобы сделать их доступными, я сделал их статическими внутри MyUtils (который не имеет собственных данных / функций ). Мой код является потокобезопасным до создания MyUtils .

Меня беспокоит, что, сделав эти внутренние классы статическими , они останутся потокобезопасный , когда их несколько экземпляров будут существовать в файлах? Или их какое-либо плохое значение мне не хватает из-за того, что они статичны ?

Изменить : Я не касаюсь каких-либо общих переменных внутри помощника классы. Меня беспокоило только то, что экземпляр классов static будет потокобезопасным (поскольку они static ).

8
задан iammilind 24 June 2011 в 04:10
поделиться