日期:2014-05-20  浏览次数:20962 次

Linux下java使用UTF-16编码造成系统资源耗尽后死机?
只是一个很简单的例子,却造成了系统的资源耗尽,而无法在运行下去,我是用Eclipse来进行编译的,如果在运行中停掉就没有事?在虚拟机下面进行的使用的运行环境也不是JDK
请各位帮忙指教下如何解决这个问题,在此感谢,下面是贴上的代码:

public   class   test   {
public   static   void   main(String   args[])   throws   Exception   {
byte   b[]   =   new   byte[2];
b[0]=3;
b[1]=-33;
System.out.println( "string: "+new   String(b,   "UTF-16 "));
}
}

------解决方案--------------------
输出:
string:?
------解决方案--------------------
这太难说了
你的代码没有问题,按理不会出现资源耗尽呀

每次都是这样吗?你是怎么知道是资源耗尽的呢?

------解决方案--------------------
你把打印去掉,或者换成
String str=new String(b, "UTF-8 ");
System.out.println( "length: " + str.length());
看看
------解决方案--------------------
byte b[] = new byte[2];???
------解决方案--------------------
win下有这样的情况吗?我也是linux,不过linux下的标准编码是utf-8倒是真的
------解决方案--------------------
不要理那个xiaoyetao的ID,整天捣乱。

没有看出什么问题,没有实机环境,实在不知道问题出在哪里。lz
> 在虚拟机下面进行的使用的运行环境也不是JDK
是什么呢
------解决方案--------------------
也许你的linux不支持utf-16字符集呢