A guide to Java programming that grows with his tasks. For the participants of the module "Software Technology: Java" of the study processes Information Processing and Media Informatics at the IDH ( I Nstitut for D IGital H Umanities, University of Cologne) and for everyone interested! ?
Work in progress. ? This learning and orientation resource is far from being complete. But that's okay. If you notice that something important is missing or inadequate, then open an issue or wear your own changes!
Content - jump to the table of contents! ? What is this - or what is it not? ? Contributing - or: How can I participate here? ? ️ Reading view -if you accidentally ended up in the repository! Glossar - General terminology of programming (important)! ? Link list -further recommended (online) resources! ? Java Naming Conventions ... want to be followed!
The individual subject areas are briefly summarized here with
Schlagworten. The respective heading linked to the document with all content on the corresponding topic.
JDKEclipse IDEDownloadInstallation...
Warum Java?Warum nicht?BesonderheitenJava PlatformJava EcosystemPackagesHello World!...
IDEWarum Eclipse?WorkspacesViewsEditorDie wichtigsten FunktionenImportExportConsoleAusführen von ProgrammenAutomatisch generierter Code...
main method
Das erste ProgrammWas ist das alles?main
package and import
PackagesPaketePaket-Pfadepackageimport
// inline/* multi-line */
Was ist das?Syntaxnaming conventionsTypisierung...
primitive Datentypenkomplexe Datentypenbyteshortintlongfloatdoublebooleanchardefault-WerteWrapper-Klassen...
Typumwandlungimplizitexplizitupcastdowncastcast-OperatorCasting bei komplexen Datentypen...
RechenoperatorenVergleichsoperatorenlogische OperatorenZuweisungsoperatoren+-*/%++--==!=><>=<=&&||=+=-=/=*=%=&=|=...
die Klasse "String"Literalsspecial charactersUnveränderbarkeit von StringsUTF-16String Formatting...
RückgabewerteParameter/ArgumentereturnÜberlagerungJava ist immer pass-by-value...
ifelse:? (Ternary-Operator)switch
whiledo-whileforfor-each
DatenstrukturenDeklarationTypisierungInitialisierungArray LiteralsZugriffMehrdimensionale Arrays...
ErrorExceptiontrycatchfinallytry-with-resourcesthrows...
Wozu?/**@param@return<code></code>best practices...
DefinitionNutzenBeispieleKlasseObjektKuchen...
new-OperatorInstanzvariablenInstanzmethodenZugriffs-/Sichtbarkeitsmodifiziererprivate(default)protectedpublicthisGetterSetterKonstruktoren...
staticKlassenvariablenstatische Methoden...
Wozu?Terminologieextendssuperinstanceof-OperatorÜberschreiben von Methoden...
final
finalfinale Variablenfinale Klassenfinale MethodenKonstanten in Java...
toString()Objekt-IdentitätObjekt-Gleichheitequals()hashCode()Der Vertrag zwischen equals() und hashCode()...
abstrakte Klassenabstrakte Methodenabstract...
InterfacesErweiterung von InterfacesDefault-MethodenStatische Methoden in Interfaces...
Anonyme KlassenInnere Klassen...
StreamsBufferingReaderWriterObjektserialisierungUser-Input über Stdin...
verkettete Listenzweifach verkettete ListenbinaryBinärbäumebinäre Suchbäumesiehe auch "Collections Framework"!...
Iterable and Iterator
IterableIteratorBezug zu for-eachImplementierung...
Was?Wozu?<Syntax>Typsicherheit trotz generischer ProgrammierungGültigkeit bei Kompilierung und zur Laufzeit...
AufbauListSetMapObjekt-Identität im Kontext von HashMaps/HashSets...
Enums...
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
ComparableComparatorCollections.sort()Sortieralgorithmen...
ProzessThreadRunnablesynchronizedvolatile...
Was?Wozu?Wie werden sie eingebunden?MavenGradle...
Wozu?Schreiben von Unit-TestsTest-driven-developmentJUnit...
... go the following topics. However, this does not mean that they are not important. If you want to deepen or add to what you have learned, you can be guided by these recommendations:
? Introduction to java 8 streams (baeldung.com)? The Java 8 stream api tutorial (baeldung.com)? String Operations with Java Streams (baeldung.com)? Java stream api (tutorials.jenkov.com)
? Lambda Expressions (docs.oracle.com)? Java Functional Interfaces (BeginnersBook.com)? Lambda Expressions and Functional Interfaces: Tips and Best Practices (baeldung.com)
? Static and Default Methods in Interfaces in Java (baeldung.com)? Default and Static Methods in Interfaces in Java 8 (codenuclear.com)
That's all. Until now! How about your contribution ?
Thanks for working on this repository deserve the following hardworking participant (emoji legend):
BKIS ? ? ? | Nicolas David Werner ? | Lelalue ? | Mkamphausen ? | Julian Kamphausen ? | Demirro ? |
Valeria Gavrilova ? | jsprings ? | Sandeep Mishra ? |
This project follows the All-Contributors specification. Contributions (contributions) of all kinds are welcome and are listed at this point as above!