- 浏览: 367697 次
- 来自: 北京
文章分类
- 全部博客 (237)
- XML (6)
- JavaSE (39)
- Junit (1)
- Maven (10)
- JavaScript (12)
- JavaEE (16)
- HTML5 (10)
- java多线程 (8)
- Hibernate (30)
- Java反射 (3)
- Spring (11)
- Struts (1)
- svn (2)
- linux (12)
- 代码实例 (1)
- 设计模式 (1)
- UML (1)
- javassist (1)
- Oracle (3)
- Hibernate异常 (9)
- DWR (6)
- Java泛型 (2)
- SpringMVC (11)
- Dbunit (3)
- github (2)
- Algorithm (1)
- zTree (1)
- jquery (7)
- freemarker (4)
- mysql (5)
- ffmpeg (1)
- 编码 (1)
- lucene (15)
- hadoop (1)
- JVM (1)
- Regular Expressions (5)
- myeclipse (1)
- 爬虫 (7)
- 加密 (3)
- WebService (2)
- Socket (2)
- Windows (1)
最新评论
-
wxpsjm:
好直接
HV000030: No validator could be found for type: java.lang.Integer. -
wxhhbdx:
学习了,对新手来说很不错的教程。
SpringMVC入门 (二) 数值传递 -
xgcai:
正好在学dwr
DWR入门 (二)用户实例
今天看到别人使用一个方法 ->String.indexOf(int ch),
然后被Sonar提示说String.indexOf(char) is faster than String.indexOf(String).
我想去测试一下是不是这样, 结果写的时候发现String.indexOf只有两种参数格式,如下:
这里没有显示char类型参数。
但是测试了一下确实是可以的。
于是研究了一下,有了以下代码:
这些其实都是JVM自己进行转换的,和JDK无关。 通过debug模式是无法看到这一转换过程的。
至于为什么char比String速度快,原因很简单。
一方面是char类型的东西都被直接存储到了虚拟机的栈内存中,提取很快。
另一方面,String这个东西本质上是一个引用对象,数据应该是在堆内存吧(这块不太清楚)。
它包含了几个元素:
A character array ->一个char数组
An integral offset ->一个整数值表示起始(offset)
An integral character count ->一个整数表示char数量
An integral hash value ->一个整数哈希值
(这个在[url]http://stackoverflow.com/questions/8190517/why-char-performs-better-than-string-java看到的。 debug模式也可以看到。)
[/url]
这东西操作起来会比char慢是必然的。
然后被Sonar提示说String.indexOf(char) is faster than String.indexOf(String).
我想去测试一下是不是这样, 结果写的时候发现String.indexOf只有两种参数格式,如下:
这里没有显示char类型参数。
但是测试了一下确实是可以的。
于是研究了一下,有了以下代码:
char c1='a'; int i1=97; System.out.println(c1==i1); //true char c=97; System.out.println("c= "+c ); //a System.out.println((int)c); //97 int a='a'; System.out.println((int)a); //97
这些其实都是JVM自己进行转换的,和JDK无关。 通过debug模式是无法看到这一转换过程的。
至于为什么char比String速度快,原因很简单。
一方面是char类型的东西都被直接存储到了虚拟机的栈内存中,提取很快。
另一方面,String这个东西本质上是一个引用对象,数据应该是在堆内存吧(这块不太清楚)。
它包含了几个元素:
A character array ->一个char数组
An integral offset ->一个整数值表示起始(offset)
An integral character count ->一个整数表示char数量
An integral hash value ->一个整数哈希值
(这个在[url]http://stackoverflow.com/questions/8190517/why-char-performs-better-than-string-java看到的。 debug模式也可以看到。)
[/url]
这东西操作起来会比char慢是必然的。
发表评论
-
Socket编程的HelloWorld实例
2014-11-07 15:05 864public class Client { ... -
ImageIO宋体出现小方框的解决
2014-11-03 16:34 887http://www.blogjava.net/yuanqix ... -
ArrayList根据条件+for循环批量删除的方法
2014-09-23 11:39 2684场景如下: ArrayList<Obj> list ... -
Java内部类的实例化
2014-08-06 15:51 1007class A{ getInstance(){ ... -
通过Thread.sleep把任务平均分配给线程按顺序执行的小例子
2014-07-22 10:46 1038package com.lj.test.JavaSe4; ... -
输入两个整数, 计算百分比
2014-07-21 18:01 1436public static String getPercen ... -
timer cancel方法的一个小实例
2014-07-21 12:14 1105package com.lj.timer; import ... -
通过Calendar获取上个月的最后一天
2014-06-26 12:11 2830Calendar cal=Calendar.getI ... -
通过BigInteger进行数字进制的相互转换
2014-06-24 11:09 25051. 十六进制转换为十进制 BigInteger deci ... -
[转]RSA实例
2014-06-18 17:27 881package com.lj.rsa; import j ... -
[转]sun.misc.BASE64Encoder找不到jar包的解决方法
2014-06-18 15:43 9191.右键项目-》属性-》java bulid path-》jr ... -
空Object转换String的陷阱
2014-06-17 15:45 777Object a=null; String b ... -
Java Convert Long to Date
2014-06-16 18:06 739问题: I have list with long value ... -
[转]JAVA中List&Set转换
2014-06-07 14:23 493JAVA中List&Set转换 list = new ... -
aes加密时的Illegal key size or default parameters
2014-06-06 14:21 3827KeyGenerator kgen = KeyGenerat ... -
String.replaceLast()
2014-06-03 16:02 1064http://stackoverflow.com/questi ... -
通过正则表达式来获取json数值
2014-05-23 11:39 13private String getJsonValue(Str ... -
java找不到或无法加载主类
2014-05-19 13:21 1249用CMD运行java +类名, 居然碰到这个问题。 编译是没有 ... -
Java转义字符笔记 |
2014-01-12 21:01 888数据库有一个关键字列-keyword,里面存放的关键字格式如下 ... -
Java实现Arrays.map2List
2013-12-02 18:18 722public class Test01 { pub ...
相关推荐
适合初学STL
Java 中 int、char、String 三种类型的相互转换详解 Java 作为一种静态类型语言,对变量的类型定义非常严格。然而,在实际开发中,我们经常需要在不同的类型之间进行转换以满足不同的需求。其中,int、char、String...
big、CString_int_string_char等数据类型之间的转换.pdf
int、char、double与byte相互转换
主要介绍了深入了解Java中String、Char和Int之间的相互转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下
网上的介绍都是用atoi函数,但是CString 内部存储的是wchar_t 类型的字符,每个字符占两个字节,atoi的参数是char*,每个字符占一个字节 ,如果强制转换成char*,由于高位字节是空,所以就转成了只有第一个字符的串,这样是...
这些类型的转换在开发数据库应用时很有用,也比较齐全
使用C++,实现char与wchar_t互转,w2c,c2w分别实现wchar_t到char的转换和char到wchar_t的转换
对VC中的各种不同数据类型进行转换(涉及数据类型:int,long,float,double,char username[],char temp[200], char *buf,CString,_variant_t,_bstr_t)
CString char_to_CString_unicode(char * szAnsi, int len) CString string_to_CString_unicode(std::string str) CString string_to_CString_unicode_Ex(std::string& str) CString string_to_CString_ansi(std::...
CString string char int 等类型的相互转换
为此,附件中的资源实现了VC++中多种数据类型之间的相互转换,包括:CString <-> int、CString <-> double、CString <-> LPCSTR、char* <-> CString、char -> CString、string -> const char*等。非常清晰明了、好用...
CString 型和 char* 类型的相互转化;char* 转化成 CString;CString 转化成 char* 之一:使用LPCTSTR强制转化;CString 转化成 char* 之二:使用String对象的GetBuffer方法;CString 转化成 char*之三;和控件的...
_bstr_t与CString,char,int,char*相互转换,类型之间的相互转换
char ch = 'A', char和int可以相互转换,char转int直接赋值,int 转char强转。 布尔型 boolean表⽰⼀位的信息,只有两个取值:true和false,默认值:false 每个数据类型对应的包装类中都有对应的SIZE属性返回位数,...
string,Cstring,char*,int,long,float,double等类型之间的相互转换总结,包含了所有的转换方法。
该类封装了各种数据类型转换的方法,可以实现CString、string、const char*、char*、TCHAR*、int之间的相互转换。
讲述了VC中的int\float\char\char *\CString与string等之间的相互转换。
注意:源程序是为qt写的,不过基本上都用的是c语言,下载之后稍作修改就可以在vc++上运行。将int数组转成uchar数组保存到数据库,然后再取出来将uchar数组还原成int数组。
PCM/WAVE工具库,提供各种PCM互相转换,PCM到WAVE转换 提供源码,价格面议 unsigned char linear2alaw(short pcm_val);;;;;;;; short alaw2linear(unsigned char a_val);;;;;;;; unsigned char linear2ulaw(short...