{"id":21516857,"url":"https://github.com/inbravo/java-feature-set","last_synced_at":"2025-04-09T21:20:49.890Z","repository":{"id":16810312,"uuid":"19569289","full_name":"inbravo/java-feature-set","owner":"inbravo","description":" -:- My random experiements with Java -:-","archived":false,"fork":false,"pushed_at":"2019-12-19T10:27:16.000Z","size":26810,"stargazers_count":4,"open_issues_count":1,"forks_count":8,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-23T23:11:57.436Z","etag":null,"topics":["anagrams","concurrency","countdownlatch","java","jvm","prime-numbers","randomnumber","selection-sort","sort","wordfrequency"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/inbravo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-05-08T10:15:20.000Z","updated_at":"2020-08-05T20:22:39.000Z","dependencies_parsed_at":"2022-08-27T00:11:42.837Z","dependency_job_id":null,"html_url":"https://github.com/inbravo/java-feature-set","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inbravo%2Fjava-feature-set","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inbravo%2Fjava-feature-set/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inbravo%2Fjava-feature-set/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inbravo%2Fjava-feature-set/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/inbravo","download_url":"https://codeload.github.com/inbravo/java-feature-set/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248112366,"owners_count":21049646,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anagrams","concurrency","countdownlatch","java","jvm","prime-numbers","randomnumber","selection-sort","sort","wordfrequency"],"created_at":"2024-11-24T00:26:14.762Z","updated_at":"2025-04-09T21:20:49.872Z","avatar_url":"https://github.com/inbravo.png","language":"Java","readme":"![](https://img.shields.io/badge/Java-1.9-blue.svg)\r\n[![](https://travis-ci.org/inbravo/java-feature-set.svg?branch=master)](https://travis-ci.org/inbravo/java-feature-set) \r\n[![](https://coveralls.io/github/inbravo/java-feature-set/badge.svg?branch=master)](https://coveralls.io/github/vicboma1/Reactive-Programming-with-JDK-9-Flow-API?branch=master)[![Sputnik](https://sputnik.ci/conf/badge)](https://sputnik.ci/app#/builds/inbravo/java-src)\r\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/7188db0852ae4fbf8a342015ea545688)](https://www.codacy.com/app/inbravo/java-src?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=inbravo/java-src\u0026amp;utm_campaign=Badge_Grade)\r\n### Some useful Java examples\r\n\r\n#### JDK 5/6 Language features \r\n-  [A static nested class is 'Static Nested Class'. A non static nested class becomes 'Inner Class'][NestedClassTest.md]\r\n-  [How shift operation based calculation is faster than mathematical equivalent][NativeCalc.md]\r\n-  [Simulator for 'OutOfMemoryError'][OutOfMemoryErrorSim.md]\r\n-  [Singleton using 'enum'][EnumSingletonTest.md]\r\n-  [How Remote Method Invocation(RMI) works][PowerServiceImpl.md]\r\n\r\n#### JDK 7 language features\r\n-  [Usage of 'MethodHandles'][MethodHandleTest.md]\r\n-  [Diamond operator(\u003c\u003e)][DiamondOperatorTest.md]\r\n-  [Remove compiler warning about generics variable arguments invocation using '@SafeVarargs' annotation][SafeVarargsAnnotationTest.md]\r\n\r\n#### JDK 8 language features\r\n-  [Performance comparison between MethodHandle, Reflection, LambdaMetafactory and Direct method call][TestMethodPerf.md]\r\n-  [Interface with 'default' method][InterfaceWithMainTest.md]\r\n-  [Interface with 'static' method][InterfaceWithStaticMethod.md]\r\n-  [Class with 'default' method][ClassWithDefaultMethodUsage.md]\r\n-  [Functional interfaces][FunctionalInterfaceTest.md]\r\n-  [Runnable is a functional interface now (java.lang.FunctionalInterface)][ThreadSleepTest.md]\r\n-  [Predicate as functional interfaces][PredicateTest.md]\r\n-  [Using 'Collections.sort' on Lambdas][ComparatorTest.md]\r\n-  [Using 'List.forEach' on Lambdas][ForEachTest.md]\r\n-  [List Streaming example][ListStreamTest.md]\r\n\r\n#### JDK 9 language features \r\n-  [How 'jshell' (Read-Eval-Print Loop : JEP-222) works][JShellTest.md]\r\n-  [How 'VarHandle' class (JEP-193) works][VarHandleTest.md]\r\n-  [Factory methods for Collections (JEP 269)][ListFactoryTest.md]\r\n-  [Underscore ('_') identifier is removed][UnderscoreAsIdentifierTest.md]\r\n-  [Example of Flow API(JEP 266 : Reactive streams)][FlowAPITest.md]\r\n-  [Interface with 'private' method][InterfaceWithPrivateMethodTest.md]\r\n\r\n#### JVM features \r\n-  [How JVM method-inline optimization works][NoClassInstance.md]\r\n-  [Another example of JVM method-inline optimization][MethodInlineTest.md]\r\n-  [Failed Hoisting example][FailedHoistingTest.md]\r\n-  [Successful Hoisting example][SuccessfulHoistingTest.md]\r\n-  [Another successful Hoisting example][AnotherSuccessfullHoistingTest.md]\r\n-  [How JVM finds the HotSpot and converts them into native instruction using JIT compiler][FibonacciNumber.md]\r\n-  [Object size at runtime][ObjectSizeTest.md]\r\n-  [Primitive value size at runtime][PrimitiveVarsSizeTest.md]\r\n-  [Unsafe objects using 'sun.misc.Unsafe' (Heap bypassing)][UnsafeObject.md]\r\n-  [Example of System.identityHashCode][IdentityHashCode.md]\r\n\r\n#### Util classes\r\n-  [Usage of 'CopyOnWriteArrayList'][CowalTest.md]\r\n-  [Performance testing of 'ConcurrantMap'][ConcurrantMapTest.md]\r\n-  [Usage of 'WeakHashMap'][WeakHashMapTest.md]\r\n\r\n#### Concurrency\r\n-  [Usage of 'CountDownLatch'][CountDownLatchTest.md]\r\n-  [Usage of 'CyclicBarrier'][CyclicBarrierTest.md]\r\n-  [Usage of 'Exchanger'][ExchangerTest.md]\r\n-  [Usage of 'Semaphore'][SemaphoreTest.md]\r\n-  [Usage of 'Timer' and 'TimerTask'][TimerTest.md]\r\n-  [Example of failed concurrency][FailedConcurrency.md]\r\n-  [Example of successful concurrency][SuccessfullConcurrency.md]\r\n-  [Example of Java Monitor Pattern][MonitorPatternTest.md]\r\n-  [Example to find number of cores of a processor][AvailableProcessorTest.md]\r\n-  [Example of blocking array implemented using 'ReentrantLock'][BlockingArray.md]\r\n-  [Example of fork and join pool class 'ForkJoinPool'][ForkJoinPoolTest.md]\r\n\r\n#### Data structures \u0026 algorithms\r\n-  [Stack][Stack.md]\r\n-  [Reverse a word using a stack][ReverseTheWord.md]\r\n-  [Queue][Queue.md]\r\n-  [Circular Queue][CircularQueue.md]\r\n-  [Linked Queue][LinkedQueue.md]\r\n-  [Priority Queue][PriorityQueue.md]\r\n-  [Linear Search][LinearSearch.md]\r\n-  [Binary Search][BinarySearch.md]\r\n-  [Bubble Sort][BubbleSort.md]\r\n-  [Insertion Sort][InsertionSort.md]\r\n-  [Selection Sort][SelectionSort.md]\r\n-  [Binary Tree][BinaryTree.md]\r\n-  [Armstrong Number][ArmstrongNumber.md]\r\n-  [Floyds Triangle][FloydsTriangle.md]\r\n-  [Example on Hex Numbers][HexNumberTest.md]\r\n-  [Example on Prime Numbers][PrimeNumbers.md]\r\n-  [Example on Random Numbers][RandomNumbers.md]\r\n-  [How to test a number is odd by using '%'][OddityTest.md]\r\n-  [Check if a string is anagram][Anagram.md]\r\n-  [Check if a string contains DuplicateChars][DuplicateChars.md]\r\n-  [Get frequency of words in a string][WordFrequency.md]\r\n-  [Get repeating and non repeating chars from a string][FirstNonRepeatingChar.md]\r\n-  [Find the Levenshtein distance between two strings][LevenshteinDistanceTest.md]\r\n\r\n#### Spark \r\n-  [Program to count 'words per statement'][JavaWordCount.md]\r\n-  [Example of various spark functions][SparkKeyValueEx.md]\r\n-  [Program to count 'words per statement', arrived on network socket][NetworkWordCount.md]\r\n-  [Program to count 'products per country'][ProductsCountryCount.md]\r\n\r\n#### Zookeeper \r\n-  [Program to test basic functionality of Zookeeper][ZkConnect.md]\r\n\r\n[JavaWordCount.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/spark/JavaWordCount.java\r\n[SparkKeyValueEx.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/spark/SparkKeyValueEx.java\r\n[NetworkWordCount.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/spark/NetworkWordCount.java\r\n[ProductsCountryCount.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/spark/ProductsCountryCount.java\r\n[Anagram.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/string/Anagram.java\r\n[IdentityHashCode.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/string/IdentityHashCode.java\r\n[DuplicateChars.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/string/DuplicateChars.java\r\n[WordFrequency.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/string/WordFrequency.java\r\n[FirstNonRepeatingChar.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/string/FirstNonRepeatingChar.java\r\n[LevenshteinDistanceTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/string/LevenshteinDistanceTest.java\r\n[NoClassInstance.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/puzzle/NoClassInstance.java\r\n[PowerServiceImpl.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/rmi/PowerServiceImpl.java\r\n[JShellTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/jdk9/JShellTest.java\r\n[VarHandleTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/jdk9/VarHandleTest.java\r\n[ListFactoryTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/jdk9/ListFactoryTest.java\r\n[UnderscoreAsIdentifierTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/jdk9/UnderscoreAsIdentifierTest.java\r\n[FlowAPITest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/jdk9/FlowAPITest.java\r\n[FailedHoistingTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/runtime/jit/FailedHoistingTest.java\r\n[SuccessfulHoistingTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/runtime/jit/SuccessfulHoistingTest.java\r\n[AnotherSuccessfullHoistingTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/runtime/jit/AnotherSuccessfullHoistingTest.java\r\n[MethodInlineTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/runtime/jit/MethodInlineTest.java\r\n[UnsafeObject.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/runtime/jit/UnsafeObject.java\r\n[FibonacciNumber.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/runtime/jit/FibonacciNumber.java\r\n[NestedClassTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/lang/NestedClassTest.java\r\n[ObjectSizeTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/memory/ObjectSizeTest.java\r\n[PrimitiveVarsSizeTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/memory/PrimitiveVarsSizeTest.java\r\n[OutOfMemoryErrorSim.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/memory/OutOfMemoryErrorSim.java\r\n[CowalTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/collection/CowalTest.java\r\n[AvailableProcessorTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/concurrency/AvailableProcessorTest.java\r\n[BlockingArray.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/concurrency/BlockingArray.java\r\n[ForkJoinPoolTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/concurrency/ForkJoinPoolTest.java\r\n[CountDownLatchTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/concurrency/CountDownLatchTest.java\r\n[CyclicBarrierTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/concurrency/CyclicBarrierTest.java\r\n[ExchangerTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/concurrency/ExchangerTest.java\r\n[SemaphoreTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/concurrency/SemaphoreTest.java\r\n[FailedConcurrency.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/concurrency/FailedConcurrency.java\r\n[SuccessfullConcurrency.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/concurrency/SuccessfullConcurrency.java\r\n[MonitorPatternTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/concurrency/MonitorPatternTest.java\r\n[TimerTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/concurrency/TimerTest.java\r\n[Stack.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/ds/stack/Stack.java\r\n[ReverseTheWord.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/ds/stack/ReverseTheWord.java\r\n[ReverseTheWord.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/ds/stack/ReverseTheWord.java\r\n[Queue.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/ds/queue/Queue.java\r\n[CircularQueue.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/ds/queue/CircularQueue.java\r\n[LinkedQueue.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/ds/queue/LinkedQueue.java\r\n[PriorityQueue.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/ds/queue/PriorityQueue.java\r\n[BinarySearch.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/ds/search/BinarySearch.java\r\n[LinearSearch.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/ds/search/LinearSearch.java\r\n[BubbleSort.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/ds/sort/BubbleSort.java\r\n[InsertionSort.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/ds/sort/InsertionSort.java\r\n[SelectionSort.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/ds/sort/SelectionSort.java\r\n[BinaryTree.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/ds/tree/BinaryTree.java\r\n[MethodHandleTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/jdk7/MethodHandleTest.java\r\n[DiamondOperatorTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/jdk8/DiamondOperatorTest.java\r\n[SafeVarargsAnnotationTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/jdk7/SafeVarargsAnnotationTest.java\r\n[InterfaceWithMainTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/jdk8/InterfaceWithMainTest.java\r\n[InterfaceWithStaticMethod.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/jdk8/funcinterf/InterfaceWithStaticMethod.java\r\n[ClassWithDefaultMethodUsage.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/jdk8/funcinterf/ClassWithDefaultMethodUsage.java\r\n[InterfaceWithPrivateMethodTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/jdk9/InterfaceWithPrivateMethodTest.java\r\n[FunctionalInterfaceTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/jdk8/funcinterf/FunctionalInterfaceTest.java\r\n[PredicateTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/jdk8/functions/PredicateTest.java\r\n[ComparatorTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/jdk8/lambda/ComparatorTest.java\r\n[ForEachTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/jdk8/lambda/ForEachTest.java\r\n[ThreadSleepTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/jdk8/lambda/ThreadSleepTest.java\r\n[TestMethodPerf.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/jdk8/lambda/perf/TestMethodPerf.java\r\n[TestMethodPerf.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/jdk8/lambda/perf/TestMethodPerf.java\r\n[ListStreamTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/jdk8/streams/ListStreamTest.java\r\n[ArmstrongNumber.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/number/ArmstrongNumber.java\r\n[FloydsTriangle.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/number/FloydsTriangle.java\r\n[HexNumberTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/number/HexNumberTest.java\r\n[PrimeNumbers.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/number/PrimeNumbers.java\r\n[RandomNumbers.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/number/RandomNumbers.java\r\n[OddityTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/puzzle/OddityTest.java\r\n[EnumSingletonTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/pattern/EnumSingletonTest.java\r\n[NativeCalc.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/perf/NativeCalc.java\r\n[ConcurrantMapTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/ref/ConcurrantMapTest.java\r\n[WeakHashMapTest.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/ref/WeakHashMapTest.java\r\n[ZkConnect.md]: https://github.com/inbravo/java-src/blob/master/src/main/java/com/inbravo/zookeeper/ZkConnect.java\r\n\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finbravo%2Fjava-feature-set","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finbravo%2Fjava-feature-set","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finbravo%2Fjava-feature-set/lists"}