JPoint 2016 Student Day - first reports

Exactly one month later, on Sunday, April 24, a Java conference for JPoint Student Day students will be held in Moscow . Two weeks ago I already wrote about this conference - what it is, what to expect, and whom we expect to see at it. In total, the conference will have about two dozen reports, half of which have already been announced . Let's look at them together.
Here they are:
- Nikita Lipsky , Excelsior - JVM: A Short Course on General Anatomy;
- Roman Elizarov , Devexperts - Multithreaded programming - theory and practice;
- Victor Gamow , Hazelcast - Distribute and conquer: an introduction to distributed systems;
- Anton Arkhipov , ZeroTurnaround - Bytecode for the curious;
- Dmitry Chuyko , Oracle - Black Mark, StampedLock and his friends;
- Mikhail Dudarev , Licel - Java Security from A to Z;
- Victor Polishchuk , Infopulse - The web application I dreamed about;
- Egor Bugaenko , Teamed.io - Object Oriented Lies;
- Nicolas Fränkel , hybris - Refactoring your legacy code for better maintainability.
Not bad for a student event?
Speakers - reputable ones: Nikita Lipsky - virtual machine developer, Roman Elizarov - expert in world-class multithreading and Java Champion, Anton Arkhipov - Java Champion, classroom and bytecode modification guru (JRebel), Victor Gamov - Senior Solutions Architect at Hazelcast, the most popular In-Memory Data Grid, etc. You can talk about each of our speakers for a long time.
Let me remind you that this conference is for students and teachers. If you are one of the first or second - welcome to the cat, where I will talk more about these reports.
Nikita Lipsky, Excelsior - JVM: A Short Course on General AnatomySpeaking of Java, we mean at least two things: the JVM (Java Virtual Machine) and the Java bytecode that runs on this machine. The internal structure of the JVM is not easy, but it is very important to understand what parts it consists of, which part is responsible for what and how it all works together, even in the most general terms. This knowledge will help you in understanding how your program works and how you can improve its work.
In this report, we will not go into the guts of any particular JVM implementation, but we will show where the guts are located in the JVM, and where its liver, heart, kidneys, brain, and other organs are located and for what purpose. Review report, for elementary and intermediate levels.
Roman Elizarov, Devexperts - Multithreaded Programming - Theory and PracticeMulticore processors are used in all servers, workstations and mobile devices. Writing multi-threaded programs is necessary to ensure vertical scalability, but, unlike single-threaded programs, they are much more difficult to debug and test to make sure they are correct. It is important to understand exactly what guarantees are given by one or another language and library constructs with their multi-threaded execution and which pitfalls can violate the correctness of the code. The report will contain a brief introduction to the theory of multithreaded programming.
We will examine the theoretical models that are used to describe the behavior of multithreaded programs. The concepts of consistent consistency and linearizability (with examples) will be considered and explained why this is all that a practical programmer needs. It will be shown how these concepts are applied in the Java memory model with code examples leading to unexpected results from the point of view of a person who is not familiar with it.
Victor Gamov, Hazelcast - Distribute and conquer: an introduction to distributed systemsThere is a lot of Information, and it becomes more and more. Willy-nilly, one has to deal with the notorious "distributed computing". What to do? Replicate data? How to distribute calculations? Each approach has its advantages and disadvantages, both obvious and those that do not always lie on the surface.
Hazelcast (open source in-memory data grid) provides many tools for organizing distributed computing. After a short introduction and review of terms, based on code examples, Victor will show how to use Hazelcast for distributed data processing.
Anton Arkhipov, ZeroTurnaround - Bytecode for the curiousJava programs consist of classes, and classes consist of bytecode. Any normal Java programmer, when he first sees the bytecode, will be puzzled: “What is this ?! How to read it at all? What can you do with this? ”
If you are interested in what the Java compiler does with the source code of the Java program, come to the lecture and we will cover the basics of working with bytecode, how to read it, and what tools exist for working with it.
Dmitry Chuyko, Oracle - Black Mark, StampedLock and his friends. How not to violate pirated codeThe runtime and the standard Java library provide many opportunities to provide streaming code security on the high seas. Parallel execution has known pitfalls and ways to get around them. Before sailing, it’s useful to find out why different Lock implementations are needed, what they have in common, how to shorten critical sections and how to politely return the label back. And how it will help different teams manage one ship at the same time.
Keywords: Concurrency, StampedLock, AbstractQueuedSynchronizer, atomic operations, synchronization.
Mikhail Dudarev, Licel - Java Security from A to ZEverything that I would like to hear about Java Security if I were told about it:
- JCA / JCE - ciphers, signatures, hashes and other animals;
- How to protect your sand castle from a paddle (Java Sandbox, OSGI & etc);
- Alice Bob sent corals (what you need to know about SSL / TLS).
Victor Polishchuk, Infopulse - The web application I dreamed aboutHere is what Victor writes:
I have been working on web applications since the beginning of my Java career. I suffered with all of these Struts, JSF, Spring MVC, GWT, etc. But times have changed, there are more ready-made client tools, new specializations and potential threats. I want to talk about the price we pay when developing a Java web application. And also offer solutions that can save a project or two. After all, understanding the problem is already half the solution.
I know how it’s impossible. I tried to create a "perfect creature." And after several years of torment, I think I found the "ideal." I hasten to share.
Egor Bugaenko, Teamed.io - Object Oriented LiesAuthor's announcement:
OOP in its Java version, unfortunately, was created by those who did not understand the idea well. If you program as recommended, for example, by the Spring Framework, then you will forever remain among those who work for money. To truly love OOP and Java and enjoy every line of code will only work if you do it differently. In my book Elegant Objects, I summed up what exactly needs to be done differently.
In the report I will review the main points. Public static methods themselves are a big evil and should be completely eliminated. Getters / Setters should never be present in your classes. Singleton, MVC and ORM are not design patterns at all, but your worst enemies. NULL, as a keyword, should be forgotten. We will discuss all this with Java code examples, with a constant return to OOP theory.
Nicolas Fränkel, hybris - Refactoring your legacy code for better maintainabilityAlthough the code of any application is usually written once, it is then read by developers dozens or even hundreds of times throughout the life of the application. Therefore, how easy it will be to support it very much depends on how you write the code. However, for various reasons, code that gets out of the hands of developers is not always well supported. Therefore, you must be able to rewrite this code when there is time.
In this report, Nicolas will show you methods and tools to help you refactor your code in a safe way.
Conference website with all the information: http://students.javapoint.ru/ A
professional conference for students with experts of this level is a unique phenomenon not only for Russia. We studied, we know. I can responsibly declare that in the world such events can be counted on the fingers of one hand.
And this is not only the merit of our team. To be honest, we are just very lucky that many world-class Java experts speak Russian.