%Teilweise Erzeugt mit dem LaTeX-Generator: http://latex.sehnot.de

%Schriftgröße, Layout, Papierformat, Art des Dokumentes
\documentclass[10pt,oneside,a4paper]{scrartcl}

%Einstellungen der Seitenränder
\usepackage[left=2cm,right=2cm,top=1.5cm,bottom=1.5cm,includeheadfoot]{geometry}

%neue Rechtschreibung
\usepackage[ngerman]{babel}

%Umlaute ermöglichen
\usepackage[utf8]{inputenc}

%Gesamtseitenzahl
\usepackage{lastpage}

% Kopf- und Fußzeile
\usepackage[automark]{scrpage2}

%Hyperlinks
\usepackage{hyperref}

%Kopfzeile
\ihead{Java}
\chead{}
\ohead{http://kohnlehome.de/java/grundlagen.pdf}
\setheadsepline{0.5pt}

%Fußzeile
\setfootsepline{0.5pt}
\ifoot{Franz Kohnle}
\cfoot{Seite \thepage\ von  \pageref{LastPage}}
\ofoot{\today}

\pagestyle{scrheadings}

\begin{document}

% Überschrift 
\begin{center}
\LARGE % Schriftgröße
\bfseries % Fettdruck
\sffamily % Serifenlose Schrift
Java-Grundlagen
\end{center}

\section*{Primitive Datentypen}
\renewcommand{\arraystretch}{1.5}
\begin{tabular}{c | c | c}
Name & Speicherbedarf & Wertebereich\\ \hline\hline
\texttt{byte} & 1 Byte & -128 ... 127\\ \hline
\texttt{short} & 2 Byte & -32768 ... 32767\\ \hline
\texttt{int} & 4 Byte & -2147483648 ... 2147483647\\ \hline
\texttt{long} & 8 Byte & $-2^{63}  ...\  2^{63} - 1 $\\ \hline \hline
\texttt{float} & 4 Byte &  IEEE 754 Fliesskommazahl\\ \hline
\texttt{double} & 8 Byte & IEEE 754 Fliesskommazahl\\ \hline \hline
\texttt{boolean} & ? & \texttt{true}, \texttt{false} \\ \hline \hline
\texttt{char} & 2 Byte & Unicode-Zeichen
\end{tabular}


\section*{Operatoren}
\begin{itemize}
\item Arithmetisch: \texttt{+ - * /  \%}
\item Zuweisung: \texttt{= += *= /= \%=}
\item Vergleich: \texttt{== != < > <= >=}
\item Logisch: \texttt{\&\& || !}
\end{itemize}


\section*{Kontrollstrukturen}
\begin{itemize}
\item Verzweigungen: \texttt{if}, \texttt{switch}
\item Schleifen: \texttt{do}, \texttt{while}, \texttt{for}	
\end{itemize}


\section*{Arrays}
\begin{itemize}
\item Deklaration: \texttt{double[] feld = new double[3];}
\item Zugriff: \texttt{feld[0]}, \texttt{feld[1]}, \texttt{feld[2]}
\end{itemize}


\section*{Methoden}
\begin{itemize}
\item Definition / Aufruf
\item Parameter / Argumente
\item Rückgabewert
\item Rekursion
\end{itemize}


\section*{Begriffe aus der OOP}
\begin{itemize}
\item Klasse: \texttt{class}
\begin{itemize}
\item Datenfelder, Attribute, Membervariablen
\item Konstruktoren
\item Methoden, Getter, Setter
\end{itemize}
\item Objekt, Instanz: \texttt{new}
\item Klassenvariablen, Klassenmethoden: \texttt{static}
\item Vererbung: \texttt{extends}
\item abstrakte Methoden, abstrakte Klassen: \texttt{abstract}
\item Schnittstellenklassen: \texttt{interface}, \texttt{implements}
\end{itemize}

\section*{Zugriffsmodifizierer}
\begin{tabular}{c | c | c | c | c }
Modifier & von selber Klasse & von selbem Paket & von Subklasse & von Überall\\ \hline\hline
\texttt{public} & $\surd$ & $\surd$ & $\surd$ & $\surd$ \\ \hline
\texttt{protected} & $\surd$ & $\surd$ & $\surd$ & - \\ \hline
- & $\surd$ & $\surd$ & - & - \\ \hline
\texttt{private} & $\surd$ & - & - & - 
\end{tabular}



\section*{API}
\begin{itemize}
\item \href{http://docs.oracle.com/javase/8/docs/api/}{\texttt{Java SE 8 API Specification}}
\begin{itemize}
\item Zufall, Rechnen: \href{http://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#random--}{\texttt{Math.random()}}, \href{http://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#sqrt-double-}{\texttt{Math.sqrt()}},
\href{http://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#PI}{\texttt{Math.PI}}

\item Formatierung: \href{http://docs.oracle.com/javase/8/docs/api/java/lang/String.html#format-java.lang.String-java.lang.Object...-}{\texttt{String.format()}}

\item Collections: \href{http://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html}{\texttt{java.util.ArrayList}}
\end{itemize}
\end{itemize}

\end{document}