java console输出原理

avi9111 2014-05-09 01:29:49
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (InstantiationException e2) {
e2.printStackTrace();
} catch (IllegalAccessException e2) {
e2.printStackTrace();
} catch (ClassNotFoundException e2) {
e2.printStackTrace();
}


rest框架写的一个web 服务
1)expeption.printStackTrace的原理是?
2)为什么System.err可以在Console输出,而System.out没有输出?
3)为什么printf用不了?什么情况下可以用printf
...全文
1454 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
avi9111 2014-05-10
  • 打赏
  • 举报
回复
引用 4 楼 huanglin02 的回复:
引用 2 楼 u012724379 的回复:
例如:
System.out.printf("%.2f\n",23.456);
+1
就是根本没有输出啊(除非是我漏了看了) e.printStackTrace却有输出 看源码就知道了,用了是System.err 为什么err有输出,out确没有?
小律律 2014-05-09
  • 打赏
  • 举报
回复
引用 2 楼 u012724379 的回复:
例如:
System.out.printf("%.2f\n",23.456);
+1
岁月之梦 2014-05-09
  • 打赏
  • 举报
回复
查查jdk api 如下 StackTraceElement类提供的方法 1:equals(Object obj) 如果指定的对象是另一个 StackTraceElement 实例,并且该对象表示的执行点与该实例的相同,则返回 ture。 2:getClassName() 返回类的完全限定名,该类包含由该堆栈跟踪元素所表示的执行点。 3:getFileName() 返回源文件名,该文件包含由该堆栈跟踪元素所表示的执行点。 4:getLineNumber() 返回源行的行号,该行包含由该堆栈该跟踪元素所表示的执行点。 5:getMethodName() 返回方法名,此方法包含由该堆栈跟踪元素所表示的执行点。 6:isNativeMethod() 如果包含由该堆栈跟踪元素所表示的执行点的方法是一个本机方法,则返回 true。 7:hashCode() 返回此堆栈跟踪元素的哈希码值。 8:toString() 返回表示该堆栈跟踪元素的字符串。 这里面就包括了 你说的 1 2 3,并且很详细,节省了你的 print sysout等方法
-江沐风- 2014-05-09
  • 打赏
  • 举报
回复
例如:
System.out.printf("%.2f\n",23.456);
小灯光环 2014-05-09
  • 打赏
  • 举报
回复
printf一般是在c语言用,java不用这个,用System.out.println(),println有一系列重载方法,可以将各种类型的参数输出到控制台。 java中的System.out.printf(String format,Object...args)貌似是用来格式化的,用的很少。 printStackTrace就是将抛出的Throwable对象追踪的堆栈的异常信息打印到控制台,没有什么值得研究的原理。 printStackTrace的源码很简单:

 public void printStackTrace() {
        printStackTrace(System.err); 
    }

 public void printStackTrace(PrintStream s) {
        synchronized (s) {
            s.println(this);
            StackTraceElement[] trace = getOurStackTrace();
            for (int i=0; i < trace.length; i++)
                s.println("\tat " + trace[i]);

            Throwable ourCause = getCause();
            if (ourCause != null)
                ourCause.printStackTraceAsCause(s, trace);
        }
    }

System.err和System.out的区别你查一下,建议你把Java基础再好好复习一遍。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧