Have you ever wondered "how" the many Java libraries and frameworks you use provide this functionality? In this course, learn how to manipulate various codes or objects provided by Java and take your Java skills to the next level.
Learn what bytecode manipulation is and how you can use it.
Learn what reflection is and how you can use it.
Learn what a proxy is and how you can use it.
Learn what annotation processors are and how you can use them.
This course covers the underlying Java technologies that Java developers have likely used or heard of at least once, such as Spring, Spring Data JPA, Hibernate, and Lombok.
How does Spring retrieve and inject objects of the type of fields or parameters annotated with @Autowired? How does Lombok generate getters, setters, hashCode, equals, and other methods when annotated with @Data? Have you ever wondered?
This course covers the technologies Java provides, including source code, bytecode, and object manipulation. To understand this, it's helpful to first understand the fundamental structure of the JVM and how classloaders work. Therefore, this course covers the JVM, bytecode manipulation, reflection, dynamic proxying, and annotation processing. Therefore, this course is recommended for those who have been unsure what to learn after learning the basics of Java.
After completing this course, you will gain a deeper understanding of Java and will be able to more easily understand the various technologies surrounding it. Furthermore, I hope that the skills you learn in this course will spark your interest in broader Java technologies, such as GC, service providers, and profilers.
thank you
THE JAVA, Different ways to manipulate code
Recommended for these people
Who is this course right for?
Students or developers who want to learn or develop libraries or frameworks that manipulate code or objects.
Students or developers who want to understand and use Java in a little more depth.
Students or developers who want to learn how Lombok, QueryDSL, code corruption tools, and various functions provided by Spring (DI, AOP) are implemented.
It wasn't a lecture that a slacker like me could listen to. He kept talking about something that seemed like it would be useful, but I couldn't understand it. I'll come back again around this time next year.
In fact, there were many cases where I didn't clearly understand the concepts of Spring DI, AOP, IOC, etc. or the structure of the JVM when I read various blog posts. Since I didn't understand the principles of the technologies, I naturally just memorized the technologies, and even that would be forgotten over time and I would wonder, "What was it?" I happened to watch this lecture while preparing for a job change, and since I was able to understand the principles of the technologies that I had been using without thinking, I felt like I understood them a little more clearly. If I listen to the same lecture a few more times, I think I will think more deeply and understand more deeply whatever I read. Also, although it is knowledge that may disappear due to volatility, I think it is different from knowing the principle of whether something works or not, so it was a really meaningful lecture for me.