1. Grundlegende Datentypen
Plastische Chirurgie:
Byte 1 Byte
kurze 2 Bytes
int 4 Bytes
lang 8 Bytes
Charakter:
char 2 Bytes
Gleitkommazahl:
float 4 Bytes
doppelte 8 Bytes
Boolescher Wert:
boolescher Wert 1 Byte
2. Java 7 fügt neue binäre Ganzzahlen hinzu
Beginnen Sie mit 0b oder 0B
3. Zeichen in Java sind 16-Bit-Unicode-Kodierung, das Format ist „/uXXXX“, wobei xxxx eine hexadezimale Ganzzahl darstellt
4. Java schreibt positive Unendlichkeit, negative Unendlichkeit und Null vor.
Positive Unendlichkeit = eine positive Zahl geteilt durch 0
Negative Unendlichkeit = eine negative Zahl dividiert durch Null
Teilen Sie 0,0 durch 0,0 oder ziehen Sie die Quadratwurzel einer negativen Zahl, um eine Nicht-Zahl zu erhalten
5. Boolesche Typen in Java können nur wahr und falsch sein
6. In Java gibt es kein mehrdimensionales Array
Es scheint, dass die mehrdimensionalen Arrays in der C-Sprache keine realen Arrays sind. Beispielsweise sind a[3][4], a[0], a[1], a[2] real und mit Adressen gefüllt sind in der C-Sprache dynamisch und das gleiche wie das zugewiesene Array
int [][] b = neues int[3][4]
7. Kompilierungsmethode mit Paket in Java
javac -d . Hello.java generiert einen Verzeichnisbaum im aktuellen Verzeichnis
Führen Sie das Java-Paketname.Klassenname aus
8. Das Feld von Objekten im Java-Polymorphismus weist keinen Polymorphismus auf, z. B. in der übergeordneten Klasse object = new subclass (), wird object.field als übergeordnete Klasse bezeichnet, auch wenn das Feld in der Unterklasse abgedeckt ist.
9. Instanz des Operators
Format: Referenzvariablenname, Instanz des Klassennamens (oder Schnittstelle). Wird verwendet, um zu bestimmen, ob das vorherige Objekt eine Instanz der Klasse, Unterklasse oder Implementierungsklasse des folgenden Objekts ist. Wenn ja, wird true zurückgegeben, andernfalls wird false zurückgegeben.
10. Konvertierung zwischen grundlegenden Datentypen und entsprechenden Kapselungsklassen in Java
int a = 1;
Ganzzahl A = neue Ganzzahl(a);
a = A.intValue();
Das Gleiche gilt auch für andere Typen.
11. Beispiel einer Singleton-Klasse
public static void main(String[] args)
{
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
System.out.println(s1 == s2);
}
}
Klassenfeld: Der Anfangswert muss in einem statischen Initialisierungsblock oder bei der Deklaration des Feldes angegeben werden
Instanzfeld: muss in einem nicht statischen Initialisierungsblock oder durch Angabe eines Anfangswerts oder Konstruktors beim Deklarieren des Felds deklariert werden.
13. Endgültige Variablen müssen explizit initialisiert werden. Das System initialisiert nicht implizit endgültige Variablen.
14.java verwendet den Konstantenpool, um die zuvor verwendeten direkten Zeichenfolgenkonstanten zu verwalten, zum Beispiel: String a = „java“;, das System speichert die konstante Zeichenfolge „Java“ im Konstantenpool und wenn String b = "java"; wird erneut ausgeführt, a == b ist wahr
15. Final-Methoden können nicht überschrieben werden und Final-Klassen können nicht vererbt werden.
Wenn die private Methode verwendet wird, ist sie dasselbe wie final private.
Wenn eine mit final geänderte Methode in einer Unterklasse vorkommt, wird sie von der Unterklasse neu definiert und hat nichts mit der übergeordneten Klasse zu tun.
16. Unveränderliche Klasse: Das Feld dieser Klasse kann nach der Erstellung nicht geändert werden. Java bietet acht grundlegende Variablen-Wrapper-Klassen und String-Klassen, die beide unveränderlich sind.
17. Unveränderliche Klassen, die Instanzen zwischenspeichern
öffentlicher boolescher Wert gleicht (Objekt obj)
{
if(this == obj)
return true;
if(obj != null && obj.getClass() == CacheImmutale.class)
{
CacheImmutale ci = (CacheImmutale)obj;
return name.equals(ci.getName());
}
return false;
}
public int hashCode()
{
return name.hashCode();
}
}
öffentliche Klasse CacheImmuteTest
{
public static void main(String[] args)
{
CacheImmutale c1 = CacheImmutale.valueOf("Hallo");
CacheImmutale c2 = CacheImmutale.valueOf("Hallo");
System.out.println(c1 == c2);
}
}
Es gibt auch java.lang.Integer von Java, das einen Caching-Mechanismus verwendet, um Zahlen zwischen -128 und 127 zu erstellen.
Ganzzahl in2 = Integer.valueOf(6);
Integer in3= Integer.valueOf(6);
in2 == in3 ist wahr;
18. Statische und abstrakte Methoden können nicht gleichzeitig geändert werden. Es gibt keine abstrakte Klassenmethode.
19. Eine Klasse kann eine übergeordnete Klasse haben und mehrere Schnittstellen implementieren. In der Schnittstelle ist Filed öffentlich, statisch und endgültig, und die Methode ist öffentlich abstrakt.
20. Wenn eine Methode einer nicht statischen inneren Klasse auf eine Variable zugreift, lautet die Suchreihenfolge: zuerst innerhalb der Methode in der inneren Klasse -> innere Klasse -> wenn sie nicht in der äußeren Klasse gefunden wird, tritt ein Kompilierungsfehler auf.
öffentliche Klasse DiscernVariable
{
private String prop = „Instanzvariable der externen Klasse“;
Privatunterricht InClass
{
private String prop = „Instanzvariable der inneren Klasse“;
öffentliche ungültige Info()
{
String prop = "lokale Variable";
System.out.println("Feldwert der externen Klasse: " + DiscernVariable.this.prop);
System.out.println("Feldwert der inneren Klasse: " + this.prop);
System.out.println("Wert der lokalen Variablen: " + prop);
}
}
öffentlicher Void-Test()
{
InClass in = new InClass();
in.info();
}
public static void main(String[] args)
{
new DiscernVariable().test();
}
}
22. Greifen Sie auf innere Klassen außerhalb äußerer Klassen zu
Greifen Sie auf nicht statische innere Klassen zu: outclass.Inclass varname = new outclass().new InClass();
Greifen Sie auf statische innere Klassen zu: outclass.Inclass varname = new outclass.Inclass();
Klasse raus
{
classIn
{
publicIn()
{
System.out.println("Nichtstatischer innerer Klassenkonstruktor");
}
}
}
öffentliche KlasseCreatInnerInstance
{
public static void main(String[] args)
{
Out.In in = new Out().new In();
/*
Der obige Code kann separat geschrieben werden als:
Raus. Rein rein;
Out out = new Out();
in = out.new In();
*/
}
}
Klasse SubClass erweitert Out.In
{
//Zeigt den Konstruktor an, der SubClass definiert
öffentliche Unterklasse (Out out)
{
//Den Konstruktor anzeigen, der In über das übertragene Out-Objekt aufruft
out.super();
}
}
Klasse StaticOut
{
statische Klasse StaticIn
{
öffentliches StaticIn()
{
System.out.println("statischer innerer Klassenkonstruktor");
}
}
}
öffentliche Klasse CreatStaticInnerInstance
{
public static void main(String[] args)
{
StaticOut.StaticIn in = new StaticOut.StaticIn();
/*
Der obige Code kann separat geschrieben werden als:
StaticOut.StaticIn in;
in = new StaticOut.StaticIn();
*/
}
}
Die Klasse SubClass erweitert StaticOut.StaticIn
{
//Keine Notwendigkeit, eine innere Klasseninstanz zu erstellen
}