1. Types de données de base
Chirurgie plastique:
octet 1 octet
court 2 octets
entier 4 octets
longue 8 octets
personnage:
caractère 2 octets
Nombre à virgule flottante :
flotter 4 octets
doubler 8 octets
Booléen :
booléen 1 octet
2.java 7 ajoute de nouveaux entiers binaires
Commencez par 0b ou 0B
3.Les caractères Java sont encodés Unicode 16 bits, le format est « /uXXXX », où xxxx représente un entier hexadécimal.
4. Java stipule l'infini positif, l'infini négatif et zéro.
Infini positif = un nombre positif divisé par 0
Infini négatif = un nombre négatif divisé par zéro
Divisez 0,0 par 0,0 ou prenez la racine carrée d'un nombre négatif pour obtenir un nombre non
5. Les types booléens en Java ne peuvent être que vrais et faux
6. Il n'y a pas de tableau multidimensionnel en Java
Il semble que les tableaux multidimensionnels en langage C ne soient pas de vrais tableaux. Par exemple, a[3][4], a[0] a[1] a[2] sont réels et sont remplis d'adresses, et sont dynamiques en langage C Les mêmes que le tableau alloué comme.
int [][] b = nouveau int[3][4]
7. Méthode de compilation avec package en Java
javac -d Hello.java générera une arborescence de répertoires dans le répertoire actuel.
Exécutez le nom du package Java.Nom de la classe
8. Le champ d'objets dans le polymorphisme Java n'a pas de polymorphisme, tel que la classe parent object = new subclass (), object.field est appelé la classe parent, même si le champ est couvert dans la sous-classe.
9. instance d'opérateur
Format : Nom de la variable de référence instanceof nom de classe (ou interface) Il est utilisé pour déterminer si l'objet précédent est une instance de la classe, de la sous-classe ou de la classe d'implémentation de l'objet suivant. Si tel est le cas, il renvoie vrai, sinon il renvoie faux.
10. Conversion entre les types de données de base et les classes d'encapsulation correspondantes en Java
entier a = 1 ;
Entier A = nouvel entier (a);
a = A.intValue();
Il en va de même pour les autres types.
11. Exemple de classe Singleton
public static void main (String[] arguments)
{
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
System.out.println(s1 == s2);
}
}
Class Field : La valeur initiale doit être spécifiée dans un bloc d'initialisation statique ou lors de la déclaration du FIeld
Champ d'instance : doit être déclaré dans un bloc d'initialisation non statique ou en spécifiant une valeur initiale ou un constructeur lors de la déclaration du FIeld.
13.Les variables finales doivent être explicitement initialisées. Le système n'initialisera pas implicitement les variables finales.
14.java utilisera le pool de constantes pour gérer les constantes de chaîne directes qui ont été utilisées auparavant, par exemple : String a = "java" ;, le système enregistrera la chaîne constante "java" dans le pool de constantes, et lorsque String b = "java"; est exécuté à nouveau, a == b est vrai
15.Les méthodes finales ne peuvent pas être remplacées et les classes finales ne peuvent pas être héritées.
Si la méthode private est utilisée, elle équivaut à final private.
Si une méthode modifiée avec final apparaît dans une sous-classe, elle est nouvellement définie par la sous-classe et n'a rien à voir avec la classe parent.
16. Classe immuable : Le Field de cette classe ne peut pas être modifié après la création. Java fournit huit classes wrapper de variables de base et les classes de chaînes sont toutes deux immuables.
17. Classes immuables qui mettent en cache les instances
public booléen égal (Objet obj)
{
si(ce == obj)
renvoie vrai ;
if(obj != null && obj.getClass() == CacheImmutale.class)
{
CacheImmutale ci = (CacheImmutale)obj;
return nom.equals(ci.getName());
}
renvoie faux ;
}
public int hashCode()
{
return nom.hashCode();
}
}
classe publique CacheImmuteTest
{
public static void main (String[] arguments)
{
CacheImmutale c1 = CacheImmutale.valueOf("Bonjour");
CacheImmutale c2 = CacheImmutale.valueOf("Bonjour");
System.out.println(c1 == c2);
}
}
Il existe également java.lang.Integer fourni par Java, qui utilise un mécanisme de mise en cache pour créer des nombres compris entre -128 et 127.
Entier in2 = Integer.valueOf(6);
Entier in3= Integer.valueOf(6);
in2 == in3 est vrai ;
18. Statique et abstraite ne peuvent pas modifier une méthode en même temps. Il n'existe pas de méthode abstraite de classe.
19. Une classe peut avoir une classe parent et implémenter plusieurs interfaces. Dans l'interface, Filed est public, statique et final, et la méthode est publique abstraite.
20. Lorsqu'une méthode d'une classe interne non statique accède à une variable, l'ordre de recherche est le suivant : d'abord dans la méthode dans la classe interne -> classe interne -> si elle n'est pas trouvée dans la classe externe, une erreur de compilation se produira.
classe publique DiscernVariable
{
private String prop = "Variable d'instance de classe externe";
cours privé InClass
{
private String prop = "Variable d'instance de classe interne";
informations publiques sur le vide()
{
String prop = "variable locale" ;
System.out.println("Valeur du champ de la classe externe : " + DiscernVariable.this.prop);
System.out.println("Valeur du champ de la classe interne : " + this.prop);
System.out.println("Valeur de la variable locale : " + prop);
}
}
test de vide public()
{
InClass dans = new InClass();
in.info();
}
public static void main (String[] arguments)
{
new DiscernVariable().test();
}
}
22. Accéder aux classes internes en dehors des classes externes
Accédez aux classes internes non statiques : outclass.Inclass varname = new outclass().new InClass();
Accédez aux classes internes statiques : outclass.Inclass varname = new outclass.Inclass();
classe Out
{
classeDans
{
publicIn()
{
System.out.println("Constructeur de classe interne non statique");
}
}
}
classe publiqueCreatInnerInstance
{
public static void main (String[] arguments)
{
Out.In in = new Out().new In();
/*
Le code ci-dessus peut être écrit séparément sous la forme :
Sortie.Entrée;
Sortie sortie = nouvelle sortie ();
in = out.new In();
*/
}
}
la classe SubClass étend Out.In
{
//Affiche le constructeur qui définit la sous-classe
Sous-classe publique (sortie)
{
//Affiche le constructeur appelant In via l'objet Out transféré
out.super();
}
}
classe StaticOut
{
classe statique StaticIn
{
public StaticIn()
{
System.out.println("Constructeur de classe interne statique");
}
}
}
classe publique CreatStaticInnerInstance
{
public static void main (String[] arguments)
{
StaticOut.StaticIn in = new StaticOut.StaticIn();
/*
Le code ci-dessus peut être écrit séparément sous la forme :
StaticOut.StaticIn dans ;
in = nouveau StaticOut.StaticIn();
*/
}
}
la classe SubClass étend StaticOut.StaticIn
{
//Pas besoin de créer une instance de classe interne
}