Articles of java 8

newInstance vs nouveau dans jdk-9 / jdk-8 et jmh

J’ai vu beaucoup de discussions ici qui comparent et essaient de répondre à la plus rapide: newInstance ou new operator . En regardant le code source, il semblerait que newInstance soit beaucoup plus lent , je veux dire qu’il fait autant de contrôles de sécurité et utilise la reflection. Et j’ai décidé de mesurer, d’abord […]

Lambda qui ne fait absolument rien

Je devais avoir une expression lambda de l’interface fonctionnelle Runnable qui ne faisait rien. J’ai eu une méthode private void doNothing(){ //Do nothing } puis utilisez this::doNothing . Mais j’ai trouvé un moyen encore plus court de le faire.

Pourquoi ne puis-je pas obtenir une durée en minutes ou en heures en java.time?

De la classe Duration du nouvel API de date JSR 310 ( package java.time ) disponible dans Java 8 et versions ultérieures, le javadoc dit: Cette classe modélise une quantité ou une quantité de temps en secondes et en nanosecondes. On peut y accéder en utilisant d’autres unités basées sur la durée, telles que les […]

Comment atsortingbuez-vous un lambda à une variable dans Java 8?

Il suffit de jouer avec les nouvelles fonctionnalités lambda et fonctionnelles de Java 8 et je ne sais pas trop comment faire. Par exemple, ce qui suit est valide: Map map = new HashMap(); map.put(“A”, 1); map.put(“B”, 2); map.put(“C”, 3); map.compute(“A”, (k, v) -> v == null ? 42 : v + 41)); mais ce […]

Appel de la méthode par défaut dans l’interface en cas de conflit avec une méthode privée

Considérez la hiérarchie sous la classe. class ClassA { private void hello() { System.out.println(“Hello from A”); } } interface Myinterface { default void hello() { System.out.println(“Hello from Interface”); } } class ClassB extends ClassA implements Myinterface { } public class Test { public static void main(Ssortingng[] args) { ClassB b = new ClassB(); b.hello(); } […]

Quel détail d’implémentation rend ce code si difficile?

Cette question ne concerne pas le fait bien connu et documenté que HashMap n’est pas HashMap threads, mais ses modes de défaillance spécifiques sur HotSpot et le code JDK. Je suis surpris de la facilité avec laquelle ce code échoue avec un NPE: public static void main(Ssortingng[] args) { Map m = new HashMap(0, 0.75f); […]

Combien de threads sont générés dans parallelStream dans Java 8?

Dans JDK8, combien de threads sont générés lorsque j’utilise parallelStream? Par exemple, dans le code: list.parallelStream().forEach(/** Do Something */); Si cette liste contient 100 000 éléments, combien de threads seront générés? En outre, chaque thread a-t-il le même nombre d’éléments à traiter ou est-il alloué de manière aléatoire?

Explication Java 8 Supplier & Consumer pour le profane

En tant que programmeur non Java apprenant Java, je suis en train de lire sur Consumer interfaces Supplier et Consumer pour le moment. Et je ne peux pas comprendre leur usage et leur signification. Quand et pourquoi utiliseriez-vous ces interfaces? Quelqu’un peut-il me donner un exemple simple de profane de cela… Je trouve que les […]

Quelle est la différence entre une référence lambda et une méthode au niveau de l’exécution?

J’ai rencontré un problème en utilisant une référence de méthode, mais pas avec lambdas. Ce code était le suivant: (Comparator & Serializable) SOME_COMPARATOR::compare ou, avec lambda, (Comparator & Serializable) (a,b) -> SOME_COMPARATOR.compare(a,b) Sémantiquement, c’est ssortingctement la même chose, mais en pratique, c’est différent car dans le premier cas, je reçois une exception dans l’une des […]

Pourquoi l’inférence de type Java 8 ne prend-elle pas en compte les exceptions générées par Lambdas dans la sélection de surcharge?

J’ai une question concernant l’inférence Java 8 concernant lambdas et leurs signatures d’exception associées. Si je définis une méthode foo: public static void foo(Supplier supplier) { //some logic … } alors j’obtiens la sémantique agréable et concise de pouvoir écrire foo(() -> getTheT()); dans la plupart des cas pour un T donné. Cependant, dans cet […]