当前位置: 首页 > news >正文

动易网站栏目珠宝行业做网站的好处

动易网站栏目,珠宝行业做网站的好处,建立一个网站商城需要多久时间,企业宣传片制作公司排名细节决定成败#xff0c;开发中往往从一些细节就可以看出一个程序员的开发水准#xff0c;下面我就给大家分享一下开发中最最常见的int转换为String类型的方法及其性能解析。 一般大家最常用的方法有 方法一#xff1a;String s1 String.valueOf(i); 方法二#xff1a;St…细节决定成败开发中往往从一些细节就可以看出一个程序员的开发水准下面我就给大家分享一下开发中最最常见的int转换为String类型的方法及其性能解析。 一般大家最常用的方法有 方法一String s1 String.valueOf(i);  方法二String s2 i;   不知道有没有人用这种方法呢 方法三String s3 Integer.toString(i); 继续往下看之前大家先猜测一下这三种方法哪种方法的效率最高耗时最短对内存消耗最小相信结果会令你大吃一惊 话不多说直接上代码用事实说话。 package com.zhu.test;public class IntToStringOptimize {public static void main(String[] args) {//1.String.valueOf(i)方式long t System.currentTimeMillis();for (int i 0; i 100000; i) {String s0 String.valueOf(i);}System.out.println(String.valueOf(i)方式耗时: (System.currentTimeMillis() - t));//2.i方式t System.currentTimeMillis();for (int i 0; i 100000; i) {String s i;}System.out.println(i \\ 方式耗时 : (System.currentTimeMillis() - t));//3.Integer.toString(i)方式t System.currentTimeMillis();for (int i 0; i 100000; i) {String s Integer.toString(i);}System.out.println(Integer.toString(i)方式耗时: (System.currentTimeMillis() - t));} }   运行结果如下 结果是不是大跌眼镜啊没想到我们最常用的i的性能竟然如此之差而性能最好的竟然是没人怎么用的toString(i);为什么会这样呢经过堆栈分析发现 String.valueOf(i)的方法调用的竟然时第三种方法Integer.toString(i),多此调试后发现他们的耗时比基本保持在20:8那么toString(i)的内部又是怎样实现的呢 下面是Integer.toString(i)的实现代码 1 public static String toString(int i) { 2 if (i Integer.MIN_VALUE) 3 return -2147483648; 4 int size (i 0) ? stringSize(-i) 1 : stringSize(i); 5 char[] buf new char[size]; 6 getChars(i, size, buf); 7 return new String(buf, true); 8 } 其中stringSize(i)又做了什么事呢经过进一步跟踪发现 1 static int stringSize(int x) { 2 for (int i0; ; i) 3 if (x sizeTable[i]) 4 return i1; 5 } 而sizeTable[]又是一个怎样的数组呢继续往下看, final static int [] sizeTable { 9, 99, 999, 9999, 99999, 999999, 9999999,99999999, 999999999, Integer.MAX_VALUE }; 原来在调用toString(i)的时候如果会判断i是否是负数如果是负数就将其求反为正数然后会根据 sizeTable数组来 判断 i 的位数并返回创建一个比i的长度1的字符数组比如i11,那么size就是3,然后就会创建一个3位的字符数组。那么问题来了getChars()有是干什么的呢 1 /**2 * Places characters representing the integer i into the3 * character array buf. The characters are placed into4 * the buffer backwards starting with the least significant5 * digit at the specified index (exclusive), and working6 * backwards from there.7 *8 * Will fail if i Integer.MIN_VALUE9 */ 10 static void getChars(int i, int index, char[] buf) { 11 int q, r; 12 int charPos index; 13 char sign 0; 14 15 if (i 0) { 16 sign -; 17 i -i; 18 } 19 20 // Generate two digits per iteration 21 while (i 65536) { 22 q i / 100; 23      24 r i - ((q 6) (q 5) (q 2)); 25 i q; 26 buf [--charPos] DigitOnes[r]; 27 buf [--charPos] DigitTens[r]; 28 } 29 30 // Fall thru to fast mode for smaller numbers 31 // assert(i 65536, i); 32 for (;;) { 33 q (i * 52429) (163); 34 r i - ((q 3) (q 1)); // r i-(q*10) ... 35 buf [--charPos] digits [r]; 36 i q; 37 if (i 0) break; 38 } 39 if (sign ! 0) { 40 buf [--charPos] sign; 41 } 42 } 仔细分析代码发现这个函数的功能就是将int型的i从右向左即从个位数开始填充到字符数组buf中。至此方法一String.valueOf(i)和方法三Integer.toString(i)分析完毕。 由上可见方式二 i 是最耗时耗内存的方法之所以写这篇文章是因为我在看一段视频的时候以为老师说他以前刚入职的时候就是用这种方法从而项目中出现大量的,结果是被项目经理批评了一顿。所以小伙伴们如果你还在用方法二就赶快更正过来吧 那么方法二为什么会这么耗时呢 因为每 一次就会调用一次  public StringBuffer() {   super(16); } 方法这就意味着每 一次就会在内存中实例化一个StringBuffer()对象原因是String类型是final的其内容是不可变的所以每次改变其值就要重新new一个对象如果一个项目中大量使用该方法不耗时耗内存才怪呢。 个人总结看到这里相信大家都知道了到底哪种方法才是最有效的int类型转为String类型时使用Integer.toString(i)或String.valueOf(i)方法会比高效节能的多。希望阅读此文能提升一下读者的逼格如果有哪个地方我分析的不对或者有什么更好的建议或更实用的细节还请小伙伴们不吝赐教  转载于:https://www.cnblogs.com/rookieFly-tdiitd/p/4903959.html
http://www.yutouwan.com/news/355565/

相关文章:

  • 品牌网站建设保障大蝌蚪社联网站建设的目的
  • 域名申请后没有做网站胶州网站建设电话
  • 上海专业网站建设报化工企业建网站
  • 网站 关键词 挖掘上海中国建设银行网站
  • vuejs 可做网站吗增城网站建设价格
  • 网站推广服务合同模板重庆如何做聚政网站
  • 哪个网站可以做顺风车做门图网站
  • 如何把自己做的网站网络运维服务方案
  • 世界上做的最好的前端网站关于做美食的网站
  • 各大网站提交入口广西住房和城乡建设部网站
  • 建设集团招工信息网站极端页面 装修wordpress 主题
  • 国外网站html5从上到下连续变动古镇网站建设
  • 建设京东类的网站需要什么流程产品创意设计作品
  • 网站改版 降权增城电子商务网站建设
  • 旅游网站开发开题报告网站开发形式有哪些
  • 网站建设设计设计.net网站做优化
  • 关于网站排名优化需要怎么做重庆建设工程人力资源官网
  • 一般网站的宽度是多少拼多多网站怎么建设的
  • 深圳网站制作排行榜用ps做企业网站分辨率是多少
  • 网站开发中制作视频播放器工信部网站报备
  • 建设部网站设计资质查询莱芜网站建设价格低
  • wordpress搭建外贸网站wordpress emlog
  • 河北专业网站建设网站建设域名服务器
  • 手机网站轮播图凡科商城官网旗舰店
  • 网站建设软件的英文做器材的网站
  • 枝江企业网站石岩附近做网站公司
  • 织梦做企业网站教程移动网站建设书
  • 一起做业网站登录国内商务网络公司排名
  • 网站开发体会范文商城网站 html模板
  • 佛山企业网站建设wordpress主题 博客