1.Java PrintWriter构造方法的问题
2.javaç½ç»ç¼ç¨ PrintWriter
3.解析System.outoprinlt();输出语句的奥秘
Java PrintWriter构造方法的问题
print()中是没有调用flush()的!你用print()就必须在后面用flush()函数
而println()中调用了flush()的 当你创建对象的时候设为自动刷新true的话 println就能输出而 设为false都不行的
//print 源代码
public void print(String s) {
if (s == null) {
s = "null";
}
write(s);
}
//println源代码
public void println() {
newLine();//这里调用了newLine();
}
//newLine源代码
private void newLine() {
try {
synchronized (lock) {
ensureOpen();
out.write(lineSeparator);
if (autoFlush)//这里就调用了 刷新缓冲流了
out.flush();
}
}
catch (InterruptedIOException x) {
Thread.currentThread().interrupt();
}
catch (IOException x) {
trouble = true;
}
}
javaç½ç»ç¼ç¨ PrintWriter
ç½ç»ç¼ç¨ è¾å ¥è¾åºæµé½ç¨äºè¿å¶æµåï¼å符æµä¼åºé®é¢ï¼åftpçå½ä»¤å·®ä¸éçæ¦å¿µï¼å¦æç¨å符çï¼å¯è½ä¼åºé®é¢ï¼å¦æç¨äºè¿å¶æµè¯å®ä¸ä¼é
解析System.outoprinlt();输出语句的奥秘
解析System.out.println();输出语句的奥秘
1. 示例代码:
Object a;
System.out.println(a);
该语句调用java.lang.System类的out字段,out是智慧校园源码价格一个PrintStream类型的引用变量。原始代码在java.lang.System中为:
public final static PrintStream out = null;
出是“标准字节输出流”。
2. PrintStream类:
PrintStream是ios 360越狱源码“打印流”,称为“字节输出流”。成都源码时代解析有另一种打印流,即PrintWriter,称为“字符输出流”。
3. 打印Object:
调用PrintStream类的方法打印Object,并在行末结束。
4. 方法源码:
public void println(Object x)。
解析:
依赖java.lang.Thread类中的长线套装指标源码public static Thread currentThread()方法。
该方法返回当前正在执行的线程对象引用。
中断线程。凌空天行源码
执行流程如图所示。
代码中出现的synchronized (this) {
}
涉及并发编程中的“锁”问题。