diff --git a/A-tricks-to-succeed.asc b/A-tricks-to-succeed.asc index 0b08e6a..170f743 100644 --- a/A-tricks-to-succeed.asc +++ b/A-tricks-to-succeed.asc @@ -59,7 +59,7 @@ class Duke { . O código compila e roda, imprimindo "Java6". . O código compila mas dá erro em execução. -Se você escolheu a opção 1, você errou... Esse exemplo tem outra pegadinha com o conceito de _shadowing_. Usa-se o mesmo nome de váriável mas com um escopo diferente. Inicialmente o tipo `int` engana sua reposta mas esse código não compila ao tentar atribuir um valor `int` à uma variável do tipo `String[]`. +Se você escolheu a opção 1, você errou... Esse exemplo tem outra pegadinha com o conceito de _shadowing_. Usa-se o mesmo nome de variável mas com um escopo diferente. Inicialmente o tipo `int` engana sua reposta mas esse código não compila ao tentar atribuir um valor `int` à uma variável do tipo `String[]`. - - - _Resposta: 2_ diff --git a/book/03-localization/sections/02-resource-bundle.asc b/book/03-localization/sections/02-resource-bundle.asc index aa17b25..251d5e3 100644 --- a/book/03-localization/sections/02-resource-bundle.asc +++ b/book/03-localization/sections/02-resource-bundle.asc @@ -118,7 +118,7 @@ include::{resource-package}/Text_es_ES.properties[] include::{resource-package}/Text_pt.properties[] ---- + -Neste exemplo, não é possível ver, mas existem 3 espaços no final da linha. O resultado é o mesmo que escrever `paper=papel{sp}{sp}{sp}`. +Neste exemplo, não é possível ver, mas existem 3 espaços no final da linha. O resultado é o mesmo que escrever `paper=papel\{sp}\{sp}\{sp}`. . Em arquivos `.properties`, se você terminar a linha com uma contrabarra, pode quebrar a linha. + @@ -304,4 +304,4 @@ Boyarsky, Jeanne; Selikoff, Scott. OCP: Oracle Certified Professional Java SE 8 * https://docs.oracle.com/javase/tutorial/i18n/resbundle/concept.html[About the ResourceBundle Class.] Java Documentation. -**** \ No newline at end of file +**** diff --git a/book/03-localization/sections/03-date-time.asc b/book/03-localization/sections/03-date-time.asc index d6f9b19..ad0118e 100644 --- a/book/03-localization/sections/03-date-time.asc +++ b/book/03-localization/sections/03-date-time.asc @@ -106,7 +106,6 @@ include::{section-java-package}/datetime/localdate/LocalDate_Manipulate.java[tag +2 semanas: 2019-06-03 +2 meses: 2019-07-20 +2 anos: 2021-05-20 -+2 anos: 2021-05-20 +2 décadas: 2039-05-20 -2 dias: 2019-05-18 -2 semanas: 2019-05-06 @@ -399,7 +398,6 @@ include::{section-java-package}/datetime/localdatetime/LocalDateTime_Manipulate. +2 semanas: 2019-06-03T09:20:12 +2 meses: 2019-07-20T09:20:12 +2 anos: 2021-05-20T09:20:12 -+2 anos: 2021-05-20T09:20:12 +2 décadas: 2039-05-20T09:20:12 -2 dias: 2019-05-18T09:20:12 -2 semanas: 2019-05-06T09:20:12 @@ -545,7 +543,7 @@ include::{section-java-package}/datetime/instant/Instant_Immutability.java[tag=c 2001-09-09T01:47:40Z ---- -. Você pode transformar um `LocalDateTime` em um `Instant`, e vice-versa, caso informe um fuso horário, . +. Você pode transformar um `LocalDateTime` em um `Instant`, e vice-versa, caso informe um fuso horário. + [source,java,indent=0] .{java-package}/datetime/instant/Instant_Convert.java @@ -840,4 +838,4 @@ Boyarsky, Jeanne; Selikoff, Scott. OCP: Oracle Certified Professional Java SE 8 * https://stackoverflow.com/questions/32437550/whats-the-difference-between-instant-and-localdatetime/32443004[What's the difference between Instant and LocalDateTime?] -**** \ No newline at end of file +**** diff --git a/book/03-localization/sections/05-time-zones.asc b/book/03-localization/sections/05-time-zones.asc index 0fa1bbe..1207301 100644 --- a/book/03-localization/sections/05-time-zones.asc +++ b/book/03-localization/sections/05-time-zones.asc @@ -105,7 +105,6 @@ include::{section-java-package}/timezones/ZonedDateTime_Manipulate.java[tag=code +2 semanas: 2019-06-03T09:20:12.000001-03:00[America/Sao_Paulo] +2 meses: 2019-07-20T09:20:12.000001-03:00[America/Sao_Paulo] +2 anos: 2021-05-20T09:20:12.000001-03:00[America/Sao_Paulo] -+2 anos: 2021-05-20T09:20:12.000001-03:00[America/Sao_Paulo] +2 décadas: 2039-05-20T09:20:12.000001-03:00[America/Sao_Paulo] -2 dias: 2019-05-18T09:20:12.000001-03:00[America/Sao_Paulo] -2 semanas: 2019-05-06T09:20:12.000001-03:00[America/Sao_Paulo] @@ -193,7 +192,7 @@ America/Guatemala ... ---- + -A lista do console irá apresentar todos os `ZoneId` disponíveis. O exemplo acima contempla apeanas parte dos `ZoneId`. +A lista do console irá apresentar todos os `ZoneId` disponíveis. O exemplo acima contempla apenas parte dos `ZoneId`. + Além disso, existem muitos `ZoneId` duplicados, pois representam o mesmo fuso horário, como por exemplo `America/Sao_Paulo` e `Brazil/East`. diff --git a/book/04-lambda/sections/04-method-reference.asc b/book/04-lambda/sections/04-method-reference.asc index 47c979a..4ab6858 100644 --- a/book/04-lambda/sections/04-method-reference.asc +++ b/book/04-lambda/sections/04-method-reference.asc @@ -11,7 +11,7 @@ Develop code that uses a method reference, including refactoring a lambda expres Desenvolver código que utiliza uma referência a método, incluindo a refatoração de uma expressão lambda para uma referência a método. -------------------------------------------------- -A sintaxe de referência a um método é uma novidade do Java 8. Com ela é possível fazer referência a métodos específicos, em quatro ocasições diferentes: +A sintaxe de referência a um método é uma novidade do Java 8. Com ela é possível fazer referência a métodos específicos, em quatro ocasiões diferentes: * Referências a métodos estáticos -> `String::valueOf` * Referências a métodos de um objeto -> `instanciaDeString::isEmpty` @@ -170,4 +170,4 @@ Boyarsky, Jeanne; Selikoff, Scott. OCP: Oracle Certified Professional Java SE 8 * https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html[Method References.] The Java™ Tutorials. -**** \ No newline at end of file +**** diff --git a/book/05-java-streams/sections/01-using-streams.asc b/book/05-java-streams/sections/01-using-streams.asc index 82d8d36..7e84daf 100644 --- a/book/05-java-streams/sections/01-using-streams.asc +++ b/book/05-java-streams/sections/01-using-streams.asc @@ -17,7 +17,7 @@ A partir dos exemplos a seguir, essa explicação ficará mais clara. ==== Criando um _Stream_ -Geralmente, um _Stream_ é criado a partir de um conjunto de dados, como uma lista ou outro tipo de coleção. O objeteivo da certificação deixa explícito que é necessário conhecer os métodos `Arrays.stream()` e `IntStream.range()`. Mas, além dessas, serão apresentadas também algumas outras formas comuns de criar um _Stream_. +Geralmente, um _Stream_ é criado a partir de um conjunto de dados, como uma lista ou outro tipo de coleção. O objetivo da certificação deixa explícito que é necessário conhecer os métodos `Arrays.stream()` e `IntStream.range()`. Mas, além dessas, serão apresentadas também algumas outras formas comuns de criar um _Stream_. . É possível criar um Stream a partir de um `Array` utilizando o método `Arrays.stream()`. + @@ -777,4 +777,4 @@ Boyarsky, Jeanne; Selikoff, Scott. OCP: Oracle Certified Professional Java SE 8 * https://docs.oracle.com/javase/8/docs/api/?java/util/stream/Stream.html[Interface Stream.] Java Plataform SE 8. -**** \ No newline at end of file +**** diff --git a/book/06-concurrency/sections/01-concurrent-package.asc b/book/06-concurrency/sections/01-concurrent-package.asc index 8a14150..20a7770 100644 --- a/book/06-concurrency/sections/01-concurrent-package.asc +++ b/book/06-concurrency/sections/01-concurrent-package.asc @@ -14,7 +14,7 @@ O pacote `java.util.concurrent` inclui inúmeras classes para serem utilizadas e Muitas das classes do pacote concurrent são apenas versões das coleções comuns, porém com blocos __syncronized__, garantindo que múltiplas _threads_ poderão acessá-las ao mesmo tempo mantendo sua integridade. As classes __ConcurrentHashMap__, _ConcurrentLinkedQueue_ e _ConcurrentLinkedDeque_ são exemplos disso. Por isso é importante conhecer e lembrar das coleções comuns do Java 6. -Todas as seções deste capítulo podem conter exemplos maiores do que os que foram apresentados até agora, principalmente quando for necessário a criação de mútiplas __Threads__. É importante dedicar um tempo maior para entender cada um desses exemplos. +Todas as seções deste capítulo podem conter exemplos maiores do que os que foram apresentados até agora, principalmente quando for necessário a criação de múltiplas __Threads__. É importante dedicar um tempo maior para entender cada um desses exemplos. . É possível criar uma *Fila* que lança uma exceção após um tempo predefinido utilizando a classe ``LinkedBlockingQueue``. + @@ -120,6 +120,7 @@ Thread-2: Terceira Parte ---- +.Referências **** * Using Concurrent Collections @@ -134,4 +135,4 @@ Boyarsky, Jeanne; Selikoff, Scott. OCP: Oracle Certified Professional Java SE 8 * https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/package-summary.html[Package java.util.concurrent.] Java Plataform SE 8. -**** \ No newline at end of file +**** diff --git a/book/06-concurrency/sections/02-locks.asc b/book/06-concurrency/sections/02-locks.asc index c2d0439..a6201c7 100644 --- a/book/06-concurrency/sections/02-locks.asc +++ b/book/06-concurrency/sections/02-locks.asc @@ -160,6 +160,7 @@ Thread-0: Conseguiu o Lock de leitura + Perceba que neste exemplo o _lock_ de escrita está sendo obtido *antes* do de leitura, de tal forma que apenas a primeira _thread_ que foi executada conseguiu obter os dois __locks__. +.Referências **** * Applying Locks @@ -170,4 +171,4 @@ Boyarsky, Jeanne; Selikoff, Scott. OCP: Oracle Certified Professional Java SE 8 * https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/package-summary.html[Package java.util.concurrent.locks.] Java Plataform SE 8. -**** \ No newline at end of file +**** diff --git a/book/06-concurrency/sections/03-execute-tasks.asc b/book/06-concurrency/sections/03-execute-tasks.asc index cafae44..5078afe 100644 --- a/book/06-concurrency/sections/03-execute-tasks.asc +++ b/book/06-concurrency/sections/03-execute-tasks.asc @@ -131,7 +131,7 @@ Retorno da tarefa: String que será retornada + Nesse caso a instância de `Future` representa o valor retornado pela tarefa, uma ``String``. + -É necessário o bloco `catch` para capturar as exeções que podem ser lançadas pelo método `get` da classe `Future`. +É necessário o bloco `catch` para capturar as exceções que podem ser lançadas pelo método `get` da classe `Future`. . É possível passar uma lista de tarefas para serem executadas utilizando o método ``invokeAll``. + @@ -167,7 +167,7 @@ As outras tarefas são interrompidas ou, como neste caso só temos uma __thread_ + Em um exemplo com inúmeras __threads__, é possível que qualquer uma das 3 tarefas finalize primeiro e interrompa as outras duas. -. `Runnable` não possui retorno nem pode lançar exceção checada, enquanto `Callable` possui retorno e pode lançar execeção checada. É importante saber diferenciar qual versão do método `submit` está sendo chamado. +. `Runnable` não possui retorno nem pode lançar exceção checada, enquanto `Callable` possui retorno e pode lançar exceção checada. É importante saber diferenciar qual versão do método `submit` está sendo chamado. + [source,java,indent=0] .{java-package}/executetasks/Tasks_RunnableCallable.java @@ -353,6 +353,7 @@ Execução 5: pool-1-thread-2 - 16:33:39.838 + Duas _threads_ e _delay_ de 3 segundos em todos os agendamentos. +.Referências **** * Creating Threads with the ExecutorService @@ -365,4 +366,4 @@ Boyarsky, Jeanne; Selikoff, Scott. OCP: Oracle Certified Professional Java SE 8 * hhttps://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html[Interface ExecutorService.] Java Plataform SE 7. -**** \ No newline at end of file +**** diff --git a/book/06-concurrency/sections/04-fork-join.asc b/book/06-concurrency/sections/04-fork-join.asc index e0b0672..5fe0eb8 100644 --- a/book/06-concurrency/sections/04-fork-join.asc +++ b/book/06-concurrency/sections/04-fork-join.asc @@ -73,7 +73,7 @@ Resultado da execução: 26 + Perceba também que o processamento da String retorna quantos caracteres foram impressos, e por isso foi utilizada a classe `RecursiveTask`. - +.Referências **** * Managing Concurrent Processes @@ -84,4 +84,4 @@ Boyarsky, Jeanne; Selikoff, Scott. OCP: Oracle Certified Professional Java SE 8 * https://docs.oracle.com/javase/tutorial/essential/concurrency/forkjoin.html[Fork/Join.] The Java™ Tutorials. -**** \ No newline at end of file +**** diff --git a/book/07-file-io/sections/01-paths.asc b/book/07-file-io/sections/01-paths.asc index 2ce3a2f..2edcc20 100644 --- a/book/07-file-io/sections/01-paths.asc +++ b/book/07-file-io/sections/01-paths.asc @@ -235,7 +235,7 @@ java.lang.IllegalArgumentException: 'other' is different type of Path at org.j6toj8.fileio.paths.Paths_Relativize.main(Paths_Relativize.java:40) ---- + -Todas essas combinações podem aparecere no exame, então entenda bem como cada uma delas se comporta. Lembre-se principalmente de que não é possível derivar um `Path` absoluto de um relativo, e vice-versa. +Todas essas combinações podem aparecer no exame, então entenda bem como cada uma delas se comporta. Lembre-se principalmente de que não é possível derivar um `Path` absoluto de um relativo, e vice-versa. . É possível converter um `Path` sintético, que não aponta de fato para um arquivo no sistema de arquivos, em um `Path` real, que aponta para um arquivo ou diretório que existe no sistema de arquivos. + @@ -260,6 +260,7 @@ java.nio.file.NoSuchFileException: /home/rinaldo/arquivoQueNaoExiste.txt + Perceba que é lançada exceção caso o arquivo realmente não exista no sistema de arquivos. +.Referências **** * Introducing NIO.2 @@ -272,4 +273,4 @@ Boyarsky, Jeanne; Selikoff, Scott. OCP: Oracle Certified Professional Java SE 8 * https://docs.oracle.com/javase/tutorial/essential/io/pathOps.html[Path Operations.] The Java™ Tutorials. -**** \ No newline at end of file +**** diff --git a/book/07-file-io/sections/02-files.asc b/book/07-file-io/sections/02-files.asc index c1b9317..8efe21c 100644 --- a/book/07-file-io/sections/02-files.asc +++ b/book/07-file-io/sections/02-files.asc @@ -60,7 +60,7 @@ Path 3 e Path 4 são iguais? true Path 1 e Path 4 são iguais? true ---- + -Perceba que nesse exemplo todos os `Path` são iguais, pois apontam para o mesmo arquivo. Ou seja, o método realmetne verifica se o arquivo no sistema de arquivos é o mesmo, indepenente da forma como o diretório está sendo representado no `Path`. Isso funcionará inclusive para links simbólicos que apontam para o mesmo arquivo. +Perceba que nesse exemplo todos os `Path` são iguais, pois apontam para o mesmo arquivo. Ou seja, o método realmente verifica se o arquivo no sistema de arquivos é o mesmo, independente da forma como o diretório está sendo representado no `Path`. Isso funcionará inclusive para links simbólicos que apontam para o mesmo arquivo. . É possível criar arquivos utilizando a classe `Files`. + @@ -353,6 +353,7 @@ Data de Criação alterada: 2019-08-14T19:24:32.995Z + Perceba que a partir da classe `BasicFileAttributeView` também é possível ler os atributos do arquivo chamando o método `readAttributes`. +.Referências **** * Introducing NIO.2 @@ -365,4 +366,4 @@ Boyarsky, Jeanne; Selikoff, Scott. OCP: Oracle Certified Professional Java SE 8 * https://docs.oracle.com/javase/tutorial/essential/io/pathOps.html[Path Operations.] The Java™ Tutorials. -**** \ No newline at end of file +**** diff --git a/book/07-file-io/sections/03-recursive-access.asc b/book/07-file-io/sections/03-recursive-access.asc index d9644f6..2b485cd 100644 --- a/book/07-file-io/sections/03-recursive-access.asc +++ b/book/07-file-io/sections/03-recursive-access.asc @@ -179,6 +179,7 @@ Arquivo visitado: /home/rinaldo/arquivos/subpasta1/arquivo13.txt Arquivo visitado: /home/rinaldo/arquivos/arquivo2.txt ---- +.Referências **** * Working with Directories @@ -195,4 +196,4 @@ Boyarsky, Jeanne; Selikoff, Scott. OCP: Oracle Certified Professional Java SE 8 * https://docs.oracle.com/javase/tutorial/essential/io/pathOps.html[Path Operations.] The Java™ Tutorials. -**** \ No newline at end of file +**** diff --git a/book/07-file-io/sections/04-file-improvements.asc b/book/07-file-io/sections/04-file-improvements.asc index ab3dbaa..1810f41 100644 --- a/book/07-file-io/sections/04-file-improvements.asc +++ b/book/07-file-io/sections/04-file-improvements.asc @@ -152,7 +152,7 @@ Conteúdo do arquivo: 5 ---- - +.Referências **** * Presenting the New Stream Methods @@ -163,4 +163,4 @@ Boyarsky, Jeanne; Selikoff, Scott. OCP: Oracle Certified Professional Java SE 8 * https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html[Class Files.] Java Plataform SE 7. -**** \ No newline at end of file +**** diff --git a/book/07-file-io/sections/05-watch-service.asc b/book/07-file-io/sections/05-watch-service.asc index f7aa76f..d1b1125 100644 --- a/book/07-file-io/sections/05-watch-service.asc +++ b/book/07-file-io/sections/05-watch-service.asc @@ -121,6 +121,7 @@ Perceba que o primeiro `poll` retorna imediatamente, mesmo que nenhum evento ten + Nos cenários de monitoração, o ideal é utilizar o `take`, caso contrário seria necessário invocar o `poll` inúmeras vezes, enquanto o `take` apenas aguarda indefinidamente até que haja um evento. +.Referências **** * Monitoring a Directory for Changes @@ -133,4 +134,4 @@ Boyarsky, Jeanne; Selikoff, Scott. OCP: Oracle Certified Professional Java SE 8 * https://docs.oracle.com/javase/tutorial/essential/io/notification.html[Watching a Directory for Changes.] The Java™ Tutorials. -**** \ No newline at end of file +**** diff --git a/book/08-java-collections/sections/01-diamond.asc b/book/08-java-collections/sections/01-diamond.asc index 0e08315..7c54661 100644 --- a/book/08-java-collections/sections/01-diamond.asc +++ b/book/08-java-collections/sections/01-diamond.asc @@ -18,6 +18,7 @@ O Diamond Operator (ou Operador Diamante) foi criado no Java 7 para remover cód include::{section-java-package}/diamond/Collections_Diamond.java[tag=code] ---- +.Referências **** * Using the Diamond Operator @@ -26,4 +27,4 @@ Boyarsky, Jeanne; Selikoff, Scott. OCP: Oracle Certified Professional Java SE 8 * https://www.baeldung.com/java-diamond-operator[Guide to the Diamond Operator in Java.] -**** \ No newline at end of file +**** diff --git a/book/08-java-collections/sections/02-collections-lambda.asc b/book/08-java-collections/sections/02-collections-lambda.asc index 71dfbb7..c6c9c76 100644 --- a/book/08-java-collections/sections/02-collections-lambda.asc +++ b/book/08-java-collections/sections/02-collections-lambda.asc @@ -79,6 +79,7 @@ include::{section-java-package}/lambda/CollectionsLambda_Combined.java[tag=code] 54 ---- +.Referências **** * Using Streams @@ -87,4 +88,4 @@ Boyarsky, Jeanne; Selikoff, Scott. OCP: Oracle Certified Professional Java SE 8 * https://www.baeldung.com/java-8-streams[The Java 8 Stream API Tutorial.] -**** \ No newline at end of file +**** diff --git a/book/08-java-collections/sections/03-data-search.asc b/book/08-java-collections/sections/03-data-search.asc index 081c6d4..dd59515 100644 --- a/book/08-java-collections/sections/03-data-search.asc +++ b/book/08-java-collections/sections/03-data-search.asc @@ -41,6 +41,7 @@ allMatch: false noneMatch: false ---- +.Referências **** * Using Streams @@ -49,4 +50,4 @@ Boyarsky, Jeanne; Selikoff, Scott. OCP: Oracle Certified Professional Java SE 8 * https://www.baeldung.com/java-8-streams[The Java 8 Stream API Tutorial.] -**** \ No newline at end of file +**** diff --git a/book/08-java-collections/sections/04-calculations.asc b/book/08-java-collections/sections/04-calculations.asc index 3c4d320..9b804b2 100644 --- a/book/08-java-collections/sections/04-calculations.asc +++ b/book/08-java-collections/sections/04-calculations.asc @@ -82,6 +82,7 @@ include::{section-java-package}/calculations/Collections_PartitioningBy.java[tag Mapa de pares e ímpares: {false=[1, 3, 5, 7, 9], true=[2, 4, 6, 8]} ---- +.Referências **** * Using Streams @@ -90,4 +91,4 @@ Boyarsky, Jeanne; Selikoff, Scott. OCP: Oracle Certified Professional Java SE 8 * https://www.baeldung.com/java-8-streams[The Java 8 Stream API Tutorial.] -**** \ No newline at end of file +**** diff --git a/book/08-java-collections/sections/05-collection-improvements.asc b/book/08-java-collections/sections/05-collection-improvements.asc index b780203..f27d475 100644 --- a/book/08-java-collections/sections/05-collection-improvements.asc +++ b/book/08-java-collections/sections/05-collection-improvements.asc @@ -72,6 +72,7 @@ Map antes do computeIfPresent: {A=65, B=66} Map depois do computeIfPresent: {A=4225, B=4356} ---- +.Referências **** * Using Streams @@ -80,4 +81,4 @@ Boyarsky, Jeanne; Selikoff, Scott. OCP: Oracle Certified Professional Java SE 8 * https://www.baeldung.com/java-8-streams[The Java 8 Stream API Tutorial.] -**** \ No newline at end of file +**** diff --git a/book/08-java-collections/sections/06-merge-map.asc b/book/08-java-collections/sections/06-merge-map.asc index 18f89ed..164311e 100644 --- a/book/08-java-collections/sections/06-merge-map.asc +++ b/book/08-java-collections/sections/06-merge-map.asc @@ -76,6 +76,7 @@ l + Perceba que uma transformação que resulta em outro Stream é percorrida como se fosse o próprio Stream original. +.Referências **** * Additions in Java 8 @@ -90,4 +91,4 @@ Boyarsky, Jeanne; Selikoff, Scott. OCP: Oracle Certified Professional Java SE 8 * https://www.baeldung.com/java-merge-maps[Merging Two Maps with Java 8.] -**** \ No newline at end of file +**** diff --git a/src/org/j6toj8/concurrency/forkjoin/ForkJoin_RecursiveTask.java b/src/org/j6toj8/concurrency/forkjoin/ForkJoin_RecursiveTask.java index b48648d..56caa32 100644 --- a/src/org/j6toj8/concurrency/forkjoin/ForkJoin_RecursiveTask.java +++ b/src/org/j6toj8/concurrency/forkjoin/ForkJoin_RecursiveTask.java @@ -4,7 +4,6 @@ import java.util.List; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.ForkJoinTask; -import java.util.concurrent.RecursiveAction; import java.util.concurrent.RecursiveTask; public class ForkJoin_RecursiveTask { diff --git a/src/org/j6toj8/fileio/files/Files_DeletePath.java b/src/org/j6toj8/fileio/files/Files_DeletePath.java index bd5288e..c2f67be 100644 --- a/src/org/j6toj8/fileio/files/Files_DeletePath.java +++ b/src/org/j6toj8/fileio/files/Files_DeletePath.java @@ -25,10 +25,10 @@ public static void main(String[] args) { Files.createFile(path); System.out.println("Path existe? " + Files.exists(path)); - Files.delete(path); // tenta apagadar o Path e lança exceção se ele não existir + Files.delete(path); // tenta apagar o Path e lança exceção se ele não existir System.out.println("Path existe? " + Files.exists(path)); - Files.deleteIfExists(path); // tenta apagadar o Path e não faz nada se ele não existir + Files.deleteIfExists(path); // tenta apagar o Path e não faz nada se ele não existir System.out.println("Path existe? " + Files.exists(path)); } catch (IOException e) { e.printStackTrace(); diff --git a/src/org/j6toj8/lambda/functionalinterfaces/FunctionalInterfaces_Implement.java b/src/org/j6toj8/lambda/functionalinterfaces/FunctionalInterfaces_Implement.java index 7e27e7e..7ca5c32 100644 --- a/src/org/j6toj8/lambda/functionalinterfaces/FunctionalInterfaces_Implement.java +++ b/src/org/j6toj8/lambda/functionalinterfaces/FunctionalInterfaces_Implement.java @@ -10,7 +10,7 @@ interface Executavel { // interface funcional class Pessoa implements Executavel { // COMPILA! - // interfaces funcionais, como Corredor, não foram feitas para serem implementadas dessa forma + // interfaces funcionais, como Executavel, não foram feitas para serem implementadas dessa forma // porém é possível e o código compila normalmente @Override public String execute() { diff --git a/src/org/j6toj8/lambda/lambdaexpression/LambdaExpression_VarType.java b/src/org/j6toj8/lambda/lambdaexpression/LambdaExpression_VarType.java index 07f6dd3..a6b85fb 100644 --- a/src/org/j6toj8/lambda/lambdaexpression/LambdaExpression_VarType.java +++ b/src/org/j6toj8/lambda/lambdaexpression/LambdaExpression_VarType.java @@ -1,16 +1,16 @@ package org.j6toj8.lambda.lambdaexpression; -import java.util.function.UnaryOperator; +import java.util.function.BinaryOperator; public class LambdaExpression_VarType { public static void main(String[] args) { // tag::code[] // NÃO COMPILA - caso o tipo de um dos parâmetros for informado, é necessário informar de todos eles - UnaryOperator elevarAoX = (Double y, x) -> Math.pow(y, x); + BinaryOperator elevarAoX = (Double y, x) -> Math.pow(y, x); // COMPILA - todos os parâmetros com tipos informados - UnaryOperator elevarAoX2 = (Double y, Double x) -> Math.pow(y, x); + BinaryOperator elevarAoX2 = (Double y, Double x) -> Math.pow(y, x); // end::code[] } } diff --git a/src/org/j6toj8/languageenhancements/stringinswitch/StringInSwitch_ConstantOnly.java b/src/org/j6toj8/languageenhancements/stringinswitch/StringInSwitch_ConstantOnly.java index bd43487..80980d4 100644 --- a/src/org/j6toj8/languageenhancements/stringinswitch/StringInSwitch_ConstantOnly.java +++ b/src/org/j6toj8/languageenhancements/stringinswitch/StringInSwitch_ConstantOnly.java @@ -24,10 +24,10 @@ public static void getNomeMes(final String mai) { System.out.println("Março"); break; case abr: // NÃO COMPILA - abr é uma variável comum, pode mudar em tempo de execução - System.out.println("Março"); + System.out.println("Abril"); break; case mai: // NÃO COMPILA - mai é final, mas não é constante, pode mudar em tempo de execução - System.out.println("Março"); + System.out.println("Maio"); break; } } diff --git a/src/org/j6toj8/localization/datetime/localdate/LocalDate_Manipulate.java b/src/org/j6toj8/localization/datetime/localdate/LocalDate_Manipulate.java index 804a37c..102bb27 100644 --- a/src/org/j6toj8/localization/datetime/localdate/LocalDate_Manipulate.java +++ b/src/org/j6toj8/localization/datetime/localdate/LocalDate_Manipulate.java @@ -14,7 +14,6 @@ public static void main(String[] args) { System.out.println("+2 semanas: " + localDate.plusWeeks(2)); System.out.println("+2 meses: " + localDate.plusMonths(2)); System.out.println("+2 anos: " + localDate.plusYears(2)); - System.out.println("+2 anos: " + localDate.plusYears(2)); System.out.println("+2 décadas: " + localDate.plus(2, ChronoUnit.DECADES)); System.out.println("-2 dias: " + localDate.minusDays(2)); System.out.println("-2 semanas: " + localDate.minusWeeks(2)); diff --git a/src/org/j6toj8/localization/datetime/localdatetime/LocalDateTime_Manipulate.java b/src/org/j6toj8/localization/datetime/localdatetime/LocalDateTime_Manipulate.java index 170c13e..b73fbdb 100644 --- a/src/org/j6toj8/localization/datetime/localdatetime/LocalDateTime_Manipulate.java +++ b/src/org/j6toj8/localization/datetime/localdatetime/LocalDateTime_Manipulate.java @@ -25,7 +25,6 @@ public static void main(String[] args) { System.out.println("+2 semanas: " + localDateTime.plusWeeks(2)); System.out.println("+2 meses: " + localDateTime.plusMonths(2)); System.out.println("+2 anos: " + localDateTime.plusYears(2)); - System.out.println("+2 anos: " + localDateTime.plusYears(2)); System.out.println("+2 décadas: " + localDateTime.plus(2, ChronoUnit.DECADES)); System.out.println("-2 dias: " + localDateTime.minusDays(2)); System.out.println("-2 semanas: " + localDateTime.minusWeeks(2)); diff --git a/src/org/j6toj8/localization/timezones/ZonedDateTime_Manipulate.java b/src/org/j6toj8/localization/timezones/ZonedDateTime_Manipulate.java index 6071a7e..9f0e05f 100644 --- a/src/org/j6toj8/localization/timezones/ZonedDateTime_Manipulate.java +++ b/src/org/j6toj8/localization/timezones/ZonedDateTime_Manipulate.java @@ -26,7 +26,6 @@ public static void main(String[] args) { System.out.println("+2 semanas: " + zonedDateTime.plusWeeks(2)); System.out.println("+2 meses: " + zonedDateTime.plusMonths(2)); System.out.println("+2 anos: " + zonedDateTime.plusYears(2)); - System.out.println("+2 anos: " + zonedDateTime.plusYears(2)); System.out.println("+2 décadas: " + zonedDateTime.plus(2, ChronoUnit.DECADES)); System.out.println("-2 dias: " + zonedDateTime.minusDays(2)); System.out.println("-2 semanas: " + zonedDateTime.minusWeeks(2)); diff --git a/src/org/j6toj8/streams/usingstreams/Streams_Match.java b/src/org/j6toj8/streams/usingstreams/Streams_Match.java index de68a63..8bbf992 100644 --- a/src/org/j6toj8/streams/usingstreams/Streams_Match.java +++ b/src/org/j6toj8/streams/usingstreams/Streams_Match.java @@ -7,15 +7,15 @@ public class Streams_Match { public static void main(String[] args) { // tag::code[] boolean anyMatch = Stream.of(7, 2, 1, 8, 4, 9, 2, 8) // stream de vários Integer - .anyMatch(e -> e > 5); // vefifica se algum elemento é maior que 5 + .anyMatch(e -> e > 5); // verifica se algum elemento é maior que 5 System.out.println("anyMatch: " + anyMatch); boolean allMatch = Stream.of(7, 2, 1, 8, 4, 9, 2, 8) // stream de vários Integer - .allMatch(e -> e > 5); // vefifica se TODOS os elementos são maiores que 5 + .allMatch(e -> e > 5); // verifica se TODOS os elementos são maiores que 5 System.out.println("allMatch: " + allMatch); boolean noneMatch = Stream.of(7, 2, 1, 8, 4, 9, 2, 8) // stream de vários Integer - .noneMatch(e -> e > 5); // vefifica NENHUM elemento é maior que 5 + .noneMatch(e -> e > 5); // verifica se NENHUM elemento é maior que 5 System.out.println("noneMatch: " + noneMatch); // end::code[] diff --git a/src/org/j6toj8/streams/usingstreams/primitives/Streams_Primitives.java b/src/org/j6toj8/streams/usingstreams/primitives/Streams_Primitives.java index f70f13d..ce0f9f4 100644 --- a/src/org/j6toj8/streams/usingstreams/primitives/Streams_Primitives.java +++ b/src/org/j6toj8/streams/usingstreams/primitives/Streams_Primitives.java @@ -18,7 +18,7 @@ public static void main(String[] args) { System.out.println("\n LongStream"); LongStream.of(1, 2, 3).forEach(System.out::print); - System.out.println(""); + System.out.println(); LongStream.range(1, 4).forEach(System.out::print); // end::code[] }