菜鸟关于转义字符/r与/n的一些有关问题

初学者关于转义字符/r与/n的一些问题。
我是一个初学java的新人,最近学到转移字符这里,碰到了几个关于/r与/n的问题。(我现在用的是记事本编写代码。DOS窗口进行编译与输出)
问题1:
因为我理解不了/r换行的意思,所以进行了一些实验、
情况1
System.out.println("hello\rjava");
输出结果为:javao
情况2
System.out.println("hello\rj");
输出结果为:jello
情况3
System.out.println("hello\rjavabcd");
输出结果为javabcd

参照这几个结果,我认为/r就是相当于
“把输入光标调到这行最前,然后开始输出后面的内容(以上例子中的java,j,javabcd),并覆盖/r之前的内容(以上例子中的hello).当后面的字符串长度大于前面的字符串长度时,会全覆盖,输出结果为后面的字符串(情况3);如果后面的字符串长度小于前面的字符串长度时,会将后面的字符串全部输出,同时输出前面字符串未被覆盖的部分(情况1和情况2)”


我想问下我这个看法正确么?

问题2:
System.out.println("hello\r\njava");
输出结果为:hello
                        java
System.out.println("hello\r\njava");
输出结果为:hello
                        java

这两条代码输出结果并没有什么不同,但是我在网上看到说“windons系统下一个完整的换行回车是/n/r,而且顺序不能反过来”
我想问下这个说法对不对。

------解决思路----------------------
不同系统对这些字符的解释也是不同
/r: carriage return在dos下是回到行首

Windows系统里面,每行结尾是“<换行><回车>”,即“\n\r”没错
------解决思路----------------------
http://www.studyofnet.com/news/285.html