东辰安华知识网 东辰安华知识网

东辰安华知识网
东辰安华知识网是一个专业分享各种生活常识、知识的网站!
文章434741浏览52697804本站已运行9224

temp在java中是什么意思(Java里面char定义了这个char temp = 'aaa',为什么不对,到底'u0000'和'uffff

其实temp在java中是什么意思的问题并不复杂,但是又很多的朋友都不太了解Java里面char定义了这个char temp = 'aaa',为什么不对,到底'\\u0000'和'\\uffff'代表具体什么意思啊,因此呢,今天小编就来为大家分享temp在java中是什么意思的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

一、Java里面char定义了这个char temp = 'aaa',为什么不对,到底'\\u0000'和'\\uffff'代表具体什么意思啊

char是字符型,String是字符串型。字面意思就很明白了char只能单引号一个字面或者数字而String用双引号可以是一串的字符组合。。。。。仅字面就可以理解了。。。。下面百度来的书面就如下:char只是一个基本类型,而String是一个类,可以直接引用。比如charc='c';不能直接对c调用方法。Strings="abc";这时可以调用s.charAt(0);等方法,因为String是类,这是就是对象的调用了\u开头的是一个Unicode码的字符,每一个'\u0000'都代表了一个空格.其他的楼主可以查看Unicode表.通常中文在的显示都是被转化为Unicode显示的.Unicode可同时包含65536个字符,ASCII/ANSI只包含255个字符,实际上是Unicode的一个子集。Unicode字符通常用十六进制编码方案表示,范围在'\u0000'到'\uFFFF'之间。\u0000到\u00FF表示ASCII/ANSI字符。\u表示这是一个Unicode值.更正,\u0000代表的应该是NULL,输出控制台是一个空格...

二、如何在Java程序出现异常时输出其文件和行号

使用了如下方法获得异常所在的文件,行号和方法:

StackTraceElementstackTraceElement=ex.getStackTrace()[0];//得到异常棧的首个元素

System.out.println("File="+stackTraceElement.getFileName());//打印文件名

System.out.println("Line="+stackTraceElement.getLineNumber());//打印出错行号

System.out.println("Method="+stackTraceElement.getMethodName());//打印出错方法

程序如下:

publicclassExceptionTest{

publicstaticvoidmain(String[]arg){

try{

thrownewException("ExceptionTest!");

}

catch(Exceptionex){

ex.printStackTrace();

StringstrTemp=ex.getStackTrace().toString();

StackTraceElementstackTraceElement=ex.getStackTrace()[0];

System.out.println("File="+stackTraceElement.getFileName());

System.out.println("Line="+stackTraceElement.getLineNumber());

System.out.println("Method="+stackTraceElement.getMethodName());

}

}

}

输出如下(在Eclipse3.1中):

java.lang.Exception:ExceptionTest!

atExceptionTest.main(ExceptionTest.java:5)

File=ExceptionTest.java

Line=5

Method=main

大家可以看到,输出基本可以满足需求,但是没有ex.printStackTrace();产生的链接效果,如点击ExceptionTest.java:5就可以到达错误处,这里不知道如何处理,那位知道请告知.

然而,上述方法不能应付类反射出现的异常,请大家看如下程序:

publicvoidfetchCommand(StringstrCmmd){

cmmdArgs=strCmmd.split("/s+");

StringclassName="Command"+cmmdArgs[0];

try{

Classcls=Class.forName(className);

cmmd=(Command)cls.newInstance();

}

catch(Exceptionex){

ex.printStackTrace();

//System.out.println(ex.getStackTrace()[0].getLineNumber());///getFileName();

StackTraceElementstackTraceElement=ex.getStackTrace()[0];

System.out.println("File="+stackTraceElement.getFileName());

System.out.println("Line="+stackTraceElement.getLineNumber());

System.out.println("Method="+stackTraceElement.getMethodName());

}

}

当className不是可识别的类名时,输出如下:

commandType01start!

commandType01Length=3

commandType01End!

commandType02start!

commandType02is:Type021234

commandType02End!

File=null//这里找不到文件

Line=-1//行出错

Method=run//方法错

commandType02start!

commandType02is:Type04USARussiaChina

commandType02End!

java.lang.ClassNotFoundException:CommandType04

atjava.net.URLClassLoader.run(UnknownSource)

atjava.security.AccessController.doPrivileged(NativeMethod)

atjava.net.URLClassLoader.findClass(UnknownSource)

atjava.lang.ClassLoader.loadClass(UnknownSource)

atsun.misc.Launcher$AppClassLoader.loadClass(UnknownSource)

atjava.lang.ClassLoader.loadClass(UnknownSource)

atjava.lang.ClassLoader.loadClassInternal(UnknownSource)

atjava.lang.Class.forName0(NativeMethod)

atjava.lang.Class.forName(UnknownSource)

atMediation.fetchCommand(Mediation.java:16)//这里倒是对了

atInlet.main(Inlet.java:11)//这里也对

看来StackTraceElementstackTraceElement=ex.getStackTrace()[0];还要继续挖掘.

经跟踪发现,现在用这个办法可以完全搞定:

StackTraceElementstackTraceElement=ex.getStackTrace()[ex.getStackTrace().length-1];

System.out.println("File="+stackTraceElement.getFileName());

System.out.println("Line="+stackTraceElement.getLineNumber());

System.out.println("Method="+stackTraceElement.getMethodName());

这里的变化是将ex.getStackTrace()[0]修改成了ex.getStackTrace()[ex.getStackTrace().length-1],因为只有数组的最后一个元素才有我想要的信息,原先的ex.getStackTrace()[0]只是恰巧数组的最后一个元素就是首个元素而已.

关于temp在java中是什么意思,Java里面char定义了这个char temp = 'aaa',为什么不对,到底'\\u0000'和'\\uffff'代表具体什么意思啊的介绍到此结束,希望对大家有所帮助。

赞一下
上一篇: sm医学是什么意思(时空英文怎么写,缩写)
下一篇: staircase是什么意思(starecase翻译)
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏