Java-Leben von vorne anfangen

Schreiben wir Java!

In diesem Artikel werde ich als zweiten Tag des Java-Adventskalenders 2018 für Programmierer, die noch nie Java verwendet haben, eine Java-Entwicklungsumgebung vorstellen, die ich ab diesem Zeitpunkt starten sollte, und außerdem sagen, dass "Java verwendet werden kann". Ich möchte Einstellungen vornehmen, damit der Compiler und die statischen Analysetools mich schelten, bis ich das Niveau erreicht habe, das ich denke.

Dieser Artikel wird nicht für diejenigen empfohlen, die neu in der Programmierung und neu in Java sind. Es ist für Leute, die andere Programmiersprachen verwenden und Java irgendwie verstehen können.

Wenn Sie eine erfahrene Person sind, denke ich, dass jeder das Gefühl hat, dass meine Umgebung besser ist. Bitte stellen Sie sie vor. Obwohl es sich um einen Artikel Ende 2018 handelt, hat sich die Grundzusammensetzung in den letzten Jahren nicht wesentlich geändert. Ich frage mich, ob Facebook Infer oder Checker Framework alltäglich werden ...

Installieren Sie Eclipse

Um Java zu schreiben, setzen Sie Eclipse, eine japanische Version des Pakets Pleiades All in One.

pleiades.png

Das Schreiben von Java mit einem vertrauten Editor wie Vim oder Emacs ist ** unvernünftig **. eclim ist ein wenig verrückt ~~ Es gibt auch eine fortgeschrittene Fähigkeit, aber da der Inhalt Eclipse ist, ist es der nächste Schritt, nachdem Sie mit Eclipse schreiben können. .. Andere Editoren sind ebenfalls nutzlos. Ich sage dir die Wahrheit, Java ist eine ** IDE-Sprache **. Möchten Sie eine visuelle Programmiersprache in einem Texteditor schreiben? Sie bearbeiten es mit einem visuellen Editor. Ebenso dient die IDE-Sprache zur Bearbeitung in der IDE.

Was ist mit anderen IDEs als Eclipse? Wenn Sie einen Artikel wie diesen auf Japanisch lesen, ist Pleiades All in One Ihre Wahl. Ein häufiger Fehler besteht darin, Englisch zu verstehen, Englisch zu lernen oder zu denken, dass Englisch informativer ist, und in ein Feld zu stürzen, das Sie in einer Sprache, in der Sie nicht gut sind, nicht richtig kennen.

Java hat einen Java-Begriff. (Obwohl ich mir dessen normalerweise nicht bewusst bin, denke ich, dass die meisten Sprachen eindeutige Begriffe oder Begriffe haben, die für die Domäne spezifisch sind, an der sie sich orientieren.) Wenn Sie nicht wissen, ob Sie die Funktionen der IDE nicht verstehen können, weil sie auf Englisch oder Java ist, können Sie sie nicht nachschlagen. Solche Wörter geben es oft auf, schnell verstanden zu werden, und sind daher nützliche Funktionen, die noch nie verwendet wurden. Wenn Ihnen niemand genau sagen kann, sollte die Benutzeroberfläche nativ sein, zumindest bis Sie den Dreh raus haben.

Natürlich kann IntelliJ (sogar CE) auch mit Plejaden [japanisiert] werden (https://pleiades.io/pages/pleiades_jetbrains_manual.html), aber Japanisierung ist nicht sehr verbreitet und für fortgeschrittene Benutzer. ist. Es gibt auch NetBeans und VSCode, aber Sie können sie vorerst vergessen. Es geht nicht um Gut oder Böse, es ist einfach nicht für diesen Zweck geeignet.

Für Plejaden All in One gibt es mehrere Typen. Zögern Sie nicht, die Vollversion von ** für Java ** erneut herunterzuladen.

pleiades-java.png

Haben Sie sich für Ultimate entschieden, weil Sie sich auch für andere Sprachen interessieren? Es ist ein Misserfolg. Eclise ist eine tiefgreifende IDE. Ultimativ macht es noch tiefer. Ich weiß nicht, wie ich die Sprachumgebung wechseln soll, also ist es Sekiyama.

Haben Sie sich für Platform entschieden, weil Sie es selbst einstellen möchten? Gras beim Scheitern. Ich bin es nicht gewohnt, eine Sonnenfinsternis zu machen, aber ich kann sie nicht einstellen.

Wenn Sie Eclipse für eine andere Sprache bereits installiert haben, zögern Sie nicht, die neueste Version für Java zu löschen.

eclipse ist eine Plugin-reiche IDE, aber die Tatsache, dass es reich an Plugins ist und dass mehrere Plugins zusammenarbeiten und funktionieren, ist eine ganz andere Geschichte. Viele der Fehlerursachen bei Eclipse sind, dass Sie Stecker in alles stecken können und die Stecker inkonsistent sind oder einige Stecker einen schwerwiegenden Fehler verursachen und Eclipse nicht startet. ist.

Sie sollten eine validierte stabile Umgebung verwenden, bis Sie dies verstanden haben.

Richten Sie Eclipse ein

Die Ersteinrichtung erfolgt nach der Installation.

Überprüfen Sie dies vor dem Booten

~~ Keine Menschenrechte ~~ Es ist bedauerlich, Eclipse auf einer Maschine mit wenig Speicher zu starten, aber es ist eine seltene und weit verbreitete Geschichte. Ich möchte einzelne Tuning usw. von diesem Artikel ausschließen, aber wenn Sie sich Gedanken über die 32-Bit-Version oder den 32-Bit-Speicher machen, ist es eine gute Idee, die folgenden zwei Zeilen am Ende von "eclipse.ini" hinzuzufügen.

eclipse.ini(Auszug)


-Xms1G
-Xmx1G

Stellen Sie den Compiler ein

Das Tolle (und selten eine Falle) an der Java-Umgebung von eclipse ist, dass es einen Java-Compiler für Eclipse namens ** Eclipse Compiler für Java (ecj) ** enthält. IntelliJ, das nur das JDK verwendet, kann etwas Ähnliches tun, also nicht, weil es jetzt ecj gibt, aber trotzdem kann ecj seine eigene Warnung setzen und die statische Analysefunktion selbst realisieren. tun. Es ist jedoch standardmäßig süß, ändern Sie es also auf die volle Leistungseinstellung. Obwohl ich mein Bestes geben werde, seien wir gewarnt.

Öffnen Sie die Einstellungen. 設定メニュー

コンパイラーのエラー/警告

Schauen wir uns die Einstellungen für jedes Element einzeln an.

Codestil

codestyle.png

Obwohl es als Stil bezeichnet wird, ist es im Allgemeinen eine allgemeine Regel, daher mache ich es normalerweise zu einer ** Warnung . " Nicht externalisierte Zeichenfolge " ist eine Option, die für viele nicht relevant ist und ignoriert werden kann. Wenn der Stil geteilt ist, wäre es " Zugriff auf unzugängliche Mitglieder des umschließenden Typs " oder " Parameterzuweisung **"? Ersteres ist, wenn Sie eine Klasse in der Klasse erstellen, sodass Sie sich wahrscheinlich eine Weile nicht darum kümmern müssen. Letzteres ist eine Option, die keine Zuordnung zu Argumenten zulässt.

Mögliche Programmierprobleme

潜在的なプログラミングの問題

"* Boxing- und Unboxing-Konvertierung " " Aufzählung unvollständiger Schalter " " 'Standardfall fehlender Schalter' " " serialisierbare Klasse ohne serialVersionUID *" ist bestenfalls * * Information ** ist in Ordnung, aber alles andere ist nützlich, also mach es ** Warnung **.

Nennen Sie Schatten und Konflikte

shadow.png

Dies dient dazu, Fehler zu vermeiden, da es aufgrund der Abdeckung von Variablennamen leicht ist, Fehler zu machen. Eigentlich ist es unwahrscheinlich, dass die Referenzhilfe Fehler in der IDE macht, aber machen wir es ** Warnung **.

Nullanalyse

Null分析

"** Annotationsbasierte Nullanalyse aktivieren **" ist schwierig zu verwenden, daher ist es eine gute Idee, sie zu deaktivieren. Andere sind natürlich die besten.

Stellen Sie den Formatierer ein

Ich denke, Sie mögen die Formatierungseinstellungen selbst, aber die Standardeinstellungen tun nichts für Kommentare im Javadoc-Stil, und die Kommentare werden normalerweise schmutzig. Lassen Sie uns das also alleine einstellen.

formatter.png

javadoc-format.png

"** Javadoc-Kommentarformat aktivieren " " Blockkommentarformat aktivieren " " Header-Kommentarformat aktivieren **" ist wichtig ist.

Festlegen der Speicheraktion

Persönlich denke ich, dass das beste Merkmal von Eclipse diese Speicheraktion ist. Wenn Sie die Datei speichern, wird sie nicht nur formatiert, sondern auch der Code bereinigt. Wenn Ihr Projekt keine strengen Regeln hat, müssen Sie vorsichtig sein, denn wenn Sie den von einer anderen Person geschriebenen Quellcode bearbeiten, wird er automatisch in den nicht verwandten Teil geändert, aber aktivieren Sie ihn immer für Ihr eigenes Schreiben. Sollte verlassen werden.

保存アクション

Sie sollten alle Funktionen verwenden. Lassen Sie uns auch zusätzliche Aktionen festlegen.

Es kann hier Unterschiede in den Einstellungen, Codierungsstandards und Entwicklungsstilen geben, aber ich werde meine Einstellungen vorerst erläutern. Wenn Sie die Speicheraktion zu streng gestalten, wird der von Ihnen erstellte Code bereinigt. Stellen Sie daher ein gutes Gefühl ein.

Codestil

コードスタイル

Code-Organisation

コード編成

Lassen Sie uns den Formatierer vorerst aktivieren. Es mag einfacher sein, die Mitglieder in ABC-Reihenfolge sortiert zu sehen, aber es ist eine gute Idee, sie beim Bearbeiten nicht zu sortieren, da dies ziemlich verwirrend sein kann.

Mitgliederzugang

member.png

Fehlender Code

欠落コード Ich denke, es ist in jeder Szene am nützlichsten, aber es ist standardmäßig aktiviert.

Unnötiger Code

不要なコード

Bereinigung einrichten

Bereinigen ist wie das Ausschneiden einer separaten Speicheraktion. Sie können fast das Gleiche wie beim Speichern tun. Aktivieren Sie daher Funktionen, mit denen Sie normalerweise nicht arbeiten möchten, z. B. "Nicht verwendete lokale Variablen entfernen", und bereinigen Sie sie, wenn die Implementierung abgeschlossen ist. Sie können es richtig verwenden, indem Sie es betrachten.

cleanup.png

Versuchen Sie zu machen

Nachdem die Einstellungen abgeschlossen sind, beginnen wir mit der Erstellung.

Verwenden Sie gradle

Die heutigen Hauptsprachen verfügen über Software-Repositorys für Bibliotheken und Tools, die mit Abhängigkeiten von Paketverwaltungstools wie npm und pip auf einmal installiert werden können. Natürlich ist es auch in Java. In Java ist Maven das Äquivalent. Entsprechend wird heutzutage als Versprechen alter Java-Projekte das Gradle mit groovigen Konfigurationsdateien bevorzugt, da die Konfigurationsdatei XML ist. gradle ist ein Build-Tool, das Abhängigkeiten mithilfe des Maven-Repositorys auflösen kann.

Pleiades All in One enthält bereits den Gradle Plug ** Buildship **, sodass Sie ihn sofort verwenden können. Wenn Sie es von nun an in Java machen wollen, sollten Sie es trotzdem als Gradle-Projekt machen. Obwohl es sich um ein Build-Tool handelt, muss es nicht unbedingt mit Gradle erstellt werden können, und es ist äußerst nützlich, nur weil es als Bibliotheksinstallationsprogramm fungiert.

新しいgradleプロジェクト

Öffnen Sie nach dem Erstellen das build.gradle des Projekts. Der größte Unterschied zwischen Maven-Repositorys und npm-Repositorys und Pip-Repositorys besteht darin, dass es mehrere bekannte Repositorys gibt. Es ist üblich, eigene Repositorys zu haben oder Repositorys projektweise einzurichten. Es gibt zwei sehr berühmte öffentliche Repositories, maven central und jcenter. Es ist ein Ärger, also ist es eine gute Idee, beide einzustellen. Einige Bibliotheken befinden sich normalerweise auf beiden Seiten.

build.gradle


apply plugin: 'java-library'

repositories {
    jcenter()
    mavenCentral()
}

dependencies {
    //Die abhängigen Bibliotheken werden wie folgt angegeben:
    //Der Wert, der standardmäßig von buildship generiert wird, ist nur ein Beispiel.
    api 'org.apache.commons:commons-math3:3.6.1'
    implementation 'com.google.guava:guava:23.0'
    testImplementation 'junit:junit:4.12'
}

Maven Artefakt

Der Name der Bibliothek (genannt ** Artefakt **) im Maven-Repository besteht aus der Gruppen-ID und der Artefakt-ID. Beispielsweise wird eine Bibliothek namens Guave, die üblicherweise in Java verwendet wird, zur Artefakt-ID "Guave" der Gruppen-ID "com.google.guava". Grob gesagt kann man sich einen Bibliotheksnamen vorstellen, der im Allgemeinen länger ist als in anderen Sprachen.

Verwenden Sie die Vervollständigung

In IDEs wie Eclipse ist die Fertigstellung von größter Bedeutung. Die Vervollständigungsfunktion erweitert nicht nur den Variablennamen, sondern ermöglicht es Ihnen auch, den Typ anzugeben und eine Importanweisung zu schreiben oder eine Hauptmethode zu generieren. (Normalerweise ist der Import nicht handgeschrieben)

Date.png

Hauptgeneration main

benutze lombok

Was den meisten Java-Quellcode zwischen der Veröffentlichung von Java 6 vor 10 Jahren und jetzt geändert hat, ist lombok und nicht das Upgrade der Sprachspezifikation. Ist eine große Sache, die alltäglich geworden ist. In den alten Tagen wurden Java-ähnliche Getter / Setter und toString () / hashCode () / equals () durch Eclipse und Tools generiert. Wenn Sie nun eine Anmerkung schreiben und lombok zur Kompilierungszeit in den Compiler integrieren, generiert lombok diese zur Kompilierungszeit heimlich. Sie müssen sich nicht mit dem von Menschen generierten Code befassen, damit Sie Ihren Quellcode sauber halten können. Da es von Anfang an in Pleiades All in One integriert ist, können Sie es sofort verwenden, indem Sie die Bibliothek in die Abhängigkeit integrieren, damit sie im Projekt verwendet werden kann.

build.gradle


apply plugin: 'java-library'

repositories {
    jcenter()
    mavenCentral()
}

dependencies {
    compileOnly 'org.projectlombok:lombok:1.18.+'
}

Wenn es keinen Lombok gibt

Example.java


public class Example {
  private String familyName;
  private String lastName;

  public String getFamilyName() {
    return familyName;
  }

  public String getLastName() {
    return lastName;
  }

  public void setFamilyName(String familyName) {
    this.familyName = familyName;
  }

  public void setLastName(String lastName) {
    this.lastName = lastName;
  }

  public boolean equals(Object o) {
    ...
  }

  public int hashCode() {
    ...
  }

  public String toString() {
    ...
  }
}

Wenn es Lombok gibt

Example.java


@Data
public class Example {
  private String familyName;
  private String lastName;
}

Dies ist der gleiche Code.

Es sieht aus wie schwarze Magie, ist aber eine legitime Erweiterung der Java-Compilerspezifikation. Es ist nur ein Codegenerator, sodass zur Laufzeit keine Strafe anfällt. (In den meisten Fällen wird Lombok zur Laufzeit nicht benötigt.)

Weitere Informationen finden Sie unter Lombok-Funktionen. Durch Vergleichen des Codes vor und nach der Generierung können Sie leicht erkennen, was passiert.

Verwenden Sie SpotBugs

SpotBugs, früher bekannt als FindBugs, ist das standardmäßige statische Analysetool von Java. (Um genau zu sein, es wurde gegabelt, weil FindBugs es gegessen hat) SpotBugs können Nullprüfungen, Ressourcenlecks, Fehler bei der API-Fehlerprüfung und mehr erkennen. SpotBugs / FindBugs können standardmäßig unter vielen statischen Java-Analysetools verwendet werden, da sie nur die allgemeine Theorie in Java erkennen und sich in der Position von Eslint von JavaScript und PEP8 (Checker) von Python befinden. ..

Dies ist auch in Pleiades All in One enthalten, sodass Sie es zum Zeitpunkt des Schreibens des Programms in gewissem Umfang verwenden können.

UseSpotBugs.png

Verwenden Sie JSR305

Es gibt (nicht) Java bei Ihnen, Java und null, aber etwas, das null sein kann, wird schließlich null sein. Sowohl ecj als auch SpotBugs ermöglichen es Ihnen, einfache Nullprüfungen durchzuführen. Beide basieren jedoch auf einfachen Analysen und erfassen nicht die Absicht oder den komplexen Code des Programms (es wird immer komplexer). Durch die Verwendung einer Bibliothek namens JSR305, die der Spezifikation entspricht, die nicht zum Java-Standard geworden ist, kann mit Anmerkungen angegeben werden, ob eine Variable null werden kann oder nicht. Natürlich handelt es sich um eine Anmerkung, sodass kein Kompilierungsfehler verursacht wird. (Ecj kann Fehler machen, aber ich empfehle es nicht.) SpotBugs unterstützt jedoch JSR305, sodass Sie Absichten mit Nullprüfungen mischen können. Außerdem kann "@ CheckReturnValue" gezwungen werden, den Rückgabewert "@ Immutable" zu verwenden, um anzuzeigen, dass es unveränderlich ist, "@ NotThreadSafe", um anzuzeigen, dass die Ressource geschlossen ist, und "@ WillClose", um anzuzeigen, dass die Ressource geschlossen wird. Zusätzlich zur Nullprüfung werden nützliche Anmerkungen bereitgestellt.

build.gradle


apply plugin: 'java-library'

repositories {
    jcenter()
    mavenCentral()
}

dependencies {
    compile 'com.google.code.findbugs:jsr305:3.0.+'
    //Möglicherweise benötigen Sie auch die Spotbus-Anmerkung, wenn Sie sich daran gewöhnt haben
    // compile 'com.github.spotbugs:spotbugs-annotations:3.1.+'
    compileOnly 'org.projectlombok:lombok:1.18.+'
}

Wenn es JSR305 gibt


//Es macht keinen Sinn, eine Methode aufzurufen, die keinen Rückgabewert verwendet
@CheckReturnValue
public String getLastName() { ... }
//Es kann null sein, daher müssen Sie den Rückgabewert überprüfen
@CheckForNull
public String getFamilyName() { ... }
...

public void test() {
  getLastName(); //Spot Bugs werden wütend, weil ich den Rückgabewert nicht verwende
  String f = getFamilyName();
  String t = f.substr(0); //Spot Bugs werden wütend, weil ich nicht auf Null geprüft habe
}

Stärker einstellen

Wenn Sie sich daran gewöhnen (oder der Code klein ist), sagt SpotBugs nicht viel. Stellen Sie in einem solchen Fall so ein, dass auch kleinere Probleme in allen Kategorien gemeldet werden können.

SpotBugs

Übrigens ist "** Mindestrang für Bericht **" die Einstellung am rechten Ende des Balkens, wobei 20 am häufigsten gemeldet wird. Bitte beachten Sie, dass dies nicht das Gegenteil ist.

Außerdem können SpotBugs die Erkennungsfunktion mit einem Plug-In (z. B. fb-Contrib) verbessern, sodass Sie dies möglicherweise in Betracht ziehen.

Andere Themen

Sie sollten nun in der Lage sein, Ihre Umgebung einzurichten und mit der Entwicklung zu beginnen. Ich werde die spezifische Implementierung mit dem Framework in diesem Artikel nicht behandeln, aber ich werde kurz vorstellen, was Sie wissen müssen.

Javadoc Ich glaube, ich schreibe heutzutage xxxDoc in einer beliebigen Sprache, aber vergiss Javadoc nicht. Wenn Sie in Eclipse "/ **" eingeben und vor der Methode die Eingabetaste drücken, wird eine Vorlage generiert, die ziemlich gut aussieht. Wenn Sie den Rest der Code-Vervollständigung überlassen, sollten Sie in der Lage sein, ein Minimum an Javadoc so zu schreiben, wie es ist.

public class Library {
	/** //← Wird nur durch Eingabe hier generiert
	 * 
	 * @param t
	 * @return
	 */
    public boolean someLibraryMethod(int t) {
        return true;
    }
}

Vervollständigen wir den Code, um zu sehen, welche Art von Tags es gibt. javadoc-comp.png

Codierungskonvention

Mit Ausnahme der Behandlung von Tabulatoren / Einrückungen lautet das Standardformat in Java Google Java Style Guide (Kopffamilie) | [(inoffizielle japanische Übersetzung)]( Ich denke, es ist eine gute Idee, https://kazurof.github.io/GoogleJavaStyle-ja/) genau zu lesen.

Reflexion und Anmerkung

Ich denke, es ist eher schwarze Magie als Lombok, aber Reflexion ist die grundlegende Technologie, die hier und da in Frameworks und Bibliotheken verwendet wird. Die meisten modernen Sprachen können dies, daher sollte es leicht zu akzeptieren sein. In Java gibt es jedoch einige problematische Situationen, in denen die Implementierungsstufe der Reflexion je nach Bibliothek unterschiedlich ist.

Anmerkungen werden zunehmend zur Unterstützung der Reflexion verwendet. Lassen Sie sich also nicht von der Tatsache täuschen, dass die Anmerkung selbst wie ein komplexer Code aussieht und alarmierend sein kann, aber die Anmerkung selbst ist nur eine Bezeichnung.

Example.java


import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;

@JsonAutoDetect(fieldVisibility = Visibility.ANY)
public class Example {
  private String familyName;
  private String lastName;

  public static void main(final String[] args) throws Exception {
    ObjectMapper mapper = new ObjectMapper();
    Example e = new Example();
    e.familyName = "Nachname";
    e.lastName = "Name";
    System.out.println(mapper.writeValueAsString(values));
    // {"familyName":"Nachname","lastName":"Name"}
  }
}

Verwenden Sie Jackson

Jackson ist eine ziemlich de facto Standardbibliothek für die Arbeit mit JSON in Java und bietet eine hervorragende Möglichkeit, die Reflexion zu verstehen.

Versuchen Sie es mit Jackson-Annotationen. https://github.com/FasterXML/jackson-annotations

Das heutige Java

Das Schreiben von Java in einem Notizblock an der Universität und im Trauma ist eine Geschichte über Java, aber es ist auch ein Versprechen, dass das Java, das es dort gelernt hat, in der Java 2-Ära sein wird.

Selbst wenn Sie nicht viel über Java wissen, wissen Sie vielleicht, dass es in Java 8 relativ große Änderungen gab, wenn Sie ein wenig recherchieren. Das Java 8 wurde im März 2014 vor mehr als vier Jahren veröffentlicht. Natürlich sind es nur vier Jahre von Javas mehr als 22-jähriger Geschichte, aber wenn Sie jetzt anfangen, sollten Sie zumindest hier anfangen. Effektives Java ist jetzt Java 9-kompatibel.

Aufgrund der Geschichte von Java sind Java-Applets und überlebende (und nicht aktualisierbare) Personen und Informationen im i-Modus leider häufig in Orten wie Online-Programmierkursen und Schulen zu finden. Das mag in Bezug auf das Erlernen der Programmierung in Ordnung sein, ist jedoch in Bezug auf das Erlernen von Java schädlich.

Alter Code

Wenn Sie Code wie den folgenden sehen, schließen Sie ihn.

Die Leute, die diese Art von Code schreiben, sind Java SE 1.5 und früher, daher sind sie nicht mehr alt. Die Landschaft ist heutzutage zwischen Java und Java heute ganz anders. Vielmehr sollten Sie zu diesem Zeitpunkt die Java-Kenntnisse vergessen.

Seien Sie ein wenig vorsichtig mit Code wie diesem:

Ein solcher Code könnte in der Java 6/7-Ära sein. Es sollte nicht völlig nutzlos sein, aber Sie können nicht erwarten, dass viel von der Lambda-Formel profitiert.

JVM Die Schwierigkeit, von nicht lebenden Personen im JVM-Ökosystem mit Java zu beginnen, oder die Höhe des Java-Schwellenwerts ist ein Problem, da keine Kenntnisse über JVM und nicht über Java und moderne virtuelle Prozessmaschinen anstelle von JVM vorliegen. Ich denke, das bedeutet es. Wenn über JVM gesprochen wird, wird oft gesagt, dass es natürlich ist, über Generations-GC Bescheid zu wissen. Was ist GC überhaupt, abhängig von der Sprache, die Sie bisher verwendet haben?

Die meisten Leute wollen nur Java verwenden und nicht separat über JVM sprechen, aber JVM muss entscheiden, wie viel Speicher zum Startzeitpunkt verfügbar ist, und abhängig davon die Welt stoppen, ein Phänomen, das nicht separat geschrien werden muss. Tritt auf, daher gibt es häufig Situationen, die Sie kennen müssen.

Vorerst ist es besser zu verfolgen, welche Funktionsoptionen in der Befehlszeile verfügbar sind.

shell


java -XX:+PrintFlagsFinal -version

Effective Java Dies ist ein Buch, das man unbedingt lesen muss. Lesen wir es, wenn Sie bis zu einem gewissen Grad Java schreiben können. Die dritte Ausgabe der japanischen Version wurde im Oktober veröffentlicht.

https://www.maruzen-publishing.co.jp/item/b303054.html

Ende

Ende

Recommended Posts

Java-Leben von vorne anfangen
Java ab Anfänger überschreiben
Java, Instanz für Anfänger
Java ab Anfänger, Vererbung
Java, abstrakte Klasse für Anfänger
Deep Learning Java von Grund auf 6.4 Regularisierung
Java, Überlastungskonstruktor ab Anfänger
Lernen Sie Deep Learning von Grund auf in Java.
Java für Anfänger, Variablen und Typen
Java ab Anfänger, verschachtelt / Pause / Weiter
Java, if-Anweisung / switch-Anweisung ab Anfänger
Java ab Anfänger, logischer Operator / bedingter Operator
Einführung in Java ab 0 Teil 1
Deep Learning Java von Grund auf neu Kapitel 1 Einführung
Deep Learning Java von Grund auf 6.1 Parameteraktualisierung
Deep Learning Java von Grund auf neu Kapitel 2 Perceptron
Deep Learning Java von Grund auf 6.3 Batch-Normalisierung
Java, für Anweisung / while-Anweisung ab Anfänger
Scala von vorne anfangen (Environment Construction Mac)
Deep Learning von Grund auf neu Java Kapitel 4 Lernen neuronaler Netze
Java ab Anfänger, Klassendeklaration / Objekterzeugung
[Deep Learning von Grund auf neu] in Java 3. Neuronales Netzwerk
Für Java-Ingenieure, die ab sofort Kotlin starten
Deep Learning Java von Grund auf neu Kapitel 3 Neuronales Netzwerk
Rufen Sie Java von JRuby aus auf
Änderungen von Java 8 zu Java 11
Summe von Java_1 bis 100
Eval Java-Quelle von Java
Bild-in-Bild ab iOS14
Von Java zu Ruby !!
Erstellen Sie die VS Code + WSL + Java + Gradle-Umgebung von Grund auf neu
[Hinweis] Erstellen Sie mit Docker eine Java-Umgebung von Grund auf neu
Deep Learning Java von Grund auf 6.2 Anfangswert des Gewichts
[Java] Plattformen zur Auswahl für die Java-Entwicklung ab sofort (2020)
Deep Learning Java von Grund auf neu Kapitel 5 Methode zur Fehlerrückübertragung
Elastic Search Indexerstellung aus Java
Neue Funktionen von Java7 bis Java8
Stellen Sie eine Verbindung von Java zu PostgreSQL her
Verwenden von Docker von Java Gradle
Von ineffektivem Java zu effektivem Java
JavaScript von Java aus gesehen
Führen Sie Nicht-Java-Anweisungen von Java aus
Rufen Sie Kotlins versiegelte Klasse von Java aus an
Land von IP-Adresse abrufen (Java)
Führen Sie node.js von Android Java aus (Verarbeitung)
Führen Sie eine Batchdatei von Java aus
[Java] Entfernen Sie Leerzeichen in Zeichenfolgen
Akka praktische Vorbereitungsprozedur aus Java
Greifen Sie über eine Java-Anwendung auf Teradata zu
Verwenden Sie Chrome Headless von Selenium / Java
Java soll ab heute dabei sein
Arbeiten Sie mit Google-Tabellen aus Java
Java, Schnittstelle für Anfänger
[Java] Spring DI ④ - Lebenszyklusverwaltung
[Java] So legen Sie den Proxy beim Starten von Java fest
Der Weg von JavaScript nach Java
Wiedereinführung von Java8, das seit Android Studio 2.4 verfügbar ist
Rufen Sie die Java-API von TensorFlow von Scala aus auf
[Java] Konvertierung von Array zu Liste
Spring Boot ab Null Teil 2
Beispielcode mit Minio aus Java