«C'était ma deuxième année en tant que nouveau diplômé et en tant qu'ingénieur système, mais cette fois, le système d'application Web Java EE dans lequel j'étais impliqué sera mis à disposition pour un usage commercial.
――Lors de la sortie du système, il y a des discussions telles que "L'ancienne zone de Heap est ~" et "Le taux d'utilisation de Metaspace est ~" dans les tests de performance. Je voulais donc reconfirmer "Comment fonctionne Java?", Et a été présenté lorsque j'ai participé à JJUG CCC 2018 Spring [Java 100 knock](https: //www.slideshare. J'ai décidé d'essayer net / JSUX Design / java100).
――Il s'agit d'un ensemble de problèmes Java créés par Just System. Il est destiné aux utilisateurs débutants et intermédiaires, et il est dit qu'il a été créé dans le but de pouvoir produire plus de code qui peut fonctionner de manière stable dans un environnement d'exploitation et présente une excellente maintenabilité et extensibilité. «Je voulais établir ces bases à plusieurs reprises afin d'améliorer mes compétences applicatives, j'ai donc essayé de résoudre la première ... mais j'ai réalisé que je ne comprenais pas du tout Java plus que prévu. C'est parti. Vous trouverez ci-dessous un mémo lorsque j'ai résolu le premier.
--Compiler ... Quelles sont les options javac?
--Spécifiez le chemin de classe - -cp ./src
javac -cp ./src -encoding UTF-8 ./src/Answer001.java
java -cp src/ Answer001
--- cp → classpath Si cela n'est pas spécifié, l'emplacement spécifié du fichier de classe sera le répertoire courant.
javac -cp ./src -d ./classes src/Answer001.java
java -cp classes/ Answer001
L'option -d de --javac ne crée pas de répertoire, vous devez donc en créer un.
--Il semble que junit.jar et hamcrest.jar soient requis sous content / lib, alors téléchargez-les et obtenez-les.
Si la combinaison des versions junit.jar et hamcrest-core.jar ne fonctionne pas
java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
Se produit
--La combinaison de junit 4.12 et hamcrest 1.3 a bien fonctionné
--Utilisez la commande javap, Documents here --- "Inverser l'assemblage du fichier de classe."
javap -c answer/classes/Answer001.class > Answer001-bytecode.txt
Compiled from "Answer001.java"
public class Answer001 {
public Answer001();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream;
3: ldc #3 // String Hello, World!
5: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
8: return
}
Comme vous pouvez le voir dans le mémo, vous pouvez voir que vous résolvez tout en vérifiant désespérément javac, java, le chemin de classe, etc. (C'est vraiment embarrassant d'exposer) «Mais je suis une personne sur le point de lancer des applications Java dans le monde. J'ai senti qu'une telle personne ne serait même pas capable de compiler et d'exécuter Java ... en fait, c'est dans un monde formidable. IDE, la puissance du framework, terrifiant. .. .. `` Le moment où j'ai pensé que ce qui se passe dans le monde de la nourriture où vous pouvez manger du riz chaud et délicieux si vous le louez sans savoir comment couper et assaisonner les ingrédients se produit également dans le développement du système. était. ――Mais je suis ingénieur système. Dans le monde de la nourriture, il est cuisinier. Cela me fait penser que le fait est que la boîte à lunch que j'ai achetée au dépanneur est servie avec de la lentine, même si je me qualifie de chef. Au moins, je ne veux pas manger ce genre de nourriture. «Dans le monde de la cuisine, j'ai mis en place un système pour que le chef puisse répondre en demandant au chef:" Comment faites-vous cuire cet ingrédient? "" Je veux que vous changiez un peu ce goût. " Je voulais pouvoir répondre aux personnes qui l'utilisaient, comme «Comment ça marche?» Et «Je veux que vous changiez un peu le comportement ici». ――Récemment, j'ai l'impression que le nombre de sessions d'étude avec des titres tels que «Je vais essayer de déplacer des choses difficiles parce que ça va» ou «Les débutants peuvent utiliser des applications Web en une journée» augmente. Je pense que c'est une manifestation du fait que le seuil de l'informatique est en baisse. Selon un ingénieur guerrier de 15 ans, dans l'ancien temps, l'IDE lui-même était très cher, et il semble qu'il n'était pas possible de développer un système décent sans être en entreprise. «Cependant, peu importe à quel point il devient gratuit et facile de créer un système, la technologie sous-jacente n'est pas facile. C'est juste que les gens très intelligents cachent les parties difficiles pour les rendre plus faciles à utiliser. Cependant, si vous suivez les faveurs de ces personnes, vous deviendrez une personne qui ne peut rien faire lorsque vous dites "Il y a un problème de performance". En tant que personne qui livre le système, je voulais comprendre le mécanisme de la pièce sous-jacente et livrer un système de haute qualité.