码迷,mamicode.com
首页 > 其他好文 > 详细

每天看点源码

时间:2015-09-21 09:10:30      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:

  最近想换工作,bat等一线互联网公司都面了个遍,被轮流虐了无数遍之后发现欠缺很多,总结一下:

  1.工作中只知道尽快的完成任务,实现功能,很多时候想到一种解决方案就下手去干了,是不是最优方案、数据量大了之后的性能问题、并发安全问题等都欠考虑。

  2.本身不是计算机科班出身,基础薄弱,线程、锁、网络等计算机基础掌握不牢,源码看的偏少,很多常用的类都没仔细看过。

  3.数据结构和算法功底差,只能写个最简单的冒泡排序。。最多再能写个汉诺塔之类的递归。

 

  问题多多,好在一次腾讯面试的时候,面试官大姐指点说可以多看点源码,可以了解底层是怎么实现的,然后考虑为什么这么实现,举一反三,再想想如果自己实现的话应该怎么做,受到启发之后觉得这确实是一个好办法,于是决定从今天起每天读点源码(周六日要打球,身体是革命的本钱),从JDK源码开始吧。

 

  Integer

  进制转换方法,toString(int i,int radix)

  首先定义好所有可能出现的字符digits,数字+字母,长度为36

  final static char[] digits = {
        ‘0‘ , ‘1‘ , ‘2‘ , ‘3‘ , ‘4‘ , ‘5‘ ,
        ‘6‘ , ‘7‘ , ‘8‘ , ‘9‘ , ‘a‘ , ‘b‘ ,
        ‘c‘ , ‘d‘ , ‘e‘ , ‘f‘ , ‘g‘ , ‘h‘ ,
        ‘i‘ , ‘j‘ , ‘k‘ , ‘l‘ , ‘m‘ , ‘n‘ ,
        ‘o‘ , ‘p‘ , ‘q‘ , ‘r‘ , ‘s‘ , ‘t‘ ,
        ‘u‘ , ‘v‘ , ‘w‘ , ‘x‘ , ‘y‘ , ‘z‘
    };

  方法正文:

 

public static String toString(int i, int radix) {
    
    //Min/Max_RADIX分别为2,36
if (radix < Character.MIN_RADIX || radix > Character.MAX_RADIX) radix = 10; /* Use the faster version */ if (radix == 10) { return toString(i); } char buf[] = new char[33]; boolean negative = (i < 0); int charPos = 32; if (!negative) { i = -i; } while (i <= -radix) { buf[charPos--] = digits[-(i % radix)]; i = i / radix; } buf[charPos] = digits[-i]; if (negative) { buf[--charPos] = ‘-‘; } return new String(buf, charPos, (33 - charPos)); }

 

每天看点源码

标签:

原文地址:http://www.cnblogs.com/ljy201992/p/Integer_sourceCode.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!