Classe interna
A classe A {// Inner1 só pode ser usada após a inicialização de A, ou seja, deve ser chamada pela classe A. class Inner1 {int k = 0; // static int j = 0; // Depois que A é carregado, o Inner1 não é carregado, portanto, essa variável estática j não pode ser usada imediatamente e um erro é relatado final int z = 0; /*Void estático diz1 () {}*/void Say2 () {}} // Inner2 pode usar classe estática interna2 {int k = 0; estático int j = 0; final int z = 0; estático void diz1 () {} void diz2 () {}} // chamando a classe interna void c () {final int x = 0; // Após a modificação final, novo a (). novo iner1 (); // Classe interna não-estática INNER1, precisam chamar o objeto da classe que pertence a () a (). A.Inner2.Say1 (); novo A.Inner2 (). SAY2 (); // O método não estático diz que2 () requer chamar o objeto da classe que ele pertence à classe Inner3 {void print () {System.out.println (x); }} / * * A chamada da classe interna local no método precisa ser declarada após a declaração, * a ordem de execução no método é de cima para baixo, e essa classe * é equivalente a uma variável local, é claro, você deve primeiro declará -lo e depois usar * / novo inner3 (). Print (); }} Carregador de classe java.lang.classloader
A responsabilidade básica da classe java.lang.classloader é encontrar ou gerar o código de bytes correspondente com base no nome de uma classe especificada e, em seguida, definir uma classe Java desses códigos de bytes, ou seja, uma instância da classe java.lang.class. Além disso, o Classloader também é responsável pelo carregamento dos recursos exigidos pelos aplicativos Java, como arquivos de imagem e arquivos de configuração. No entanto, este artigo discute apenas a função de sua classe de carregamento. Para concluir essa responsabilidade de carregar aulas, o Classloader fornece uma série de métodos:
getParent () retorna o carregador de classe pai do carregador de classe.
O carregamento (nome da string) carrega a classe com o nome do nome, e o resultado retornado é uma instância da classe java.lang.class.
FindClass (nome da string) procura uma classe nomeada nome, e o resultado retornado é uma instância da classe java.lang.class.
FindLoadLedClass (nome da string) procura uma classe carregada nomeado nome, e o resultado retornado é uma instância da classe java.lang.class.
DefinClass (Nome da String, Byte [] B, Int Off, Int Len) converte o conteúdo da matriz B em uma classe Java, e o resultado retornado é uma instância da classe Java.lang.class. Este método é declarado final.
Resolveclass (classe <?> c) vincula a classe Java especificada.
classe pública classeLoadetStest estende a classe {public static void main (string [] args) lança Segurança, NosuchmethodException {// ROOT CLASS Loader, a biblioteca de núcleo carregada url [] urls = sun.misc.launcher.getbootstrapllasspath (). geturls (); para (url u: urls) {system.out.println (u); } // carregador de classe estendido, propriedades do sistema carregado: classe sob o caminho retornado por java.ext.dirs System.err.println ("Extension ClassLoader) loader" + classLoader.getSystemclassloader (). // Application (System Application ClassLoader) Carregador de classe, Carregando o caminho do ambiente do sistema Path ou ClassPath // Pacote de jar especificado e ClassPath System.err.println ("Application (System) Classe Loader" + ClassLoader.GetSystemClassLoader ()); // System.out.println (System.getenv ("Path")); // System.out.println (System.getenv ("ClassPath")); }}