Skip to content

Commit 49df593

Browse files
authored
Merge pull request #169 from bowbahdoe/develop
#168
2 parents 89d95de + 9203722 commit 49df593

File tree

7 files changed

+56
-6
lines changed

7 files changed

+56
-6
lines changed

.vscode/settings.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"files.watcherExclude": {
3+
"**/target": true
4+
}
5+
}

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ mix thereof. None of them are actually needed to understand the mechanics of and
4343
behind what we would call "object oriented" or "functional" techniques. They certainly don't
4444
work as justification for adding getters and setters to every class.
4545

46-
Feel free to join our [discord server](https://discord.gg/together-java-272761734820003841)
46+
Feel free to join our [discord server](https://discord.gg/xSdQBHfTun)
4747
if you have any questions, or require assistance with the project.
4848

4949
## Getting started

book.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ default-theme = "light"
1919
preferred-default-theme = "light"
2020

2121
[output.html.fold]
22-
enable = false # whether or not to enable section folding
23-
level = 0 # the depth to start folding
22+
enable = true # whether or not to enable section folding
23+
level = 1 # the depth to start folding
2424

2525
[output.html.playground]
2626
editable = true

src/SUMMARY.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1313,6 +1313,51 @@ mikamoilanen — 4:01 PM
13131313
Another solution creates a nice opportunity to introduce creating your own datastructure for more efficient solution: Build a tree out of the codes, where each number has N childs, and traverse throught that tree number-by-number of the phonenumber
13141314
THEN you could even introduce packing the data as bitvectors in order to have even more compact data structure
13151315
1316+
* string processing chapter with string formatting, string splitting, StringJoiner and friends
1317+
* varargs (this might actually be important since we are hinting at JDK methods using varargs occasionally, e.g. List.of and similar)
1318+
* marker interfaces (Interfaces II)
1319+
* anonymous class
1320+
* BigDecimal / BigInteger
1321+
* enums can have fields, constructors and methods as well (a good example that often needs this is a DIRECTION enum (up/down/left/right) with fields for the label/string and the keyboard key or an arrow symbol in either direction)
1322+
* sealed classes and interfaces
1323+
* try-catch-finally. so far the book only talks about catch but leaves out finally
1324+
* try-with-resources and Closeable/AutoCloseable (maybe motivated with Files.lines as example, but that requires streams...)
1325+
* Comparators and Comparable
1326+
* Random, ThreadLocalRandom.current(), seeding, SecureRandom, nextGaussian() and concept of standard deviation and mean, (honorable mention Math.random())
1327+
* UUID
1328+
* Wildcards, bounded wildcards and PECS (the book has a very brief mention of Foo<?> but doesnt go into detail and also doesnt talk about bounds "? extends", "? super" and syntax "? extends A & B & C")
1329+
* type tokens "Class<Foo>" (niche topic but maybe worth mentioning somewhere in the reflection chapter)
1330+
* sorting (List.sorted, Collections.sort, Arrays.sort)
1331+
* Queues (ArrayDeque) and PriorityQueue (needs comparing beforehand)
1332+
* extra chapter on some algodat (trees, graphs, DFS/BFS, mergesort/quicksort, binary search, Tries, potentially also time to make ur own linkedlist and ring buffer/circular array)
1333+
* multithreading (Thread, Runnable, Thread-Pools with ExecutorService, Future-API with CompletableFuture)
1334+
* scheduling and repeated tasks with ScheduledExecutorService
1335+
* short circuit operators &| are never mentioned (probably for good, but perhaps they deserve a small annotation somewhere)
1336+
* Optional (also OptionalInt, ...)
1337+
* Clone API (dont use), copy constructor
1338+
* serialization API (dont use), json with jackson/gson/whatever
1339+
* WeakReference (for use in caches)
1340+
* class loading/loaders
1341+
* environment variables (niche but important for some topics)
1342+
* process api, new ProcessBuilder etc
1343+
* profiling, time measuring on the jvm, mentioning jmh
1344+
* shutdown hooks, "catch/log all"
1345+
* RandomAccessFile (niche topic but when u need it its good to know that it exists)
1346+
* concept of buffering (and BufferedReader/Writer) and flushing
1347+
* useful stuff from the io-stream-api such as BufferedReader/Writer, ByteArrayOutputStream (baos), ByteArrayInputStream (bais)
1348+
* bits and bytes, bit-wise ops (&|^, shifts) and related topics such as BitSet, and EnumSet as readable bit-mask alternative
1349+
* javas Properties class. its a badly designed class but i think its a good starter for simple config-files (when ur not yet ready for json/yaml/...)
1350+
* IDEs
1351+
* junit
1352+
* general intro talk about memory/space and garbage collection on the JVM
1353+
* chapter about "design patterns", even if its just sth like a disclaimer "u might hear about this and that design pattern. can be useful yadayada but dont overdo. learn pros/cons, put it into ur toolbox, use ur own judging." plus maybe an example of a very common pattern plus an antiexample of overusing/abusing that pattern in a way its not helpful (maybe a builder pattern? or a factory...problemfactory joke lol). opportunity to talk about some that people will definitely hear or encounter eventually, such as: DRY, KISS, YAGNI, SOLID, singletons, factories, observer/listener, proxy, delegate, builder
1354+
1355+
for appendix and extra stuff:
1356+
* http
1357+
* sql, jdbc
1358+
* javafx/swing/awt
1359+
* logging (SLF4J)
1360+
13161361
-->
13171362

13181363

src/floating_point_numbers/subtraction.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ You can subtract any two `double`s using the `-` operator.
55
```java
66
~void main() {
77
double x = 5.1;
8-
// y will be 4.1
8+
// y will be -4.1
99
double y = x - 9.2;
1010

1111
IO.println(x);

src/text_editors/vscodium.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
There are a lot of text editors people use to write programs.
44

5-
For the purposes of this book I am going to reccomend you use
5+
For the purposes of this book I am going to recommend you use
66
one called "[VSCodium](https://vscodium.com/)."
77

88
If you have already been introduced to a different text editor

theme/index.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@
154154
{{/if}}
155155

156156

157-
<a target="_blank" href="https://discord.gg/together-java-272761734820003841" title="Ask a question" aria-label="Ask a question">
157+
<a target="_blank" href="https://discord.gg/xSdQBHfTun" title="Ask a question" aria-label="Ask a question">
158158
<i id="ask-a-question-button" class="fa fa-question"></i>
159159
</a>
160160
</div>

0 commit comments

Comments
 (0)