Существует класс Java с именем "A", имеющий внутренний класс с именем "B"
Итак, у вас есть два класса, и у вас должно быть два файла классов.
Если у класса "А" есть 2 внутренних класса, т. Е. B, C
У вас есть три класса и три файла классов.
И если я захочу прочитать файл .class, то какой файл .class я прочитал b / c, когда дал A.class, тогда он запросит A $ B.class
Когда вы читаете файл A.class, вы просто читаете файл. Больше ничего не просит.
и дать Причины: java.lang.ClassNotFoundException: A $ B.class
Это произойдет только в том случае, если этот класс не находится в вашем пути к классам, что является совершенно другой и не связанной вещью.
Вот как вы загружаете классы, но создаете экземпляры этих классов. Нет необходимости читать базовые классы или даже знать, как они расположены на диске.
A a = new A(); // creates an instance of A
A.B b = a.new A.B(); // creates an instance of A.B which is "inside" 'A a'.