Java Core, a high-level overview

31st January 2019 0 By Alin Bistrian

I soo that a lot of books and courses are trying to cover details like how you declare an instance variable, which are Java’s reserved words or what is a valid identifier.

They are all fundamental aspects but your brain will have difficulties remembering them to HOW and more importantly to WHY should I use them. What is the benefit of using them that way?

Now we are about to enter a world of objects, stay tuned.

I was thinking OK, where should I even start with this new world? What is the most important thing when we think about programming in general? What is the most important thing when we are doing something? And the answer to these questions is the reason WHY we are doing it.

Why should I learn it? What benefits will I have by learning Java Core?

Well, there are a lot of benefits. Some of them I have listed in Introduction to Java Core:

Introduction to Java Core


Let us list a few things we will cover in Java Core courses:

  • Object Orientation
  • Flow Control (loops)
  • Java Operators
  • Dates, Times
  • Working with Files
  • Data Bases
  • Java Exceptions and assertions
  • Data Structures
  • Concurrency

Object Orientation

Java is an OOP language, and it is a collection of objects communicating with other objects. There are a lot of significant benefits of OOP, imagine that you can use your TV as both a monitor and to watch movies which is great.

But, there is always a but, what happens if someone wants to watch a movie while you are working? Well, that person will have to wait for you to finish working or you will have to stop working for someone else to watch a movie.

There is also the issue that the TV is much more complicated, to accomplish both functions (watching a movie, to be used as a monitor). Now imagine that you work every day, and you have people wanting to watch movies every day.

Then you may consider purchasing a less complicated monitor that it is just a monitor and a simpler TV that is just a TV. Opting for less complicated objects is a kind of sensible decisions you will have to make when working with an OOP language.


Flow Control (loops)

Flow control is all about decision making that your code has to do. For example, if the bank account balance is “0” do not allow withdrawal. Of cour, there is more to it than this but not too much. We will only cover the essential aspects, the things that you will probably use in 90 percent of the situations.

Java Operators

We need them to compute all kind of calculations, assign values to variables, compare the value of to variables, etc.


Working with Files

Working with files is an essential aspect of any software. File operations have many usages, from merely storing data from a table to distributed computing where you will serialize objects and save them in a file which later on you will distribute them onto the network to other computers, but we do not get into that here.

Data Bases

The databases are commonly used when you need to store a large amount of information. Java provides various libraries to work with databases.

Java Exceptions and assertions

When you build software, you are coding against a set of requirements that describe some situations but not all the possible ones. That is why Java has an Exception handler mechanism that allows programmers to handle unpredictable situations gracefully.


Data Structures, Arrays, Collections, Dates

Data Structures like Arrays and Collections help us to manipulate data in memory. Why do we want to do this is because writing to a file or storing data into a database are expensive operations which may reduce the performance of our software.


Doing multiple things at the same time. Working with Threads.


Learning all the above may seem a lot to take but, when we get into details, you will be able to correlate the examples to your daily activities which will make it much more easier to learn.

Starting from the next post, there will be much more detailed and more code examples.

The key point will be that the courses will start with the examples and we would work our way into details covering different topics. The reason why I believe that this is a good way of learning is that when we cover a concept you already know why we are writing the code that way and what benefits do we get from it.

If you found this post useful, please leave a comment and share it with your friends and colleagues.