Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

114
Visualizações
¿Tengo que asegurarme de que las clases se carguen manualmente en Java antes de usar los datos a los que afectan?

Una especie de pregunta de curiosidad, cuando estoy escribiendo un programa en Java que se parece a esto:

 public class Basic { public static HashMap<String,Integer> my_map = new HashMap<>(); public static void main(String[] a) { mymap.forEach( (str,i) -> System.out.println(str+": "+i) ); } }

esencialmente una estructura para contener y procesar algunos datos estáticos/globales, y luego decir, por ejemplo (para la limpieza del código) mis valores en una clase diferente en un archivo diferente que cargaría todos los valores en esa clase principal al iniciar de esta manera:

 public class Foo { static final String a = def("APPLE"); static final String b = def("BUMBLEBEE"); static final String c = def("CARTOGRAPHER"); static String def (String s) { Basic.my_map.put(s, new Random().nextInt(256)); return s; } }

ahora, para que este código funcione correctamente (es decir, al iniciar el programa, se imprimen todos los valores definidos en Foo), mi instinto es definir una función vacía dentro de Foo y llamarla justo al comienzo de main,

y básicamente me preguntaba si esto era realmente necesario. ¿Se iniciarán todas las variables estáticas antes de que se inicie el programa o al menos antes de que se use cualquier código que afecten? ¿O siempre es mejor asegurarse manualmente de que una clase se haya cargado antes de interactuar con los datos con los que podría haber interactuado?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Una clase se carga cuando se accede, incluso para leer solo un campo estático de ella, luego todos sus campos estáticos se inicializarán (a nulo si no están asignados) y luego se ejecutará cualquier bloque estático.

Entonces, cuando su clase de "relleno" accede al nombre de la clase que debe "rellenarse", hace que se cargue.

En su ejemplo, nada llama/se refiere a "Foo". Suponiendo que solo ejecute el método principal de Basic, entonces debería ejecutarse vacío.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda