博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JDK-Integer源码解读
阅读量:4093 次
发布时间:2019-05-25

本文共 1175 字,大约阅读时间需要 3 分钟。

  • 通过类的定义可以看出
    public final class Integer extends Number implements Comparable<Integer>
    • 不能被继承
    • 实现Comparable接口,用compareTo进行比较并且Integer对象只能和Integer类型的对象进行比较,不能和其他类型比较
    • 继承了Number类,所以该类可以调用longValue、floatValue、doubleValue等系列方法返回对应的类型的值
    • 属性
    • 私有属性
      • value
      • serialVersionUID
    • 公有属性
      • publis static fianl 可以直接使用
    • 方法
    • 当Integer被加载时,就新建了-128到127的所有数字并存放在Integer数组cache中
    • 当调用valueOf方法(包括后面会提到的重载的参数类型包含String的valueOf方法)时,如果参数的值在-127到128之间,则直接从缓存中返回一个已经存在的对象。如果参数的值不在这个范围内,则new一个Integer对象返回
    • String->int调用栈
      • getInteger(String nm) ---> getInteger(nm, null);--->Integer.decode()--->Integer.valueOf()--->parseInt()
    • getInteger
      • 获取确定具有指定名称的系统属性的整数值
    • decode
      • 该方法的作用是将 String 解码为 Integer。接受十进制、十六进制和八进制数字
      • 根据要解码的 String(mn)的形式转成不同进制的数字。 mn由三部分组成:符号、基数说明符和字符序列。 —0X123中-是符号位,0X是基数说明符(0表示八进制,0x,0X,#表示十六进制,什么都不写则表示十进制),123是数字字符序列。
    • 总结
      • parseInt方法返回的是基本类型int
      • 其他的方法返回的是Integer
      • valueOf(String)方法会调用valueOf(int)方法。借助缓存
      • 如果需要一个对象,那么建议使用valueOf(),因为该方法可以借助缓存带来的好处。
      • 如果和进制有关,那么就是用decode方法。
      • 如果是从系统配置中取值,那么就是用getInteger
    • int转为String
      • toString()
      • 局部性原理之空间局部性:sizeTable为数组,存储在相邻的位置,cpu一次加载一个块数据数据到cache中(多个数组数据),此后访问sizeTable 不需要访问内存。
      • 基于范围的查找,是很实用的设计技术
      • 移位的效率比直接乘除的效率要高
      • 乘法的效率比除法的效率要高
    • compareTo
      • return (x < y) ? -1 : ((x == y) ? 0 : 1);
    • 参考文章

转载地址:http://pqiii.baihongyu.com/

你可能感兴趣的文章
前端设计之CSS布局:上中下三栏自适应高度CSS布局
查看>>
Java的时间操作玩法实例若干
查看>>
JavaScript:时间日期格式验证大全
查看>>
pinyin4j:拼音与汉字的转换实例
查看>>
XML工具代码:SAX从String字符串XML内获取指定节点或属性的值
查看>>
时间日期:获取两个日期相差几天
查看>>
责任链模式 Chain of Responsibility
查看>>
高并发与大数据解决方案概述
查看>>
解决SimpleDateFormat线程安全问题NumberFormatException: multiple points
查看>>
MySQL数据库存储引擎简介
查看>>
处理Maven本地仓库.lastUpdated文件
查看>>
Kafka | 请求是怎么被处理的?
查看>>
Java并发编程1-线程池
查看>>
CentOS7,玩转samba服务,基于身份验证的共享
查看>>
计算机网络-网络协议模型
查看>>
计算机网络-OSI各层概述
查看>>
Java--String/StringBuffer/StringBuilder区别
查看>>
mySQL--深入理解事务隔离级别
查看>>
分布式之redis复习精讲
查看>>
数据结构与算法7-栈
查看>>