1. Les fichiers Java sont compilés en fichiers de bytecode par JVM, c'est-à-dire des fichiers .class. Lorsque les fichiers de bytecode sont exécutés dans différents systèmes d'exploitation, le système d'exploitation convertit ensuite les fichiers de bytecode. dans des fichiers de bytecode. Les fichiers de code sont compilés en fichiers de code machine. Il s'agit de Java multiplateforme
2. Tout d'abord, précisons que le recyclage du GC de Java est entièrement automatique. Il n'existe pas d'API pertinente pour le recyclage manuel. Toutes les autorisations d'allocation de mémoire et de recyclage sont disponibles. la jvm et entre les mains du développeur. Il n'existe pas de moyen absolu de forcer le garbage collection, mais vous pouvez le faire comme ceci :
1) Pour les objets qui ne sont plus référencés, attribuez leurs références à null en temps opportun. manière. obj = null;
2) Si la mémoire est vraiment limitée, appelez la méthode System.gc () pour suggérer au ramasse-miettes de commencer à collecter les ordures et d'informer le GC de s'exécuter, mais la spécification du langage Java ne le fait pas garantir que le GC sera exécuté.
3. Valeur par défaut et plage de valeurs des types de base Java
Type entier octet (1 octet) court (2 octets) int (4 octets) long (8 octets)
Type de caractère char (2 octets)
Type à virgule flottante float (4 octets) double (8 octets)
4. Les valeurs du code ASCII des caractères communs sont les suivantes : la valeur du code ASCII d'un espace est 32 ; les valeurs du code ASCII des nombres 0 à 9 sont respectivement 48 à 57 la lettre majuscule « A » Les valeurs du code ASCII ; de "Z" sont respectivement de 65 à 90 ; les valeurs du code ASCII des lettres minuscules "a" à "z" sont respectivement de 97 à 122.
5. Les identifiants Java ont les règles de dénomination suivantes :
1) Il se compose de 26 lettres anglaises en majuscules et minuscules, de chiffres : 0-9, de symboles : _ $ ¥
2) L'identifiant doit commencer par les lettres, _, $.
3) Les identifiants ne peuvent pas être des mots-clés.
6, classes abstraites et interfaces
1) À propos des classes abstraites
Avant JDK 1.8, les droits d'accès par défaut des méthodes de classes abstraites étaient protégés
Lorsque JDK 1.8, l'autorisation d'accès par défaut des méthodes de classe abstraite devient celle par défaut
2) À propos de l'interface
Avant JDK 1.8, les méthodes de l'interface doivent être publiques
JDK Dans JDK 1.8, les méthodes de l'interface peuvent être publiques ou par défaut
Dans JDK 1.9, les méthodes de l'interface peuvent être privées
7. Boxing et déballage de la boîte
Le type de données de base est converti en classe d'empaquetage par boxing (tel que : int --> Integer).
La conversion d'une classe wrapper en un type de données de base est un déballage (comme : Integer --> int).
La classe wrapper est le type référence et le type de données de base est le type valeur.
Grâce aux opérations de boxing et de unboxing, un pont peut être construit entre les types valeur et les types référence. En d’autres termes, les types valeur et les types référence peuvent être facilement convertis les uns aux autres, le boxing et le unboxing peuvent examiner le système de manière uniforme et tout type de valeur peut finalement être traité comme un objet.
8, Sérialisation et désérialisation
Java n'instanciera pas les variables statiques et les variables modifiées de manière transitoire pendant la sérialisation, car statique représente les membres d'une classe et transitoire représente les données temporaires. est déclaré que ces deux types de données membres ne peuvent pas être sérialisés
9. Java a deux méthodes de transfert, le transfert de valeur et le transfert de référence. Les types de base et ceux créés de cette manière avec string str = "aaa"; sont tous passés par valeur. La création d'objets et les tableaux sont tous passés par référence, une attention particulière doit donc être portée lors du jugement des paramètres formels de la fonction.
10. Mécanisme de récupération de place Java
La récupération de place vise principalement à recycler la zone de tas, car la mémoire dans la zone de pile est libérée avec le thread. Le tas est divisé en trois zones : jeune génération, ancienne génération et génération permanente (zone méthode).
1) Jeune génération : Lorsqu'un objet est créé (nouveau), l'objet est généralement placé en Jeune (sauf pour certains objets qui occupent une mémoire relativement importante après un certain GC Mineur (recyclage de mémoire pour les jeunes). génération), il s'agit toujours des objets Live qui seront déplacés vers l'ancienne génération (certains détails de mouvement spécifiques sont omis).
2) Ancienne génération : Il s'agit de la jeune génération mentionnée ci-dessus déplacée et de quelques objets plus gros. Major GC (FullGC) est destiné à la collection de l'ancienne génération.
3) Génération permanente : elle stocke les constantes finales, les variables statiques et les pools de constantes.
11. Référence du package
Importer java.util.* ;
Peut accéder à toutes les classes du répertoire java/util, mais ne peut pas accéder au java/util sous-répertoire Toutes les classes sous
12. Les constructeurs ne peuvent pas être hérités et les constructeurs ne peuvent être appelés qu'explicitement ou implicitement. (Cela est vrai avec et sans ginseng)
13. Les fichiers sont divisés en fichiers texte et fichiers binaires. Les ordinateurs ne comprennent que le binaire, ce sont donc en fait différentes manières d'interpréter le binaire. Les fichiers texte sont des caractères affichés dans différents formats de codage, tels que Ascii, Unicode, etc. Les suffixes des fichiers texte dans la fenêtre incluent ".txt", ".log", les fichiers de code source de divers langages de programmation, etc. Les fichiers binaires sont documents texte. Vous ne pouvez pas lire les caractères tronqués lorsque vous les ouvrez. Tant que le fichier peut être ouvert avec du texte, il peut être considéré comme un fichier texte, mais le résultat affiché n'est pas celui que vous souhaitez. lu avec des applications spéciales, telles que ".png", ".bmp", etc., la plupart des fichiers de l'ordinateur sont toujours des fichiers binaires
14. try ne convient que pour gérer les exceptions d'exécution , try+catch convient à la gestion des exceptions d'exécution + des exceptions ordinaires. En d'autres termes, si vous utilisez uniquement try pour gérer les exceptions ordinaires sans utiliser catch, la compilation ne réussira pas, car le compilateur stipule de manière rigide que si des exceptions ordinaires sont interceptées, elles doivent être explicitement déclarées avec catch pour un traitement ultérieur. Il n'existe aucune disposition de ce type pour les exceptions d'exécution au moment de la compilation, donc catch peut être omis, et le compilateur le trouvera compréhensible si vous ajoutez catch.
15. Tuyaux
Pour les tuyaux, il existe les types suivants :
① Tuyaux ordinaires (TUYAU) : Il y a généralement deux restrictions, l'une est un seul travail , c'est-à-dire qu'il ne peut être transmis que dans un seul sens ; deuxièmement, le sang, qui est souvent utilisé entre les processus père-fils (ou entre les processus ayant des liens de sang).
②Stream pipe (s_pipe) : La première restriction mentionnée ci-dessus est supprimée et la transmission bidirectionnelle est obtenue.
③ Pipe nommée (name_pipe) : La deuxième restriction mentionnée ci-dessus est supprimée et la communication entre différents processus sans relation de sang est réalisée.
L'exigence est que la communication entre les différents serveurs doit être sous forme full-duplex, alors que le pipeline ne peut être qu'en semi-duplex. Bien qu'il puisse être bidirectionnel, il ne peut y avoir de transmission que dans un seul sens à la fois. time. La différence entre duplex et semi-duplex peut être comprise comme suit :
Tutoriel recommandé : Vidéo d'introduction à Java
Adresse originale : https://blog.csdn.net/qq_33945246/article/details/90040041
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!