java到底有多强? 我用c很多年了,java就做过applet,在用java跟c的sock通讯中,数据类型的转换一直不知道怎样实现,怎样将byte[]转换为Integer或Double?为什么在java中做个类型转换这么难? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个OO, 一个OP ,转换思想是最重要的!是不是要在java中转换String s = new String(b);int i = Integer.parseInt(b); double d = Double.parseDouble(s); double d = Double.parseDouble(b); //SRY java相对于c 无法直接处理底层,还有就是速度可能会慢些,很微小,但在网络上更有优势 java 很强不,是 "相当" 的强 类型转换请参阅:java.io.DataInputStream 在 java 中,一个头疼的问题就是编码,字符,字节等问题如果搂主要深入 java 的话,推荐2篇基础文章:http://www.regexlab.com/zh/encoding.htmhttp://www.regexlab.com/zh/regref.htm interpb(曾曾胡):我希望转换的是binary数据而不是字符串数据。 binary的话,估计麻烦就大了,c++是随着平台和cpu,它的原生类型不同的编译器有不同的实现,java的integer全是32bits的 很简单呀(4个字节的数组static int bytes2int(byte[] b){ //byte[] b=new byte[]{1,2,3,4}; int mask=0xff; int temp=0; int res=0; for(int i=0;i<4;i++){ res<<=8; temp=b[i]&mask; res|=temp; } return res;} static byte[] int2bytes(int num){ byte[] b=new byte[4]; //int mask=0xff; for(int i=0;i<4;i++){ b[i]=(byte)(num>>>(24-i*8)); } return b;} long和int类似,至于dobule就更简单了八个字节的数组 byte[]先转为long然后Double.longBtisToDouble(long bits) 就可以了java对字节和位的处理实际上比c更强一些(多了一个无符号右移>>>)虽然java不存在无符号数,丝毫不影响它的字节处理能力,如果我们只当作字节,有没有符号实际上没有意思. 另外一点,java中的数字存储都是高位在前的!在java中不存在不确定因素,没有平台依赖型 谢谢了“treeroot(旗鲁特) ”。这个方法倒是知道,但是不是会很慢,大数据量的时候? 不过c语言确实更简洁char[] bs={2,23,3,3};int a= *((int *)bs);可那这也是指针的魅力吧 to: haizhiyu(海之鱼) 这种是java中唯一的实现方式,当然也是最快的实现方法,这种位操作当然不会很慢.所有的java序列化实现(包括DataInputStream)都是这样实现的.我也很认同这种方式会比c语言慢一些(因为c语言是作为一个字长来处理的,java至少要设计到几次移位操作,实际上java中把这些数字的连续存储信息丢弃了)这也和内存模型有关,c是静态非配内存,java是动态分配内存,当然不可能像c那样知道每个字节的存储位置了. 对了,如果你是在写网络程序,瓶颈是在网络传输,完全不用java处理的效率问题.相对于网络传输,再慢几十倍也是可以忽略不计的. java能让公鸡下蛋!母牛产奶! 据说jre6执行效率提高了好多,不知道是不是真的。很期待。 Java的优势:1 跨平台2 应用服务器3 设计模式4 其他 java强不强,我不知道,因为我毕业到现在一直用java,所以也无从比较,但我只知道java很慢,而且是相当慢,程序越大,outofmemory的机会越大,不过也不错,我可以在运行程序的时候休息会,不管java怎么样,早晚有一天会有一个新的打败它,只是我怕我退休都看不到了,因为我快不想写程序了…… http://www.jiuso.com/freeweb/[email protected] 免费个人空间磁盘空间:300M,支持语言:ASP,ASP.NET,FTP,FSO,IIS并发数:300,数据库:ACCESS Java想做什么软件就做什么软件,就是强。 谢谢treeroot(旗鲁特),java是一门很优美的语言,从语法上我很喜欢它。而且java也越来越强大,但是java已经越来越滞重。当然,跨平台是它最大的优势,而且它的思想以及对oop的体现确实是让人喜欢的一种语言。 关于timer的问题 求助。 JPanel间得值的问题 关于hashmap的同步问题 求Java2核心技术 卷一:基础知识,哪里下载阿 怎么将JTextField设置成JLabel的形式 散分100 如何用JAVA写一个检测一台主机的某个端口是否开放的小程序? 求助,急用 sun.net.ftp.FtpClient是哪里的包来的?哪里可以取得? 如何检测有没有SELECT到符合条件的结果。 谁知道用installshield或installanywhere怎么制作一个安装程序.要求安装了程序a接着安装程序b... 新手求教!帮看一下这段代码,怎么老是出错!
int i = Integer.parseInt(b);
double d = Double.parseDouble(s);
如果搂主要深入 java 的话,推荐2篇基础文章:
http://www.regexlab.com/zh/encoding.htm
http://www.regexlab.com/zh/regref.htm
static int bytes2int(byte[] b)
{
//byte[] b=new byte[]{1,2,3,4};
int mask=0xff;
int temp=0;
int res=0;
for(int i=0;i<4;i++){
res<<=8;
temp=b[i]&mask;
res|=temp;
}
return res;
} static byte[] int2bytes(int num)
{
byte[] b=new byte[4];
//int mask=0xff;
for(int i=0;i<4;i++){
b[i]=(byte)(num>>>(24-i*8));
}
return b;
}
八个字节的数组 byte[]先转为long
然后
Double.longBtisToDouble(long bits) 就可以了java对字节和位的处理实际上比c更强一些(多了一个无符号右移>>>)
虽然java不存在无符号数,丝毫不影响它的字节处理能力,如果我们只当作字节,有没有符号实际上
没有意思.
在java中不存在不确定因素,没有平台依赖型
char[] bs={2,23,3,3};
int a= *((int *)bs);
可那这也是指针的魅力吧
这种是java中唯一的实现方式,当然也是最快的实现方法,这种位操作当然不会很慢.
所有的java序列化实现(包括DataInputStream)都是这样实现的.我也很认同这种方式会比c语言慢一些(因为c语言是作为一个字长来处理的,java至少要
设计到几次移位操作,实际上java中把这些数字的连续存储信息丢弃了)
这也和内存模型有关,c是静态非配内存,java是动态分配内存,当然不可能像c那样知道
每个字节的存储位置了.
相对于网络传输,再慢几十倍也是可以忽略不计的.
1 跨平台
2 应用服务器
3 设计模式
4 其他
免费个人空间
磁盘空间:300M,支持语言:ASP,ASP.NET,FTP,FSO,IIS并发数:300,数据库:ACCESS