java转换为字符串_java – 如何从int转换为字符串?
正常方式是Integer.toString(i)或String.valueOf(i)。
串联将工作,但它是非常规的,可能是一个难闻的气味,因为它暗示作者不知道上述两种方法(他们不知道什么?)。
Java在使用字符串(见the documentation)时对操作符提供了特殊的支持,它将您发布的代码翻译成:
StringBuilder sb = new StringBuilder();
sb.append("");
sb.append(i);
String strI = sb.toString();
在编译时。它的效率略低(sb.append()结束了调用Integer.getChars(),这是什么Integer.toString()会做),但它的工作原理。
回答Grodriguez的评论:**不,编译器不优化空字符串在这种情况下 – 看看:
simon@lucifer:~$ cat TestClass.java
public class TestClass {
public static void main(String[] args) {
int i = 5;
String strI = "" + i;
}
}
simon@lucifer:~$ javac TestClass.java && javap -c TestClass
Compiled from "TestClass.java"
public class TestClass extends java.lang.Object{
public TestClass();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."":()V
4: return
public static void main(java.lang.String[]);
Code:
0: iconst_5
1: istore_1
初始化StringBuilder:
2: new #2; //class java/lang/StringBuilder
5: dup
6: invokespecial #3; //Method java/lang/StringBuilder."":()V
附加空字符串:
9: ldc #4; //String
11: invokevirtual #5; //Method java/lang/StringBuilder.append:
(Ljava/lang/String;)Ljava/lang/StringBuilder;
追加整数:
14: iload_1
15: invokevirtual #6; //Method java/lang/StringBuilder.append:
(I)Ljava/lang/StringBuilder;
提取最后一个字符串:
18: invokevirtual #7; //Method java/lang/StringBuilder.toString:
()Ljava/lang/String;
21: astore_2
22: return
}
有a proposal和正在进行的工作,以改变这种行为,针对JDK 9。
java转换为字符串_java – 如何从int转换为字符串?相关推荐
- java输入数字返回字符串_java Scanner输入数字、字符串
package java05; import java.util.Scanner;//1.导包 /* Scanner类的功能,可以实现键盘输入数据,到程序当中 引用类型的一班使用步骤: 1.导包 2. ...
- java时间戳龙_Java时间戳与日期格式字符串的互转
Java时间戳与日期格式字符串的互转 import java.text.SimpleDateFormat; import java.util.Date; public class DateUtil { ...
- java math 弧度_Java Math.toRadians()角度转换为弧度
首页 > 基础教程 > 常用类 > 常用 Number & Math类 Java Math.toRadians()角度转换为弧度 java中Math.toRadians()用 ...
- java 验签_JAVA验签方式转换为PHP代码,求教怎么写
sig生成方式:key:aUdqk-BvLwKltime:当前时间.(long)num:随机数.(long)SHA1(key+time+num)以java为例:privatestaticStringe ...
- java map 内存_java 使用对象和Map保存字符串占用存储空间对比
对整体堆大小的影响 创建对象情况 已使用的堆大小 没有使用任何对象 95,805,912 个字节 使用map10000000个相同字符串 1,017,388,888 个字节 创建10000000个空对 ...
- java正则表达式 引用_java – 正则表达式检索引用的字符串和引用字符
我有一种语言,它将一个字符串定义为单引号或双引号,通过加倍将字符串转义为字符串中的分隔符.例如,所有以下内容都是合法字符串: 'This isn''t easy to parse.' 'Then Jo ...
- java split空字符_java split函数结尾空字符串被丢弃的问题
java中的split函数用于将字符串分割为字符数组是很方便的,但由于不是很熟悉,犯了错误 如下: String strtest = "1,2,"; String arry[] = ...
- java 汉字个数_java语言中如何获取字符串中汉字的个数
java语言中如何获取字符串中汉字的个数? [实例描述] 字符串中可以包含数字,字母.汉字或者其他字符.使用Character 类的isDigit()方法可以判断字符中的某个字符是否为数字,使用Cha ...
- java 提取电话号码_java – 如何使用正则表达式提取字符串的电话号码?
如果我有一个包含以下内容的字符串:这是1测试123-456-7890 我需要提取1234567890作为电话号码.我不想提取测试前的数字1. 如何在java中使用正则表达式? 我知道一种方法,但我不确 ...
最新文章
- mysql 7.4_CentOS 7.4 64位/ mysql
- findfirstfile函数为什么不能遍历doc_编程之美:IO多路复用——记性不好的poll函数...
- 不止代码:乘法游戏 题解(区间dp)
- 洛谷 P1129 [ZJOI2007]矩阵游戏 解题报告
- oracle正在启动或关闭中的解决方法
- memset() 初始化类对象
- React列表中实现文案多行收起展开的功能
- 双重特异性酪氨酸磷酸化调节激酶1A行业调研报告 - 市场现状分析与发展前景预测
- linux sshd自动登录,SSH自动登录的几种方法
- FreeRTOS(五)——heap文件解析
- APM代码学习笔记1
- 物理防火墙是什么?有什么作用?
- HDU 4889 Scary Path Finding Algorithm
- 7-5 3824经典游戏分数 20 作者 李佳单位 重庆大学
- linux-iproute2系列-TC命令
- openGL下的”橡皮筋“技术(多边形绘制)
- CCM色彩调试黄色块饱和度不够
- 非极大值抑制(non-maximum suppression)的理解
- dockerfile构建LNRP环境练手
- java词云_Java:生成词云(KUMO)
热门文章
- linux 保留最近目录,Linux如何删除全部目录只保留最新修改的目录
- java录入会员信息_java-第三章-升级我行我素购物管理系统,实现会员信息录入的功能...
- php js 图片旋转,jQuery实现可以控制图片旋转角度效果
- http 路径 |_HTTP 请求與响应的格式及 curl 命令使用
- 测试社交软件有哪些,性格测试:测你适合哪个社交平台
- HTML中直接写js 函数
- jQuery.extend() 使用语法详解
- 原型 - 实现自己的jQuery
- vue error:The template root requires exactly one element.
- 微信群运营之设计运营思路