1,在java中

这些都可以表示换行,并且移至下一行的行首,比如在console中打印,不会有任何问题,当然这与java的特性有关,即平台无关性。比如:

	  String s1 = "12443\rkdjf";
		String s2 = "12443\nkdjf";
		String s3 = "12443\r\nkdjf";
		System.out.println(s1);
		System.out.println(s2);
		System.out.println(s3);

结果如下:

<img src="https://img-blog.csdn.net/20160425174622767?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

2,如果是与本地方法有关,即java中调用了与操作系统相关的api,比如io操作,那么就有区别,与具体的操作系统有关。
windows下是 \r\n; 
linux/unix下是\n; 
mac下是\r

win下之所以是\r\n,是由于打印机的原因。

那么如果要向win下的文本写入换行,必须用\r\n。其余两个都不会换行

	  String s1 = "12443\rkdjf";
		String s2 = "12443\nkdjf";
		String s3 = "12443\r\nkdjf";
		System.out.println(s1);
		System.out.println(s2);
		System.out.println(s3);
		PrintStream ps = null;
		try {
			ps = new PrintStream(".\\"+ "testStringNextLine.txt");
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		ps.print(s1);
		ps.print(s2);
		ps.print(s3);
		ps.close();


结果:

"\r","\n"与 "\r\n"_io操作
只有s3才换行,前面两个都未换行。