@billoneil
Nothing here yet.
Nothing here yet.
No blogs yet.
I would have to disagree. It helps to have a degree from a university but it is not required. I have many colleagues who are self taught and are very good engineers. Some of them even work at places like Google with no degree at al. They are engineers not developers. I also know many engineers with degrees who have much less skill than some who are self taught. It all comes down to what you are willing to learn on your own.
That's not entirely true, it's very easy to see if there was a collision in the map. Map.put has a return value that is often ignored but it is useful in exactly this situation. @return the previous value associated with <tt>key</tt>, or <tt>null</tt> if there was no mapping for <tt>key</tt>. (A <tt>null</tt> return can also indicate that the map previously associated <tt>null</tt> with <tt>key</tt>, if the implementation supports <tt>null</tt> values.) So to detect a collision all you have to do is see if map.put returns a non null value. You can then do something with the previous value if you want. You could also just check to see if the map contains a value before you put to detect it yourself.
If you are using synchronized you shouldn't need to explicitly call wait() or notify() it's built in. The answer of how you call them in order is you can't. At least not with synchronized, its up to the OS thread scheduler to decide what runs next. However there are many ways to achieve ordering. You could submit Callables / Runnables to an ExecutorService which will call them in order. You can chain actions with CompletableFuture's. There are many other types of locks other than synchronized in java.util.conurrent. ReentrantLock, Semaphore, CyclicBarrier, CountdownLatch. If you give a more specific use case we might be able to give you a better solution.
With all the lower level Java libraries coming out you can develop just as rapidly in Java as most other languages. People just choose to be stuck in their legacy ways :). Jooby, Spark, tons of lightweight java servers you can spin up as fast as a node and express app.
That graph seems very unrealistic. How long has Scala been around and how much market share did it take? A lot of people I know who switched to Scala including myself ended up switching back to Java. Kotlin will definitely gain some market share but 50% by the end of 2018 is a joke. Maybe just maybe if this graph is only for Android devs? Theres just far too much server side Java code to go away anytime soon (like 10-20 years).
Websockets are bidirectional you can push data over them also. What you could do is as you pull the stock market data broadcast changes over the websockets before or after you write to the db (any db). Websockets can be a little difficult to scale but if you are talking 500 users it should be fine.