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 […]
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.
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 […]
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 […]
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(); } […]
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); […]
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?
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 […]
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 […]
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 […]