VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1430|回复: 12

Linux下java使用UTF-16编码造成系统资源耗尽后死机?

[复制链接]

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-2-22 21:30:01 | 显示全部楼层 |阅读模式
只是一个很简单的例子,却造成了系统的资源耗尽,而无法在运行下去,我是用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"));
        }
}
回复

使用道具 举报

0

主题

7

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-5-4 18:00:02 | 显示全部楼层
public static void main(String[] args) {
                // TODO Auto-generated method stub
                byte b[] = new byte[2];
                b[0]=3;
                b[1]=-33;
                try{
                System.out.println("string:"+new String(b, "UTF-16"));
                }
                catch(Exception e)
                {
                        e.printStackTrace();
                }

        }
回复

使用道具 举报

0

主题

7

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-5-4 18:30:01 | 显示全部楼层
输出:
string:?
回复

使用道具 举报

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-5-5 15:00:01 | 显示全部楼层
只要能够输出就都没有多大问题,主要是因为Linux下会造成系统的资源耗尽,然后变成死机
回复

使用道具 举报

0

主题

18

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
发表于 2020-5-5 15:15:01 | 显示全部楼层
这太难说了
你的代码没有问题,按理不会出现资源耗尽呀

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

使用道具 举报

0

主题

18

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
发表于 2020-5-5 20:45:01 | 显示全部楼层
你把打印去掉,或者换成
String str=new String(b,"UTF-8");
System.out.println("length:" + str.length());
看看
回复

使用道具 举报

0

主题

18

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-5-6 06:15:02 | 显示全部楼层
byte b[] = new byte[2];???
回复

使用道具 举报

0

主题

13

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
发表于 2020-5-6 15:00:01 | 显示全部楼层
win下有这样的情况吗?我也是linux,不过linux下的标准编码是utf-8倒是真的
回复

使用道具 举报

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-5-7 01:00:02 | 显示全部楼层
使用UTF-8就不会产生错误,系统耗尽是因为系统根本已经是死机了,鼠标都很难移动,是每一次,但是换了另外一个编译器就没有这个问题
回复

使用道具 举报

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-5-7 02:30:01 | 显示全部楼层
回复zt103b,这句定义byte b【】=new byte【2】;
有什么问题吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表