- 浏览: 375919 次
- 来自: 北京
文章分类
- 全部博客 (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 900public class Client { ... -
ImageIO宋体出现小方框的解决
2014-11-03 16:34 927http://www.blogjava.net/yuanqix ... -
ArrayList根据条件+for循环批量删除的方法
2014-09-23 11:39 2722场景如下: ArrayList<Obj> list ... -
Java内部类的实例化
2014-08-06 15:51 1036class A{ getInstance(){ ... -
通过Thread.sleep把任务平均分配给线程按顺序执行的小例子
2014-07-22 10:46 1083package com.lj.test.JavaSe4; ... -
输入两个整数, 计算百分比
2014-07-21 18:01 1466public static String getPercen ... -
timer cancel方法的一个小实例
2014-07-21 12:14 1134package com.lj.timer; import ... -
通过Calendar获取上个月的最后一天
2014-06-26 12:11 2869Calendar cal=Calendar.getI ... -
通过BigInteger进行数字进制的相互转换
2014-06-24 11:09 25561. 十六进制转换为十进制 BigInteger deci ... -
[转]RSA实例
2014-06-18 17:27 911package com.lj.rsa; import j ... -
[转]sun.misc.BASE64Encoder找不到jar包的解决方法
2014-06-18 15:43 9421.右键项目-》属性-》java bulid path-》jr ... -
空Object转换String的陷阱
2014-06-17 15:45 806Object a=null; String b ... -
Java Convert Long to Date
2014-06-16 18:06 767问题: I have list with long value ... -
[转]JAVA中List&Set转换
2014-06-07 14:23 526JAVA中List&Set转换 list = new ... -
aes加密时的Illegal key size or default parameters
2014-06-06 14:21 4198KeyGenerator kgen = KeyGenerat ... -
String.replaceLast()
2014-06-03 16:02 1095http://stackoverflow.com/questi ... -
通过正则表达式来获取json数值
2014-05-23 11:39 13private String getJsonValue(Str ... -
java找不到或无法加载主类
2014-05-19 13:21 1283用CMD运行java +类名, 居然碰到这个问题。 编译是没有 ... -
Java转义字符笔记 |
2014-01-12 21:01 918数据库有一个关键字列-keyword,里面存放的关键字格式如下 ... -
Java实现Arrays.map2List
2013-12-02 18:18 748public class Test01 { pub ...
相关推荐
本程序"float_char_int_string.rar"着重探讨了`char`, `float`, `int`以及`string`这四种基本数据类型的相互转换。这些转换在不同的场景下都有其特定的应用,例如数据存储、用户界面显示或计算等。下面我们将详细...
适合初学STL
本文将详细介绍如何实现int、char、double与byte类型之间的相互转换,并通过具体的示例代码来阐述每一种转换方法。 ### 一、int类型转换为byte数组 #### 方法:intToByte() 该方法接收一个int类型的参数`number`,...
Java 中 int、char、String 三种类型的相互转换详解 Java 作为一种静态类型语言,对变量的类型定义非常严格。然而,在实际开发中,我们经常需要在不同的类型之间进行转换以满足不同的需求。其中,int、char、String...
big、CString_int_string_char等数据类型之间的转换.pdf
本文将详细探讨`CString`、`int`、`string`、`char`及其数组之间的转换方法,这对于理解和处理不同类型字符串数据尤为重要。 #### 1. `char`到`CString`的转换 `char`类型的单个字符或`char*`(字符指针)可以直接...
标题提到的"datatype-transform.rar_C++ CString CHAR_CString_char int 转换_char"着重于C++中`int`、`char`、`std::string`以及`CString`类型的相互转换。`CString`是Microsoft MFC(Microsoft Foundation Classes...
本文将详细探讨CString、char、int、COleDateTime、CTime、time_t等类型之间的相互转换方法,这对于构建高效且兼容性强的应用程序至关重要。 ### CString与char之间的转换 CString是Visual C++中用于处理字符串的...
深入了解Java中String、Char和Int之间的相互转换 Java是一种面向对象的编程语言,作为一名Java开发者,了解String、Char和Int之间的相互转换是非常重要的。本文将详细介绍Java中String、Char和Int之间的相互转换,...
原始数据类型包括byte、short、int、long、float、double、char和boolean,而引用数据类型则包括类(class)、接口(interface)和数组。在处理数值计算时,我们可能需要在不同数据类型之间进行转换,特别是当涉及到long...
本文将详细介绍VC中不同数据类型之间转换的方法,特别是`CString`与`char`、`int`、`long`、`string`和`byte`等类型的相互转换。 #### `int`到`CString`的转换 当需要将整型变量转换为`CString`时,可以使用`...
本文将详细介绍如何在C++中实现`char`类型与`wchar_t`类型的互相转换,并通过具体的代码示例来解释这一过程。 #### 核心知识点 1. **宽字符与多字节字符**:`char`类型通常用于存储单字节字符,而`wchar_t`类型则...
本文将详细介绍 `CString`, `int`, `string` 和 `char` 之间的相互转换方法。 #### 1. `string` 到 `CString` - **转换方式**:通过 `CString` 的 `format` 方法或构造函数进行转换。 - 使用 `CString` 的 `...
### int和CString相互转化 在C++编程语言中,尤其是对于使用MFC(Microsoft Foundation Classes)框架进行Windows应用程序开发的开发者来说,`int`与`CString`之间的转换是非常常见的需求。这种转换通常用于数据...
本文将详细介绍 CString、int、string 和 char 之间的相互转换方法,并提供具体的示例代码。 #### 一、概述 在 C++ 中,字符串通常有多种表示形式,包括 `CString`(MFC 中的字符串类)、`std::string`(C++ 标准...
本文将详细探讨VC++中涉及的数据类型转换,包括`int`、`long`、`float`、`double`、`char`数组、`char*`、`CString`、`_variant_t`和`_bstr_t`之间的转换方法。 1. **其他数据类型转换为字符串**: - `itoa`函数...
sprintf函数可以将int类型的ss转换为char数组temp,然后将char数组temp转换为string类型的str。 C++中string与int的相互转换可以通过多种方法实现。开发者可以根据实际情况选择合适的方法来实现string与int的相互...
因此,在转换前检查数据范围和类型兼容性是至关重要的。 8. **内存对齐和字节顺序** 当涉及跨平台或多线程编程时,要考虑内存对齐和字节顺序(Big-Endian vs Little-Endian)的问题。不正确的转换可能导致数据解析...
本示例涉及的是整形数组(int array)与字符数组(uchar array)之间的转换,这对于数据存储和传输具有重要意义。在Qt或VC++环境中,这种转换对于数据库交互,特别是当数据库要求特定数据格式时,尤为关键。 首先,...
- **TurboC 特性**:在 TurboC 编译器中,整型数据类型 `int` 和 `unsigned int` 的转换特性与某些其他编译器有所不同。例如,在打印函数 `printf` 中,需要正确地使用格式字符串 `%d` 或 `%u` 来处理有符号和无符号...