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

Integer包装类详解加部分源码

【1】Java.lang直接使用,无需导包:

【2】类的继承关系:

【3】实现接口:

Serializable,Comparable<Integer>

【4】这个类被final修饰,那么这个类不能有子类,不能被继承

【5】包装类是对基本数据类型的封装: 对int类型封装产生了Integer

【6】类的历史: 从JDK1.0开始

【7】属性:

//属性:
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
//“物极必反”原理:
System.out.println(Integer.MAX_VALUE+1);
System.out.println(Integer.MIN_VALUE-1);

【8】构造器(发现没有空参构造器)

(1)int类型作为构造器的参数:

Integer i1 = new Integer(12);

(2)String类型作为构造器的参数:

Integer i2 = new Integer("12");
Integer i3 = new Integer("abcdef");

 

【9】包装类特有的机制:自动装箱  自动拆箱:

    //自动装箱:int--->IntegerInteger i = 12;System.out.println(i);//自动拆箱:Integer--->intInteger i2 = new Integer(12);int num = i2;System.out.println(num);

(1)自动装箱  自动拆箱 是从JDK1.5以后新出的特性

(2)自动装箱  自动拆箱 :将基本数据类型和包装类进行快速的类型转换。

验证:

可以自定打断点测试是否走入valueOf方法中:

valueOf转换成为Integer

注意:

如果值为-128到127之间,则不转换成为Integer,保存在一个cache数组中。

 如果自动装箱值在-128~127之间,那么比较的就是具体的数值否则,比较的就是对象的地址

IntValue转换成为int

【10】常用方法:

valueOf方法的底层:

package com.mytest;/*** @Auther: gotsgo*/
public class Test04 {//这是一个main方法,是程序的入口:public static void main(String[] args) {//compareTo:只返回三个值:要么是0,-1,1Integer i1 = new Integer(6);Integer i2 = new Integer(12);System.out.println(i1.compareTo(i2));// return (x < y) ? -1 : ((x == y) ? 0 : 1);//equals:Integer对Object中的equals方法进行了重写,比较的是底层封装的那个value的值。//Integer对象是通过new关键字创建的对象:Integer i3 = new Integer(12);Integer i4 = new Integer(12);System.out.println(i3 == i4);//false 因为==比较的是两个对象的地址boolean flag = i3.equals(i4);System.out.println(flag);//Integer对象通过自动装箱来完成:Integer i5 = 130;Integer i6 = 130;System.out.println(i5.equals(i6));//trueSystem.out.println(i5 == i6);/*如果自动装箱值在-128~127之间,那么比较的就是具体的数值否则,比较的就是对象的地址*///intValue() :作用将Integer--->intInteger i7 = 130;int i = i7.intValue();System.out.println(i);//parseInt(String s) :String--->int:int i8 = Integer.parseInt("12");System.out.println(i8);//toString:Integer--->StringInteger i10 = 130;System.out.println(i10.toString());}
}

http://www.lryc.cn/news/95440.html

相关文章:

  • 如何给侧边栏添加 Badge 计数标记
  • 插槽slot复习
  • 【C++STL标准库】序列容器之deuqe与、orwa_list与list
  • RocketMQ教程-(5)-功能特性-消息发送重试和流控机制
  • OpenCV笔记
  • Mysql基础(下)之函数,约束,多表查询,事务
  • Android 屏幕适配各种宽高比的手机
  • 云计算——云计算与虚拟化的关系
  • 手机变局2023:一场瞄准产品和技术的“思维革命”
  • 【Linux】自动化构建工具-make/Makefile详解
  • 1 js嵌入html使用
  • 总结RoctetMQ
  • 命名约定~
  • Python基础-列表(list)和元组(tuple)
  • Dubbo介绍及使用
  • 初阶C语言-分支和循环语句(下)
  • pytorch工具——pytorch中的autograd
  • Linux--进程池
  • SpringCloudAlibaba微服务实战系列(四)Sentinel熔断降级、异常fallback、block细致处理
  • WebDAV之π-Disk派盘+ WinSCP
  • Python案例分析|使用Python图像处理库Pillow处理图像文件
  • 音视频——压缩原理
  • 微服务 云原生:搭建 K8S 集群
  • C++中的数学问题---进制转换
  • 开发一个RISC-V上的操作系统(三)—— 串口驱动程序(UART)
  • nuxt项目部署,npm run build 和npm run generate的区别
  • 数据仓库设计理论
  • 数据接口有哪些?(数据接口有哪几种)
  • 华为云CodeArts产品体验的心得体会及想法
  • 下载安装:SQLite+SQLiteStudio+VS