\documentclass[a4paper,french,12pt]{article}

\title{Programmation Java}
\author{}
\date{Dernière compilation~: \today{} à \currenttime}

\usepackage{styles}
\usepackage{tikz}
\usetikzlibrary{shapes.multipart}

\begin{document}

\maketitle
\tableofcontents

\clearpage

\section{Historique}

    Commencé en 1995, il est indépendant de l'architecture matérielle, et introduit une machine virtuelle.

    \paragraph{Le compilateur}

        Un programme Java (extension \texttt{.java}) est compilé en byte code et stocké dans un fichier \texttt{.class}.
        Ce byte code n'est pas exécutable directement, il est interprété par la machine virtuelle Java.
        C'est grâce à cet intermédiaire que le code Java peut être exécuté sur toute architecture.

        En ligne de commande, on peut utiliser \texttt{javac} pour exécuter un programme Java.

    \paragraph{Garbage collector}

        C'est un module de gestion de la mémoire qui permet, contrairement au C ou au C++, de ne pas se soucier de libérer la mémoire.

    \paragraph{Le JDK (Java Development Kit)}

        C'est un ensemble d'outils dont le développeur a besoin.
        Il contient le compilateur \texttt{javac}, la machine virtuelle \texttt{java}, et \texttt{javadoc}, le générateur de documentation.

    \paragraph{Le JRE (Java Runtime Environment)}

        Il est inclus dans le JDK\@.
        Il se compose de la machine virtuelle (JVM), des plugins, etc.

\section{Best practices}

\section{Relations entre le Java et la JVM}

\section{API de Java}

\section{Concepts objet}

\section{Classes, objets et packages}

\section{Modificateurs d'accès}

    Il y a trois modificateurs d'accès~: \texttt{public}, \texttt{private}, \texttt{protected}.

\section{Constructeurs}

\section{Typage~: référence, valeur, conversions}

\section{Opérateurs et expressions}

\section{Blocs d'instructions}

\section{Itérations}

\section{Tableaux et listes}

\section{Variables et paramètres}

\section{Agrégation et héritage}

\section{Exceptions et gestion des erreurs}

\end{document}
