Explore Java virtual machine (JVM) and the basics of imperative, object-oriented, and functional programming in Java and Scala.
(clicking) - [Presenter] Welcome to Introduction to JVM Languages, JMV, Java, Scala, by Vincent van der Leun, a course by Packt Publishing. I'm Mark Thomas, the presenter for this course. Vincent van der Leun is a software engineer living in the city of Utrecht in the Netherlands. Programming since the age of eight, he's worked with many different languages and platforms over the years. Rediscovering Java a few years ago, he loved it so much that he became an Oracle Certified Professional Java 7 Programmer, and started the JVM Fanboy blog.
Currently, he works for CloudSuite, a company specializing in modern e-commerce solutions. At CloudSuite he works at various backend systems and web services, writes Java script code for front end applications, supports consultants by providing complex SQR queries, and consumes coffee while having design-related discussions with fellow developers. The Java virtual machine is a mature and very versatile platform for running software that takes full advantage of modern hardware features. We'll start with the course overview now.
This course covers both object-oriented programming languages and functional programming languages. The JVM is versatile enough to make this all possible. Section one, Java Virtual Machine, provides a high-level overview of the Java platform, and the Java virtual machine, JVM. It describes popular use cases for applications running on the JVM, namely web applications, big data analysis, and Internet of Things, IoT. Also covered are important JVM concepts, including just in time compiler, type system, and garbage collector.
Then, the next section, Developing on the Java Virtual Machine, explains the JVM in more technical detail. Covered are both the installation procedure and organization of the Java Development Kit, JDK, on major operating systems, Windows, MAC OS, and Linux. Also explained is the organization of the Java Class Library, and instructions on how to run JVM based applications by setting up the class path. The third section, Java, covers the fundamentals of the Java language. It covers creating classes and instantiating objects based on these classes, adding methods and properties to classes, and Java's AccessModifiers and other modifiers.
Some of the other concepts that are discussed include abstract classes, interfaces, arrays, and collections and exceptions. More advanced features, such as threading and landers, are covered as well. Section four, Java Programming, contains a step-by-step guide to creating a simple web service in the Java language. Tools that are used along the way include the Eclipse IDE, the Gradle build tool, and programming libraries, such as Spark Java, and Micro Web Service framework, and the J Unit Unit Testing Framework.
Moving onto section five, Scala. This section talks about the hybrid functional programming in object oriented programming language Scala. It describes the installation procedure and the usage of the interactive shell bundled with the language. By using the interactive shell, Scala code can be entered and executed dynamically, without explicitly compiling code. Both object-oriented and functional programming in Scala are discussed. The last section, Scala Programming, contains a step-by-step guide to create a simple console-based application powered by the popular Akka tool kit.
Akka is a tool kit specializing in writing scalable applications that take full advantage of the modern multi-core processors. Many Akka concepts, such as its actor-based system, are discussed thoroughly. The builder project, the Scala Build Tool, SBT, is used, while the Scala test library is used for writing unit tests. To get the most out of this course, a modern laptop or desktop computer is required. Running an up-to-date version of either Windows, MAC OS, or Linux, preferably Ubuntu.
About four gigabytes of RAM memory is recommended at the minimum. More RAM is always welcome. So, that's all for now. Let's begin this journey together, and I hope to see you there. (clicking)
- JVM concepts
- Java editions
- Installing JDK
- Running JVM applications on the command line
- Writing Java code
- Creating a web service
- Installing Scala
- Programming in Scala