w3resource

Java Programming Exercises, Practice, Solution

Java Exercises

Java is the foundation for virtually every type of networked application and is the global standard for developing and delivering embedded and mobile applications, games, Web-based content, and enterprise software. With more than 9 million developers worldwide, Java enables you to efficiently develop, deploy and use exciting applications and services.

The best way we learn anything is by practice and exercise questions. Here you have the opportunity to practice the Java programming language concepts by solving the exercises starting from basic to more complex exercises. A sample solution is provided for each exercise. It is recommended to do these exercises by yourself first before checking the solution.

Hope, these exercises help you to improve your Java programming coding skills. Currently, following sections are available, we are working hard to add more exercises .... Happy Coding!

List of Java Exercises:

Note: If you are not habituated with Java programming you can learn from the following :

More to Come !

Popularity of Programming Language
Worldwide, May 2022 compared to a year ago:

`
Rank Change Language Share Trend
1 Python 27.85 % -2.5 %
2 Java 17.86 % -0.1 %
3 Javascript 9.17 % +0.4 %
4 C# 7.62 % +0.7%
5 C/C++ 7.0 % +0.4 %
6 PHP 5.36 % -1.0 %
7 R 4.34 % +0.5 %
8 up arrow TypeScript 2.39 % +0.7 %
9 down arrow Objective-C 2.25 % +0.0 %
10 Swift 2.05 % +0.3 %
11 up arrow Matlab1.82% +0.2 %
12 down arrow Kotlin 1.58 % -0.2 %
13 Go 1.38 % -0.1 %
14 up arrow Rust 1.15 % +0.3 %
15 Ruby 1.14 % +0.0%
16 down arrow VBA 1.04 % +0.0 %
17 up arrow Ada 0.81 % +0.2 %
18 up arrow Scala 0.7 % +0.2 %
19 down arrow Dart 0.66 % +0.0 %
20 Abap 0.66 % +0.1 %
21 down arrow Visual Basic 0.66 % +0.0%
22 Lua 0.5 % +0.0 %
23 up arrow Groovy 0.45 % +0.0 %
24 down arrow Perl 0.45 % +0.0 %
25 down arrow Julia 0.4 % +0.0 %
26 up arrow Cobol 0.28 % +0.0 %
27 Haskell 0.28 % +0.0 %
28 Delphi/Pascal 0.14 % +0.0 %

Source : https://pypl.github.io/PYPL.html

TIOBE Index for May 2022

May 2022 May 2021 Change Programming Language Ratings Change
1 2 up arrow Python 12.74% +0.86%
2 1 down arrow C 15.59% -1.80%
3 3 Java 10.99% -0.74%
4 4 C++ 8.83% +1.01%
5 5 C# 6.39% +1.98%
6 6 Visual Basic 5.86% +1.85%
7 7 JavaScript 2.12% -0.33%
8 8 Assembly language 1.92% -0.51%
9 10 up arrow SQL 1.87% +0.16%
10 9 down arrow PHP 1.52% -0.34%
11 17 up arrow Delphi/Object Pascal 1.42% +0.22%
12 18 up arrow Swift 1.23% -0.08%
13 13 up arrow R 1.22% -0.16%
14 16 up arrow Go 1.11% -0.11%
15 12 down arrow Classic Visual Basic 1.03% +0.38%
16 21 up arrow Objective-C 1.03% +0.24%
17 19 up arrow Perl 0.99% -0.05%
18 37 up arrow Lua 0.98% +0.64%
19 11 down arrow Ruby 0.86% -0.64%
20 15 down arrow MATLAB 0.82% -0.41%

Source : https://www.tiobe.com/tiobe-index/

List of Exercises with Solutions :

[ Want to contribute to Java exercises? Send your code (attached with a .zip file) to us at w3resource[at]yahoo[dot]com. Please avoid copyrighted materials.]

Do not submit any solution of the above exercises at here, if you want to contribute go to the appropriate exercise page.



Java: Tips of the Day

Convert java.util.Date to java.time.LocalDate

Date input = new Date();
LocalDate date = input.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

Explanation

Despite its name, java.util.Date represents an instant on the time-line, not a "date". The actual data stored within the object is a long count of milliseconds since 1970-01-01T00:00Z (midnight at the start of 1970 GMT/UTC).

The equivalent class to java.util.Date in JSR-310 is Instant, thus there is a convenient method toInstant() to provide the conversion:

Date input = new Date();
Instant instant = input.toInstant();

A java.util.Date instance has no concept of time-zone. This might seem strange if you call toString() on a java.util.Date, because the toString is relative to a time-zone. However that method actually uses Java's default time-zone on the fly to provide the string. The time-zone is not part of the actual state of java.util.Date.

An Instant also does not contain any information about the time-zone. Thus, to convert from an Instant to a local date it is necessary to specify a time-zone. This might be the default zone - ZoneId.systemDefault() - or it might be a time-zone that your application controls, such as a time-zone from user preferences. Use the atZone() method to apply the time-zone:

Date input = new Date();
Instant instant = input.toInstant();
ZonedDateTime zdt = instant.atZone(ZoneId.systemDefault());

A ZonedDateTime contains state consisting of the local date and time, time-zone and the offset from GMT/UTC. As such the date - LocalDate - can be easily extracted using toLocalDate():

Date input = new Date();
Instant instant = input.toInstant();
ZonedDateTime zdt = instant.atZone(ZoneId.systemDefault());
LocalDate date = zdt.toLocalDate();

Java 9 answer

In Java SE 9, a new method has been added that slightly simplifies this task:

Date input = new Date();
LocalDate date = LocalDate.ofInstant(input.toInstant(), ZoneId.systemDefault());

This new alternative is more direct, creating less garbage, and thus should perform better.

Ref: https://bit.ly/3c2VywR