\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{{[}deleted{]}} \pdfinfo{ /Title (java-f-r-beginner-01-basics.pdf) /Creator (Cheatography) /Author ({[}deleted{]}) /Subject (Java für Beginner \textgreater{} \#01 Basics Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{253FA3} \definecolor{LightBackground}{HTML}{F1F3F9} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{Java für Beginner \textgreater{} \#01 Basics Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{{[}deleted{]}} via \textcolor{DarkBackground}{\uline{cheatography.com/69240/cs/17459/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}{[}deleted{]} \\ \uline{cheatography.com/deleted-69240} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 15th October, 2018.\\ Updated 15th October, 2018.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{3} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Was ist Java}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Java l{\"a}uft auf mehr als {\emph{3 Billionen}} Maschinen. \newline % Row Count 1 (+ 1) Es wird für {\emph{Google's }} {\bf{Android}} {\emph{OS, verschiedene Desktop/Web Anwendungen, }} und vieles mehr benutzt.% Row Count 4 (+ 3) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{Java ist wie jede Programmiersprache sehr gro{\ss}, hat eine riesige Dokumentation und tausende Tutorial-Videos/Bücher! {\bf{Das hei{\ss}t dass man Java nicht "Über das Wochenende" lernen kann!}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Hallo, Welt!}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Das erste Programm in jeder Programmiersprache ist das sogenannte `Hello World`, welches einfach einen Text beim Start des Programmes ausgibt. \newline % Row Count 3 (+ 3) In Java s{\"a}he dies wie folgt aus: \newline % Row Count 4 (+ 1) `class MyClass \{` \newline % Row Count 5 (+ 1) `~ public static void main(String{[} {]} args) \{` \newline % Row Count 7 (+ 2) `~~ \seqsplit{System.out.println("Hello} World");` \newline % Row Count 8 (+ 1) `~ \}` \newline % Row Count 9 (+ 1) `\}` \newline % Row Count 10 (+ 1) In Java muss jede Zeile Code in einer {\bf{Klasse}} sein, in unserem Fall hei{\ss}t Sie: {\bf{MyClass}}. \newline % Row Count 12 (+ 2) Auch hat jedes Programm eine Start-Methode namens {\bf{main()}} \newline % Row Count 14 (+ 2) Was dieses `public static void` und `String{[}{]} args` bei der Methode bedeuted, erfahrt Ihr in "Variablen \& Methoden". \newline % Row Count 17 (+ 3) Mit {\bf{System.out.println({[}Nachricht{]});}} gibt man etwas in die Konsole aus.% Row Count 19 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{Alle Klassen/Methoden sowie andere Fluss-Kontroll Strukturen müssen innerhalb einer {\bf{\{\}}} sein. Alles andere {\emph{(Statements)}} muss ein {\bf{;(Semikolon)}} am Ende haben.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Kommentare}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Kommentare in Java sehen wie folgt aus: \newline % Row Count 1 (+ 1) `// Einzeiliger Kommentar` \newline % Row Count 2 (+ 1) `/* Mehrzeiliger` \newline % Row Count 3 (+ 1) ` * Kommentar` \newline % Row Count 4 (+ 1) ` */` \newline % Row Count 5 (+ 1) `/** Mehrzeiliger Dokumentations-` \newline % Row Count 6 (+ 1) ` * Kommentar` \newline % Row Count 7 (+ 1) ` */`% Row Count 8 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Variablen}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{Variablen speichern den Wert ihres Typen ab. \newline % Row Count 1 (+ 1) Jede Variable hat einen Namen, einen Typen `(zB. String)` sowie ein Wert `(zB. "Hey")`. \newline % Row Count 3 (+ 2) Hier ein Beispiel: \newline % Row Count 4 (+ 1) `String name = "Dave";` \newline % Row Count 5 (+ 1) `int age = 16;` \newline % Row Count 6 (+ 1) `name = 16; ` {\bf{\textgreater{} Fehler: }} Die Variable `name` ist vom Typ String, also kann sie auch nicht auf eine Zahl gesetzt werden!% Row Count 9 (+ 3) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{Primitive Variablen, welche nicht gesetzt (intialisiert) wurden, haben einen gewissen Standart-Wert. (Mei{\ss}t 0) \newline \newline Bei Objekt-Variablen wie `String` oder `Scanner` ist der Standard-Typ {\bf{null}}. \newline D.h. wenn man mit einem Objekt was machen will, welches null ist, wird eine {\bf{NullPointerException}} geworfen.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.59501 cm} x{1.09848 cm} x{2.88351 cm} } \SetRowColor{DarkBackground} \mymulticolumn{3}{x{5.377cm}}{\bf\textcolor{white}{Primitive Datentypen}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{Name}} & {\bf{Gr{\"o}{\ss}e}} & {\bf{Beispiel}} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} byte & 8 bits & Sub-ID / Auswahl / Stack-Gr{\"o}{\ss}e /Alter \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} short & 16 bits & Item-ID \tn % Row Count 5 (+ 1) % Row 3 \SetRowColor{white} int & 32 bits & \tn % Row Count 6 (+ 1) % Row 4 \SetRowColor{LightBackground} long & 64 bits & Zeit-angabe {\emph{(Siehe `System.currentTimeMillis()`)}} \tn % Row Count 8 (+ 2) % Row 5 \SetRowColor{white} \seqsplit{boolean} & 1 bit & Ja/Nein \tn % Row Count 10 (+ 2) % Row 6 \SetRowColor{LightBackground} char & 16 bits unicode & Buchstabe \tn % Row Count 12 (+ 2) % Row 7 \SetRowColor{white} float & 32 bit decimal & Flie{\ss}komma-Zahlen \seqsplit{(Yaw/Pitch-Blickrichtung)} \tn % Row Count 14 (+ 2) % Row 8 \SetRowColor{LightBackground} \seqsplit{double} & 64 bit decimal & Gro{\ss}e Komma-Zahlen \tn % Row Count 16 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}---} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Primitive Operatoren}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\bf{+}} Addition (Zusammen-Rechnen) \newline % Row Count 1 (+ 1) {\bf{-}} Subtraktion (Weg-Rechnen) \newline % Row Count 2 (+ 1) {\bf{/}} Dividation (Wie oft `x` in `y` reinpasst) \newline % Row Count 3 (+ 1) {\bf{*}} Multiplikation (`x` mal `y`) \newline % Row Count 4 (+ 1) {\bf{\%}} Modulo (Rest von `x / y`)% Row Count 5 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{So ziemlich jede Sprache bietet diese Primitiven Rechnungs-Typen. Auf Klammer-Punkt-Strich wird geachtet!} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.89126 cm} x{3.08574 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{String}} \tn % Row 0 \SetRowColor{LightBackground} length() & Gibt die L{\"a}nge der Zeichenkette \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} s.charAt({\emph{index}}) & Gibt den Buchstaben an der Stelle `index` \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} s.substring({\emph{start}}) & Gibt die Zeichenkette mit \seqsplit{`start`-weggeschnittenen} Zeichen. \tn % Row Count 7 (+ 3) % Row 3 \SetRowColor{white} \seqsplit{s.toLowerCase()} & Gibt die Zeichenkette, in der alle Buchstaben klein sind \tn % Row Count 10 (+ 3) % Row 4 \SetRowColor{LightBackground} \seqsplit{s.toUpperCase()} & GIbt die Zeichenkette, in der ALLE BUCHSTABEN GRO{\ss} sind \tn % Row Count 13 (+ 3) % Row 5 \SetRowColor{white} s.indexOf({\emph{c}}) & Gibt den Ort (Index) des ersten Buchstabens namens {\emph{c}} \tn % Row Count 16 (+ 3) % Row 6 \SetRowColor{LightBackground} s.split({\emph{regex}}) & Gibt eine String-Array zurück, wessen Abschnitte durch {\emph{regex}} bestimmt/geteilt wurde \tn % Row Count 20 (+ 4) % Row 7 \SetRowColor{white} s.trim() & GIbt die Zeichenkette ohne Leere-Zeichen zurück \tn % Row Count 22 (+ 2) % Row 8 \SetRowColor{LightBackground} s.equals({\emph{s2}}) & GIbt zurück, ob {\emph{s1}} gleich ist wie {\emph{s2}} \tn % Row Count 24 (+ 2) % Row 9 \SetRowColor{white} s.equalsIgnoreCase({\emph{s2}}) & Gibt zurück, ob {\emph{s1}} gleich ist wie {\emph{s2}} (Gro{\ss}/Kleinschreibung wird nicht beachtet) \tn % Row Count 28 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{String ist ein Datentyp für eine {\bf{Zeichenkette}} in Java, welches schon viele nützliche Funktionen bereitlegt. \newline \newline Ein String kann ganz einfach mit `"{[}Text{]}"` erstellt werden: \newline `String helloWorld = "Hello Welt";`} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Nutzer-Eingabe}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{class NutzerEingabe \{ \newline ~ \newline ~public static void main(String{[}{]} args)\{ \newline ~~// Neue Instanz von "Scanner" erstellen \newline ~~Scanner myScanner = new Scanner(); \newline ~~System.out.println("Gib irgend etwas ein!"); \newline ~~ \newline ~~// Wartet bis der Scanner einen Input bekommt, f{\"a}ngt diesen ab und setzt ihn auf die Variable "line" \newline ~~String line = myScanner.nextLine(); \newline ~~System.out.println("Deine Eingabe: " + line); \newline ~\} \newline \}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{\seqsplit{https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}