Skip to content

Commit

Permalink
Merge pull request #16 from mauritssilvis/updates
Browse files Browse the repository at this point in the history
Update project structure, dependencies, and documentation
  • Loading branch information
mauritssilvis authored Apr 1, 2023
2 parents 058c846 + c1e0d67 commit bb8b6fb
Show file tree
Hide file tree
Showing 32 changed files with 2,274 additions and 324 deletions.
19 changes: 11 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
# Challenges

> A collection of programming challenges, solved using different programming languages
> A collection of programming challenges
## About
## Introduction

With this project, I provide solutions to common programming challenges in different programming languages.
With this educational project, I provide solutions to common programming challenges.

## Aims
Below, I first describe the [aims](#1-aims) I have with the current project.
I then [list](#2-overview) the programming languages for which I solved several challenges.

## 1. Aims

My aims with this project are to:

- Extend my knowledge of algorithms, data structures and design patterns.
- Extend my knowledge of different programming tools.
- Apply this knowledge in solving practical programming problems.

More generally, I strive to:
Expand All @@ -22,14 +25,14 @@ Finally, I aim to:

- Showcase this experience and knowledge.

## Status
## 2. Overview

Currently, solutions to common programming challenges are available in:
Currently, solutions to common programming challenges are available for the following languages:

- [Java](java)

## License

Copyright © 2021, 2022 Maurits H. Silvis
Copyright © 2021–2023 Maurits Silvis

This source code package is subject to the terms and conditions defined in the GNU General Public License v3.0, which can be found in the file [LICENSE.md](LICENSE.md), or later.
48 changes: 27 additions & 21 deletions java/README.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,37 @@
# Challenges > Java
# Java challenges

> A collection of programming challenges, solved using Java
> A collection of programming challenges solved using Java
## Introduction

With this part of the [Challenges](https://github.com/mauritssilvis/challenges) project, I provide solutions to common programming challenges in Java.

Under [Status](#1-status), I give an overview of the challenges that I solved using Java so far.
I also provide some [background information](#2-background) on [Java](#21-java) and the tools I used, namely, [IntelliJ IDEA](#22-intellij-idea) and [Maven](#23-maven).
Below, I first give an [overview](#1-overview) of the challenges that I have solved so far.
I then provide some [background information](#2-background) on [Java](#21-java) and the tools I used, namely, [IntelliJ IDEA](#22-intellij-idea) and [Maven](#23-maven).

## 1. Status
## 1. Overview

Currently, Java solutions are available to challenges in the following categories.
Note that I solved all these challenges using [IntelliJ IDEA](#22-intellij-idea).
Currently, Java solutions are available for the following challenges, categorized according to the tools I used.

### General
### 1.1 IntelliJ IDEA projects

#### Projects
I solved the following challenges using [IntelliJ IDEA](#22-intellij-idea).
For some challenges, I did not use a build tool ([general](#111-general)).
For others, I made use of [Maven](#112-maven).

#### 1.1.1 General

##### Projects

* [Setting up a basic Java project using IntelliJ IDEA](basic_java_project_intellij)

### Maven
#### 1.1.2 Maven

#### Projects
##### Projects

* [Setting up a basic Maven project using IntelliJ IDEA](basic_maven_project_intellij)

#### JARs
##### JARs

* [Creating an executable JAR using Maven](executable_jar_maven_intellij)

Expand All @@ -36,35 +41,36 @@ In this section, I provide some background information on [Java](#21-java) and t

### 2.1 Java

[Java](https://www.oracle.com/java/) is an object-oriented programming language with a syntax similar to that of C and C++.
[Java](https://www.oracle.com/java/) is an object-oriented programming language with a syntax similar to C and C++.
As is the case for C and C++ code, Java code has to be compiled before it can be executed.
C and C++ are, however, compiled into platform-specific machine code.
Instead, Java compiles to platform-independent class files containing so-called bytecode.
This bytecode can then be executed on a platform of choice by a platform-specific Java virtual machine (JVM).
This bytecode can be executed on a platform of choice by a platform-specific Java virtual machine (JVM).

Most of the above-mentioned projects are configured to use the latest long-term support (LTS) version of Java (Java 20 at the time of writing).
These projects require the installation of the Java Development Kit (JDK) 20 or later (see, e.g., https://adoptium.net/temurin/releases/).

To be up-to-date with recent developments, most of the above-mentioned projects are configured to make use of the latest long-term support (LTS) version of Java (Java 17 at the time of writing).
To compile and build these projects, the [Java Development Kit 17](https://jdk.java.net/17/) is required.

### 2.2 IntelliJ IDEA

[IntelliJ IDEA](https://www.jetbrains.com/idea/) is an integrated development environment (IDE) developed by [JetBrains](https://www.jetbrains.com/).
This IDE supports Java and several other Java virtual machine languages, and can be extended with plugins to retrieve support for other programming languages.
IntelliJ IDEA comes with a [detailed online documentation](https://www.jetbrains.com/help/idea/discover-intellij-idea.html) and its [community edition](https://www.jetbrains.com/idea/download/) can be downloaded and used for free.
This IDE supports Java and several other JVM languages and can be extended with plugins to retrieve support for other programming languages.
IntelliJ IDEA has [detailed online documentation](https://www.jetbrains.com/help/idea/discover-intellij-idea.html), and its [community edition](https://www.jetbrains.com/idea/download/) can be downloaded and used for free.

IntelliJ IDEA makes it easy to configure code styles, automatic copyright notices, code inspection profiles, run configurations and more.
The basic IntelliJ IDEA configuration used in the above-mentioned projects is described in the [IntelliJ IDEA section](basic_maven_project_intellij#12-intellij-idea) of [Setting up a basic Maven project using IntelliJ IDEA](basic_maven_project_intellij).
The basic IntelliJ IDEA configuration used in the above-mentioned projects is described in the [IntelliJ IDEA section](basic_java_project_intellij#12-intellij-idea) of [Setting up a basic Java project using IntelliJ IDEA](basic_java_project_intellij).

### 2.3 Maven

[Maven](https://maven.apache.org/) is a build tool that can be used to manage and build projects written in Java and other programming languages.
The [project object model](https://maven.apache.org/guides/introduction/introduction-to-the-pom.html), a file named `pom.xml`, is central to the use of Maven.
The [project object model](https://maven.apache.org/guides/introduction/introduction-to-the-pom.html), a file named `pom.xml`, is central to using Maven.
In this file, the project properties can be set, build plugins can be configured, project dependencies can be defined, etc.

The basic Maven configuration used in the above-mentioned projects is discussed in the [Maven section](basic_maven_project_intellij#13-maven) of [Setting up a basic Maven project using IntelliJ IDEA](basic_maven_project_intellij).
A step-by-step guide for setting up a Maven project using IntelliJ IDEA can be found in the [Maven section](https://www.jetbrains.com/help/idea/maven-support.html#create_new_maven_project) of IntelliJ IDEA's [online documentation](https://www.jetbrains.com/help/idea/discover-intellij-idea.html).

## License

Copyright © 2021 Maurits H. Silvis
Copyright © 2021–2023 Maurits Silvis

This source code package is subject to the terms and conditions defined in the GNU General Public License v3.0, which can be found in the file [LICENSE.md](../LICENSE.md), or later.
4 changes: 4 additions & 0 deletions java/basic_java_project_intellij/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,10 @@ fabric.properties
# https://plugins.jetbrains.com/plugin/12206-codestream
.idea/codestream.xml

# Azure Toolkit for IntelliJ plugin
# https://plugins.jetbrains.com/plugin/8053-azure-toolkit-for-intellij
.idea/**/azureSettings.xml

### Java ###
# Compiled class file
*.class
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit bb8b6fb

Please sign in to comment.