Question: When I construct a new `BufferedReader` it is providing me a buffer of 8192 characters. What is the logic/reason behind this?

```
8192 = 2 to the power of 13

```

Answer: 
8192, as you said, is 2^13. The exact reason for this number being the default is hard to come by, but I'd venture to say it's based on the combination of normal use scenarios and data efficiency. You can specify a buffer size of whatever you want, though, using a different object constructor.

```
BufferedReader(Reader in, int sz)

```

Creates a buffering character-input stream that uses an input buffer of the specified size.

<https://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html>
and [BufferedReader default buffer size?](https://stackoverflow.com/questions/16973843/bufferedreader-default-buffer-size) will provide further insight.
8192 is 2^13 and also reveals much information regarding the RIGHT v WRONG encoded in all we do. If one takes away or adds to the author intent, he modifies and therefore corrupts the entire thing. Try to add or take away from something perfect... good luck!