24 méthodes de traversée de boucle Javascript, vous savez?

Cuggz 2021-09-15 09:44:56
thodes travers boucle javascript vous


Aujourd'hui, regardons les bases,Regarde ça.JavaScriptCes méthodes de traversée cyclique: JSMéthode de traversée.png

Un.、Méthode de traversée du tableau

1. forEach()

forEach Méthode utilisée pour appeler chaque élément du tableau,Et passer l'élément à la fonction de rappel.Chaque valeur du tableau appelle la fonction de rappel.Sa syntaxe est la suivante:

array.forEach(function(currentValue, index, arr), thisValue) Copier le Code

Le premier paramètre de la méthode est la fonction de rappel,C'est inévitable,Il a trois paramètres:

  • currentValue:Obligatoire.Élément actuel
  • index:Facultatif.Valeur index de l'élément courant.
  • arr:Facultatif.Objet Tableau auquel appartient l'élément courant
let arr = [1,2,3,4,5]
arr.forEach((item, index, arr) => {
console.log(index+":"+item)
})
Copier le Code

La méthode peut également avoir un deuxième paramètre,Utilisé pour lier la fonction de rappel internethisVariables( Si la fonction de rappel ne peut pas être une fonction fléchée , Parce que la fonction Arrow n'a pas this):

let arr = [1,2,3,4,5]
let arr1 = [9,8,7,6,5]
arr.forEach(function(item, index, arr){
console.log(this[index]) // 9 8 7 6 5
}, arr1)
Copier le Code

Attention!:

  • forEach La méthode ne change pas le tableau original ,Il n'y a pas non plus de valeur de retour;
  • forEachImpossible d'utiliser break,continue Sortir de la boucle,Utiliser return Heure,Effets et for Utilisation en boucle continue D'accord.;
  • forEach La méthode ne peut pas traverser l'objet , Uniquement pour la traversée du tableau .

2. map()

map() La méthode renvoie un nouveau tableau ,Les éléments du tableau sont les valeurs traitées par la fonction d'appel de l'élément original du tableau. Cette méthode traite les éléments dans l'ordre des éléments du tableau original .Sa syntaxe est la suivante:

array.map(function(currentValue,index,arr), thisValue) Copier le Code

Le premier paramètre de la méthode est la fonction de rappel,C'est inévitable,Il a trois paramètres:

  • currentValue:Il faut. Valeur de l'élément courant ;
  • index:Facultatif.Valeur index de l'élément courant;
  • arr:Facultatif. Objet Array auquel appartient l'élément courant .
let arr = [1, 2, 3];
arr.map(item => {
return item + 1;
})
// Résultats obtenus: [2, 3, 4]
Copier le Code

Le deuxième paramètre de la méthode est utilisé pour lier le thisVariables,Est optionnel:

let arr = ['a', 'b', 'c'];
[1, 2].map(function (e) {
return this[e];
}, arr)
// Résultats obtenus: ['b', 'c']
Copier le Code

La méthode peut également être appelée en chaîne :

let arr = [1, 2, 3];
arr.map(item => item + 1).map(item => item + 1)
// Résultats obtenus: [3, 4, 5]
Copier le Code

Attention!:

  • map La méthode ne détecte pas un tableau vide ;
  • map La méthode renvoie un nouveau tableau lorsqu'elle traverse le tableau ,Ne change pas le tableau original;
  • map La méthode a une valeur de retour,C'est bon.returnSors de là.,map Prise en charge dans la fonction de rappel pour returnValeur de retour;
  • map La méthode ne peut pas traverser l'objet , Uniquement pour la traversée du tableau .

3. for of

for...of L'instruction crée une boucle pour itérer sur des objets itérables .In ES6 Introduit dans for...of Cycle,Remplacer par for...in Et forEach() , Et prend en charge de nouveaux protocoles d'itération .Sa syntaxe est la suivante:

for (variable of iterable) {
statement
}
Copier le Code

La méthode a deux paramètres:

  • variable: La valeur de l'attribut pour chaque itération est attribuée à cette variable .
  • iterable: Un objet avec des propriétés énumérables et itérables .

Cette méthode permet d'obtenir la valeur clé de l'objet :

let arr = [
{id:1, value:'hello'},
{id:2, value:'world'},
{id:3, value:'JavaScript'}
]
for (let item in arr) {
console.log(item);
}
// Résultats obtenus:0 1 2 
Copier le Code

Attention!:

  • for of La méthode ne traverse que les propriétés de l'objet courant , Ne traverse pas les attributs de sa chaîne prototype ;
  • for of La méthode s'applique à la traversée Tableau/ Tableau des classes/String/map/set Et une collection d'objets itérateurs ;
  • for of La méthode ne supporte pas la traversée d'objets normaux , Parce qu'il n'a pas d'objet Itérateur . Si vous voulez traverser les propriétés d'un objet ,Ça marche for in Méthodes;
  • Peut être utilisébreak、continue、return Pour interrompre la boucle ;

4. filter()

filter() La méthode est utilisée pour filtrer le tableau , Les éléments qui remplissent les conditions sont retournés .Son argument est une fonction de rappel, Tous les éléments du tableau exécutent la fonction à tour de rôle ,Renvoie le résultat comme suit:true L'élément est retourné ,S'il n'y a pas d'éléments admissibles,Renvoie un tableau vide.Sa syntaxe est la suivante:

array.filter(function(currentValue,index,arr), thisValue) Copier le Code

Le premier paramètre de la méthode est la fonction de rappel,C'est inévitable,Il a trois paramètres:

  • currentValue:Il faut. Valeur de l'élément courant ;
  • index:Facultatif.Valeur index de l'élément courant;
  • arr:Facultatif. Objet Array auquel appartient l'élément courant .
const arr = [1, 2, 3, 4, 5]
arr.filter(item => item > 2)
// Résultats obtenus:[3, 4, 5]
Copier le Code

Encore une fois, Il a aussi un second paramètre , Utilisé pour lier à l'intérieur d'une fonction de paramètre thisVariables.

Peut être utiliséfilter() Méthode pour supprimer undefined、null、NANÉquivalent:

let arr = [1, undefined, 2, null, 3, false, '', 4, 0]
arr.filter(Boolean)
// Résultats obtenus:[1, 2, 3, 4]
Copier le Code

Attention!:

  • filter La méthode renvoie un nouveau tableau , Ne change pas le tableau original ;
  • filter La méthode ne détecte pas un tableau vide ;
  • filter La méthode ne s'applique qu'aux tableaux de détection .

5. some()、every()

some() La méthode traverse chaque élément du tableau , Si un élément est admissible ,Je revienstrue,Et les éléments restants ne seront plus détectés,Sinon, retournez àfalse. ​

every() La méthode traverse chaque élément du tableau , Seulement si tous les éléments sont admissibles ,Je reviens.true,Si un élément du tableau n'est pas satisfait,L'expression entière renvoie false ,Et les éléments restants ne seront plus détectés.Sa syntaxe est la suivante: ​

La syntaxe des deux est la suivante :

array.some(function(currentValue,index,arr),thisValue) array.every(function(currentValue,index,arr), thisValue) Copier le Code

Le premier paramètre des deux méthodes est la fonction de rappel ,C'est inévitable,Il a trois paramètres:

  • currentValue:Il faut. Valeur de l'élément courant ;
  • index:Facultatif.Valeur index de l'élément courant;
  • arr:Facultatif. Objet Array auquel appartient l'élément courant .
let arr = [1, 2, 3, 4, 5]
arr.some(item => item > 4)
// Résultats obtenus: true
let arr = [1, 2, 3, 4, 5]
arr.every(item => item > 0)
// Résultats obtenus: true
Copier le Code

Attention!:

  • Aucune des deux méthodes ne change le tableau original ,Renvoie une valeur booléenne;
  • Aucune des deux méthodes ne détecte un tableau vide ;
  • Les deux méthodes ne s'appliquent qu'aux tableaux de détection .

6. reduce()、reduceRight()

reduce() La méthode reçoit une fonction comme accumulateur , Chaque valeur du tableau (De gauche à droite) Commencer à réduire , Le calcul final est une valeur .reduce() Peut être une fonction d'ordre supérieur , Pour la fonction compose.Sa syntaxe est la suivante:

array.reduce(function(total, currentValue, currentIndex, arr), initialValue) Copier le Code

reduce La méthode exécute une fonction de rappel à tour de rôle pour chaque élément du tableau , Ne comprend pas les éléments du tableau qui ont été supprimés ou qui n'ont jamais été assignés , La fonction de rappel accepte quatre arguments :

  • total: La valeur retournée par le dernier rappel , Ou la valeur initiale fournie (initialValue);
  • currentValue: Élément actuellement traité ;
  • currentIndex: Index de l'élément courant ;
  • arr:Objet Tableau auquel appartient l'élément courant.

Le deuxième paramètre de la méthode est initialValue, Représente la valeur initiale passée à la fonction ( Comme premier appel callback Premier paramètre pour):

let arr = [1, 2, 3, 4]
let sum = arr.reduce((prev, cur, index, arr) => {
console.log(prev, cur, index);
return prev + cur;
})
console.log(arr, sum);
Copier le Code

Résultats obtenus:

1 2 1
3 3 2
6 4 3
[1, 2, 3, 4] 10
Copier le Code

Ajoutez une valeur initiale et essayez :

let arr = [1, 2, 3, 4]
let sum = arr.reduce((prev, cur, index, arr) => {
console.log(prev, cur, index);
return prev + cur;
}, 5)
console.log(arr, sum);
Copier le Code

Résultats obtenus:

5 1 0
6 2 1
8 3 2
11 4 3
[1, 2, 3, 4] 15
Copier le Code

On peut en conclure que: Si aucune valeur initiale n'est fournie initialValue,reduce De l'index 1 Où commence l'exécution callback Méthodes, Sauter le premier index . Si une valeur initiale est fournie initialValue,De l'index0Début de la mise en œuvre

reduceRight() Méthodes et reduce() Utilisation presque uniforme , C'est juste que la méthode est de traverser le tableau dans l'ordre inverse ,Etreduce() La méthode est traversée dans l'ordre positif .

let arr = [1, 2, 3, 4]
let sum = arr.reduceRight((prev, cur, index, arr) => {
console.log(prev, cur, index);
return prev + cur;
}, 5)
console.log(arr, sum);
Copier le Code

Résultats obtenus:

5 4 3
9 3 2
12 2 1
14 1 0
[1, 2, 3, 4] 15
Copier le Code

Attention!:

  • Aucune des deux méthodes ne change le tableau original ;
  • Deux méthodes si vous ajoutez une valeur initiale , Changerait le tableau original , Placez cette valeur initiale à la dernière place du tableau ;
  • Les deux méthodes n'exécutent pas de fonction de rappel pour un tableau vide .

7. find()、findIndex()

find() La méthode renvoie la valeur du premier élément d'un tableau jugé dans la fonction . Lorsque les éléments d'un tableau sont soumis à des conditions d'essai true Heure, find() Renvoie un élément admissible , Les valeurs suivantes n'appellent plus la fonction d'exécution . Si aucun élément admissible n'est retourné undefined. ​

findIndex() La méthode renvoie un tableau admissible d'une fonction de test passée Position du premier élément (Index). Lorsque l'élément d'un tableau est dans une condition de fonction, il retourne true Heure, findIndex() Renvoie l'emplacement de l'index de l'élément admissible , Les valeurs suivantes n'appellent plus la fonction d'exécution . Si aucun élément admissible n'est retourné -1. ​

La syntaxe des deux méthodes est la suivante :

array.find(function(currentValue, index, arr),thisValue) array.findIndex(function(currentValue, index, arr), thisValue) Copier le Code

Le premier paramètre des deux méthodes est la fonction de rappel ,C'est inévitable,Il a trois paramètres:

  • currentValue:Obligatoire.Élément actuel;
  • index:Facultatif. Index de l'élément courant ;
  • arr:Facultatif.Objet Tableau auquel appartient l'élément courant.
let arr = [1, 2, 3, 4, 5]
arr.find(item => item > 2)
// Résultats obtenus: 3
let arr = [1, 2, 3, 4, 5]
arr.findIndex(item => item > 2)
// Résultats obtenus: 2
Copier le Code

find()EtfindIndex() Les deux méthodes sont presque identiques , Les résultats sont différents :

  • find(): Renvoie la première valeur admissible ;
  • findIndex: Renvoie la valeur index de la valeur de la première condition de retour .

Attention!:

  • Deux méthodes pour un tableau vide , La fonction ne s'exécute pas ;
  • Deux méthodes non ne changent pas le tableau original .

8. keys()、values()、entries()

Les trois méthodes renvoient l'objet itératif d'un tableau , Le contenu de l'objet est différent :

  • keys() Renvoie la valeur Index du tableau ;
  • values() Renvoie l'élément du tableau ;
  • entries() Renvoie la paire de valeurs clés du tableau .

La syntaxe des trois méthodes est la suivante :

array.keys()
array.values()
array.entries()
Copier le Code

Aucune des trois méthodes n'a de paramètres :

let arr = ["Banana", "Orange", "Apple", "Mango"];
const iterator1 = arr.keys();
const iterator2 = arr.values()
const iterator3 = arr.entries()
for (let item of iterator1) {
console.log(item);
}
// Résultats obtenus: 0 1 2 3
for (let item of iterator2) {
console.log(item);
}
// Résultats obtenus: Banana Orange Apple Mango
for (let item of iterator3) {
console.log(item);
}
// Résultats obtenus:[0, 'Banana'] [1, 'Orange'] [2, 'Apple'] [3, 'Mango']
Copier le Code

Résumé:

Méthodes Modifier le tableau original Caractéristiques
forEach() Non Aucune valeur de retour
map() Non Avec valeur de retour, Appel enchaîné
for of Non for...of La traversée a Iterator Propriétés de l'objet de l'Itérateur , Renvoie les éléments du tableau 、Valeur de propriété de l'objet, On ne peut pas traverser un objObjet, Transformer un cycle asynchrone en cycle synchrone
filter() Non Filtrer le tableau , Renvoie un tableau contenant les éléments admissibles , Appel enchaîné
every()、some() Non some()Tant qu'il y en a untrue, Et il est revenu true;Etevery()Tant qu'il y en a unfalse, Et il est revenu false.
find()、findIndex() Non find() Renvoie la première valeur admissible ;findIndex() Renvoie la valeur index de la valeur de la première condition de retour
reduce()、reduceRight() Non reduce() Opération séquentielle positive sur le tableau ;reduceRight() Opération inverse sur un tableau
keys()、values()、entries() Non keys() Renvoie la valeur Index du tableau ;values() Renvoie un élément de tableau ;entries() Renvoie la paire de valeurs clés du tableau .

2.、 Méthode de traversée de l'objet

1. for in

for…in Utilisé principalement pour boucler les propriétés de l'objet . Chaque fois que le Code de la boucle est exécuté , Une opération est effectuée sur les propriétés de l'objet .Sa syntaxe est la suivante:

for (var in object) {
Bloc de code exécuté
}
Copier le Code

Deux de ces paramètres :

  • var:Il faut. La variable spécifiée peut être un élément de tableau , Peut également être une propriété de l'objet .
  • object:Il faut. Spécifie l'objet pour l'itération .
var obj = {a: 1, b: 2, c: 3};
for (var i in obj) {
console.log('Nom de la clé:', i);
console.log('Valeurs clés:', obj[i]);
}
Copier le Code

Résultats obtenus:

Nom de la clé: a
Valeurs clés: 1
Nom de la clé: b
Valeurs clés: 2
Nom de la clé: c
Valeurs clés: 3
Copier le Code

Attention!:

  • for in La méthode ne traverse pas seulement toutes les propriétés énumérables de l'objet courant , Il parcourt également les propriétés de sa chaîne prototype .

2. Object.keys()、Object.values()、Object.entries()

Ces trois méthodes sont utilisées pour traverser l'objet , Il renvoie un attribut énumérable par lui - même pour un objet donné ( Sans héritage et SymbolPropriétés)Un tableau composé de, L'ordre dans lequel les éléments du tableau sont disposés correspond à l'ordre dans lequel ils sont retournés lors d'une boucle normale traversant l'objet , Les valeurs retournées par ces trois éléments sont les suivantes :

  • Object.keys(): Renvoie un tableau contenant le nom de la clé de l'objet ;
  • Object.values(): Renvoie un tableau contenant les valeurs clés de l'objet ;
  • Object.entries(): Renvoie un tableau contenant le nom et la valeur de la clé de l'objet .
let obj = {
id: 1,
name: 'hello',
age: 18
};
console.log(Object.keys(obj)); // Résultats obtenus: ['id', 'name', 'age']
console.log(Object.values(obj)); // Résultats obtenus: [1, 'hello', 18]
console.log(Object.keys(obj)); // Résultats obtenus: [['id', 1], ['name', 'hello'], ['age', 18]
Copier le Code

Attention!

  • Object.keys() Les valeurs du tableau retourné par la méthode sont toutes des chaînes , Ce qui veut dire que ce n'est pas une chaîne key La valeur est convertie en chaîne .
  • Les valeurs des attributs dans le tableau de résultats sont toutes des objets eux - mêmes Propriétés énumérables, À l'exclusion des attributs hérités .

3. Object.getOwnPropertyNames()

Object.getOwnPropertyNames()Méthodes etObject.keys()Similaire, Accepter un objet comme paramètre ,Renvoie un tableau, Contient tous les noms de propriétés de l'objet lui - même . Mais ça peut revenir Attribut non énumérable .

let a = ['Hello', 'World'];
Object.keys(a) // ["0", "1"]
Object.getOwnPropertyNames(a) // ["0", "1", "length"]
Copier le Code

Les deux méthodes peuvent être utilisées pour calculer le nombre d'attributs dans un objet :

var obj = { 0: "a", 1: "b", 2: "c"};
Object.getOwnPropertyNames(obj) // ["0", "1", "2"]
Object.keys(obj).length // 3
Object.getOwnPropertyNames(obj).length // 3
Copier le Code

4. Object.getOwnPropertySymbols()

Object.getOwnPropertySymbols() La méthode renvoie l'objet lui - même Symbol Un tableau de propriétés , Ne pas inclure les propriétés de la chaîne :

let obj = {a: 1}
// Ajouter un objet non énumérable Symbol Propriétés
Object.defineProperties(obj, {
[Symbol('baz')]: {
value: 'Symbol baz',
enumerable: false
}
})
// Ajouter un objet énumérable Symbol Propriétés
obj[Symbol('foo')] = 'Symbol foo'
Object.getOwnPropertySymbols(obj).forEach((key) => {
console.log(obj[key])
})
// Résultats obtenus:Symbol baz Symbol foo
Copier le Code

5. Reflect.ownKeys()

Reflect.ownKeys() Renvoie un tableau,Contient toutes les propriétés de l'objet lui - même.EtObject.keys()Similaire,Object.keys() Retour à la propriété key, Mais à l'exclusion des attributs non énumérés ,EtReflect.ownKeys() Toutes les propriétés sont retournées key:

var obj = {
a: 1,
b: 2
}
Object.defineProperty(obj, 'method', {
value: function () {
alert("Non enumerable property")
},
enumerable: false
})
console.log(Object.keys(obj))
// ["a", "b"]
console.log(Reflect.ownKeys(obj))
// ["a", "b", "method"]
Copier le Code

Attention!:

  • Object.keys() : équivalent à retourner le tableau des propriétés de l'objet ;
  • Reflect.ownKeys() :équivalent à Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj).

Résumé:

Méthode objet Traverser les propriétés de base Traverser la chaîne prototype Traverser l'attribut non énumérable TraverséeSymbol
for in - Oui. - Oui. Non Non
Object.keys() - Oui. Non Non Non
Object.getOwnPropertyNames() - Oui. Non - Oui. Non
Object.getOwnPropertySymbols() Non Non - Oui. - Oui.
Reflect.ownKeys() - Oui. Non - Oui. - Oui.

Trois、 Autres méthodes de traversée

1. for

for La boucle devrait être le mode de circulation le plus courant , Il se compose de trois expressions , Déclarer les variables de boucle, respectivement 、 Déterminer les conditions du cycle 、 Mettre à jour les variables de boucle . Les trois expressions sont séparées par des points - virgules . Vous pouvez utiliser des variables temporaires pour mettre en cache la longueur du tableau , Évitez de Dupliquer la longueur du tableau , L'effet d'optimisation est plus évident lorsque le tableau est plus grand .

const arr = [1,2,3,4,5]
for(let i = 0, len = arr.length; i < len; i++ ){
console.log(arr[i])
}
Copier le Code

Au moment de l'exécution, Les conditions d'exécution seront jugées en premier ,Re - exécution.for La boucle peut être utilisée pour traverser le tableau ,String,Tableau des classes,DOMNoeuds, etc. Vous pouvez modifier le tableau original .

2. while

while Les conditions de fin de cycle peuvent être de différents types , Mais ça finit par devenir booléen , Les règles de conversion sont les suivantes .

  • Boolean:trueC'est vrai.,falseFaux.;
  • String: La chaîne vide est fausse , Toutes les chaînes non vides sont vraies ;
  • Number:0Faux.,Non0 Les chiffres sont vrais ;
  • null/Undefined/NaN: Tout est faux ;
  • Object: Tout est vrai. .
let num = 1;
while (num < 10){
console.log(num);
num ++;
}
Copier le Code

whileEtforC'est pareil, C'est le jugement d'abord ,Re - exécution.Tant que la condition spécifiée est true, La boucle peut exécuter le Code tout le temps .

3. do / while

Cette méthode est exécutée avant le jugement , Même si les conditions initiales ne sont pas remplies ,do/while Le cycle est également exécuté au moins une fois .

let num = 10;
do
{
console.log(num);
num--;
}
while(num >= 0);
console.log(num); //-1
Copier le Code

Non recommandédo / whilePour traverser le tableau.

4. for await of

for await...of La méthode est appelée Itérateur asynchrone , Cette méthode est principalement utilisée pour traverser des objets asynchrones .C'est...ES2018 Méthode introduite dans .

for await...of L'instruction crée une boucle itérative sur un objet itérable asynchrone ou synchrone ,Y compris: String,Array,Tableau des classes,Map, Set Et des objets itérables asynchrones ou synchrones personnalisés . Cette déclaration ne peut être faite qu'à async functionUtilisation interne:

function Gen (time) {
return new Promise((resolve,reject) => {
setTimeout(function () {
resolve(time)
},time)
})
}
async function test () {
let arr = [Gen(2000),Gen(100),Gen(3000)]
for await (let item of arr) {
console.log(Date.now(),item)
}
}
test()
Copier le Code

Résultats obtenus: image.png

版权声明
本文为[Cuggz]所创,转载请带上原文链接,感谢
https://javamana.com/2021/09/20210915093919796S.html

  1. The first starcoin & move hacksong source code analysis - P (a)
  2. Zhaijia 36 days Salt Fish turn into Tencent, Zookeeper Consistency level analysis,
  3. Traitement de l'interception des champs de demande communs de Spring Cloud, plus de 500 personnes interviewent Ali,
  4. About JavaScript modules
  5. Object oriented programming (2)
  6. Java日期时间API系列42-----一种高效的中文日期格式化和解析方法
  7. Java日期時間API系列42-----一種高效的中文日期格式化和解析方法
  8. 宅家36天鹹魚翻身入職騰訊,Zookeeper一致性級別分析,
  9. Java Date Time API Series 42 - - a efficient Chinese Date Format and Analysis Method
  10. 已成功拿下字节、腾讯、脉脉offer,7年老Java一次操蛋的面试经历,
  11. 小米Java社招面试,每次面试必问的二叉树的设计与编码,
  12. 小米Java校招面试,阿里、百度、美团、携程、蚂蚁面经分享,
  13. 小米Java校招面試,阿裏、百度、美團、攜程、螞蟻面經分享,
  14. Xiaomi Java School Recruitment interview, Ali, baidu, meituan, ctrip, ant Facebook Sharing,
  15. La conception et le codage de l'arbre binaire requis pour chaque entrevue d'embauche de la société Java millet;
  16. A remporté avec succès Byte, Tencent, Pulse offer, 7 ans Java une expérience d'entrevue de baise,
  17. 干货来袭,Java岗面试12家大厂成功跳槽,
  18. 常用Java框架面试题目,现在做Java开发有前途吗?
  19. 常用Java框架面試題目,現在做Java開發有前途嗎?
  20. Les questions d'entrevue couramment utilisées pour le cadre Java sont - elles prometteuses pour le développement Java?
  21. L'arrivée de marchandises sèches, l'entretien d'emploi Java 12 grandes usines ont réussi à changer d'emploi,
  22. Multiple postures for handling container time in k8s environment
  23. Echarts remove left Gap, Blank
  24. Hotspot Weekly | zoom $100 million, docker fees, $38 billion Data bricks
  25. JsonMappingException: No serializer found for class org.apache.ibatis.executor.loader.javassist.JavassistProxyFactory...
  26. Java. Security. Securerandom source code analysis Java. Security. EGD = file: / dev /. / urandom
  27. When using IntelliJ idea, jump directly and quickly from the mapper interface to mapper.xml
  28. When idea writes SQL in mybatis XML, the solution to the problems of table name, field and red reporting
  29. Spring cloud integrates Nacos
  30. 应届毕业生Java笔试题目,2021大厂Java社招最全面试题,
  31. Liver explosion! Take you to understand Hadoop serialization
  32. linux系列之:告诉他,他根本不懂kill
  33. java版gRPC实战之三:服务端流
  34. RabbitMQ核心知识总结!
  35. linux系列之:告诉他,他根本不懂kill
  36. java版gRPC实战之三:服务端流
  37. RabbitMQ核心知识总结!
  38. 10天拿到字节跳动Java岗位offer,学习Java开发的步骤
  39. 10天拿到字节跳动Java岗位offer,Java知识点思维导图
  40. Résumé des connaissances de base de rabbitmq!
  41. 10天拿到字節跳動Java崗比特offer,Java知識點思維導圖
  42. 10 jours pour obtenir un Byte Jump Java post offer, Java Knowledge point Mind Map
  43. 10 jours pour obtenir l'octet Jump Java post offer, apprendre les étapes du développement Java
  44. Java version of gppc Reality Three: server side stream
  45. Linux Series: Dites - lui qu'il ne connaît pas kill du tout
  46. "Data structure and algorithm" of front end -- binary search
  47. 2020-2021京东Java面试真题解析,如何才能通过一线互联网公司面试
  48. 13 SpringBoot整合RocketMQ实现过滤消息-根据SQL表达式过滤消息
  49. 12 SpringBoot整合RocketMQ实现过滤消息-根据TAG方式过滤消息
  50. 11 SpringBoot整合RocketMQ实现事务消息
  51. 11 springboot Consolidated rocketmq Implementation transaction message
  52. 12 springboot Consolidated rocketmq Implements Filtering messages - Filtering messages according to tag method
  53. 13 springboot Consolidated rocketmq Implementation Filtering messages - Filtering messages according to SQL expressions
  54. linux系列之:告诉他,他根本不懂kill
  55. (1)java Spring Cloud+Spring boot企业快速开发架构之微服务是什么?它的优缺点有哪些?
  56. Oracle 检查 DATE 列 RANGE 分区表已有分区的最大日期时间
  57. ConcurrentHashMap--原理
  58. 2020 - 2021 JD Java interview Real question Analysis, How can interview through First - Line Internet Company
  59. Concurrenthashmap - - Principes
  60. Oracle vérifie l'heure de date maximale d'une partition existante dans la colonne date