关于Integer

news2025/1/11 5:56:48
/**
 * 基本数据类型                   包装类型
 * ----------------------------------------------
 * byte                      java.lang.Byte      (父类是java.lang.Number)
 * short                     java.lang.Short     (父类是java.lang.Number)
 * int                       java.lang.Integer   (父类是java.lang.Number)
 * long                      java.lang.Long      (父类是java.lang.Number)
 * float                     java.lang.Float     (父类是java.lang.Number)
 * double                    java.lang.Double    (父类是java.lang.Number)
 * boolean                   java.lang.Boolean   (父类是java.lang.Object)
 * char                      java.lang.Character (父类是java.lang.Object)
 *
 * 八种基本数据类型,分别对应一个包装类,下面以Integer来学习,JDK5以后能够进行自动装箱和自动拆箱
 *     自动装箱:基本数据类型自动转换为包装类
 *     自动拆箱:包装类自动转换为基本数据类型
 *
 * 自动装箱和自动拆箱的好处是:方便编程
 */

public class IntegerText {
    public static void main(String[] args) {

        Integer x = 123;//123是基本数据类型,x是包装类型  这里发生的是基本数据类型自动转换为包装类型(自动装箱)

        int y = x;//这里的x是包装类型,y是基本数据类型,发生的是包装类型自动转换为基本数据类型(自动拆箱)

        Integer z = 456;// 该代码等同于Integer z = new Integer(456);
                        // 注意这里的z是一个引用,也是一个变量,z中保存的是对象的内存地址
        System.out.println(z + 1);//457,这里的z先发生了自动拆箱变成了基本数据类型,然后进行了加法运算

        Integer a = 128;
        Integer b = 128;
        System.out.println(a == b);//false

        Integer k = 127;
        Integer m = 127;
        System.out.println(k == m);//true
        /*
            为什么会出现上面不一样的情况呢?原因在于java为了提高程序运行效率,再Integer类加载时将[-128,127]区间所有256个整数
        型包装对象提前创建好,放到了方法区的“整数型常量池”当中,目的是只要用这个区间的包装类型对象不需要再new了,直接就可以从
        “整数型常量池”当中取出来。为此无论创建多少个对象它们的引用所指向的内存地址都相同,但是只要超出了这256个的区间就不一样了。
        其内存图见下图:Integer方法区整数型常量池。
         */
        /*
        总结一下之前所学的经典异常有:
              空指针异常:NullPointerException
              类型转换异常:ClassCastException
              数组下标越界异常:ArrayIndexOutOfBoundsException
              数字格式化异常:NumberFormatException
         */
        Integer w = new Integer("12");//本行代码没有问题
//        下行代码是将非数字型字符串转换成Integer包装类型对象就会出现异常(该异常编译期可以通过编译,但运行期报错)
//        Integer q = new Integer("oneTwo");//java.lang.NumberFormatException  数字格式化异常(运行期异常)

//       (重点) 将字符串转换成int,使用静态方法: static int parseInt(String s);
//        静态方法,传入参数String,返回int,网页上文本框中输入的是100,实际上是字符串"100",后台数据库中需要的是数字100,
//        这时java程序就需要使用该方法把字符串"100"转换成数字100
        int retValue = Integer.parseInt("123");//如果将"123"换成文字就会出现java.lang.NumberFormatException  数字格式化异常
        System.out.println(retValue + 100);//223

//        照葫芦画瓢学习其他包装类的方法
//        将字符串转换成double,使用静态方法:static double parseDouble(String s);
        double retValue1 = Double.parseDouble("3.14");
        System.out.println(retValue1 + 1);//4.140000000000001这个问题是double的精度问题不要纠结
//        将字符串转换成float,使用静态方法:static float parseFloat(String s);
        float retValue2 =Float.parseFloat("10.0");
        System.out.println(retValue2 + 1);//11.0

        /**
         * String、int、Integer之间相互转换
         */
//        String---->int
        int i1 = Integer.parseInt("100");//i1是int类型数字100;
        System.out.println(i1 + 1);//101,数字100和1相加
//        int ------>String
        String s1 = i1 + "";//这里进行的是字符串拼接
        System.out.println(s1 + 1);//1001,这里进行的是字符串拼接
//        也可以使用String.valueOf(int)
        String s2 = String.valueOf(456);
        System.out.println(s2 + 1);//4561,这里进行的是字符串拼接

//        int ------>Integer
        Integer h = 1000;//自动装箱
//        Integer---->int
        int i2 = h;//自动拆箱
//        String----->Integer
        Integer d = Integer.valueOf("789");
//        Integer---->String
        String s3 = String.valueOf(d);
    }
}

                                Integer方法区整数型常量池

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/76614.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于微信小程序的springboot客运汽车票购票系统源码和论文

在客运公司工作 7 年之余,对客运管理的难度深有感触。特别是在春运期 间购票难依旧是长途汽车订票的一大难题。长途汽车和火车的订票管理虽然有 差异,但大体上是相同的。长途汽车在售票的过程中需要对旅客的起始地、目 的地、车次、订票和退票进行管理。…

论文精读:《DETR3D: 3D Object Detection from Multi-view Images via 3D-to-2D Queries》

DETR3D: 3D Object Detection from Multi-view Images via 3D-to-2D Queries 文章目录DETR3D: 3D Object Detection from Multi-view Images via 3D-to-2D Queries论文精读摘要(Abstract)1. 介绍(Introduction)2. 相关工作&#x…

优维科技EasyOps®一体化运维平台入选“大信创产品目录”

以云计算、大数据为代表的新一代信息技术正在带来新的架构模式和应用模式,IT行业整个技术体系正面临一次大的换代升级机遇。在新技术更新换代的同时,中国IT产业也正面临前所未有的供应链安全问题,自主可控的信息技术应用创新(信创…

Oracle项目管理之Primavera Unifier三种管理员模式

目录 一、系统管理员 二、公司管理员 三、项目管理员 Oracle Primavera Unifier 中有不同类型或级别的管理员,它们包括: 站点管理员(也称为系统管理员)公司管理员项目管理员或外壳管理员(项目/外壳管理员&#xff0…

Servlet(三):基于Servlet实现程序、Cookie和Session、实现用户登录、上传文件

目录表白墙Cookie和Session实现用户登录上传文件表白墙 【服务器版的表白墙】 在之前通过前端代码实现的表白墙有一个问题,当我们关闭页面后,表白的数据也就丢失了,下面我们要做的是做一个服务器版的表白墙,这样即使关闭页面&…

RocketMq01_概述及背景、主题、标签、队列、生产者、消费者、注册中心、工作流程

文章目录①. RocketMQ - 概述、背景②. 消息、主题、标签、队列、唯一标识③. 生产者、消费者、NameServer、Broker④. RocketMq - 工作流程⑤. Topic的创建模式、读写队列①. RocketMQ - 概述、背景 ①. RocketMQ是⼀款阿⾥巴巴开源的消息中间件。2016年11⽉28⽇,阿⾥巴巴向Ap…

Metal每日分享,波动滤镜/涂鸦滤镜效果

本案例的目的是理解如何用Metal实现图像波动效果滤镜,还可类似涂鸦效果,主要就是对纹理坐标进行正余弦偏移处理; Demo HarbethDemo地址 实操代码 // 波动效果 let filter C7Fluctuate.init(extent: 50, amplitude: 0.003, fluctuate: 2.5…

GPB外链是什么?

GPB外链的意思是:Guangsuan Private Backlinks 全称:光算科技私人链接 拥有高质量,高权重,100%包收录的特点,且dofollow 因其效果明显,因其效果明显受到市场上广大的外贸SEO从业者喜欢。 它可以帮助网站…

图神经网络GNN

前言 图与图的表示 图是由一些点和一些线构成的,能表示一些实体之间的关系,图中的点就是实体,线就是实体间的关系。如下图,v就是顶点,e是边,u是整张图。attrinbutes是信息的意思,每个点、每条…

SQLite Expert 5.X 通用注册版-你的SQL好帮手

SQLITE 专家:发现 SQLITE 的力量 SQLite Expert 是一个强大的工具,旨在简化 SQLite3 数据库的开发。它是一个功能丰富的SQLite管理和开发工具,旨在满足所有用户的需求,从编写简单的 SQL 查询到开发复杂的数据库。 图形界面支持所…

神经网络入门(二)

卷积神经网络 文章目录卷积神经网络1. 从全连接到卷积2. 卷积层2.1 一维卷积2.2 二维卷积3. 填充与步幅4. 感受野5. 多输入多输出通道6. 池化层(汇聚层)7. 全连接层8. 卷积网络的整体结构9. 利用pytorch构建一个CNN网络卷积神经网络(CNN&…

Metal每日分享,图像处理色彩丢失和模糊效果

本案例的目的是理解如何用Metal实现图像包装效果滤镜,用于图像处理色彩丢失和模糊效果; Demo HarbethDemo地址 实操代码 // 色彩丢失和模糊效果 let filter C7ColorPacking.init(horizontalTexel: 2.5, verticalTexel: 5)// 方案1: let dest BoxxIO…

[附源码]计算机毕业设计架构的博客平台设计Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

时不我待(第十八课)项目环境搭建

后台管理的项目搭建过程(第一课) 123第一部分 认识项目的搭配环境开发 4567第二部分 项目的创建需要的环境依赖如下 Element - The worlds most popular Vue UI framework ElementUl组件库Sass世界上最成熟、稳定和强大的CSS扩展语言 | Sass中文网 …

【数据结构】- 数组

数组基础1.1 什么是数组1.2 数组特点无法动态修改容量内存中顺序存储2. 基本操作2.1 结构2.2 添加元素 - add(E element)、add(int index, E element)代码实现2.3 删除元素 - remove(int index)、清空数组 - clear()代码实现2.4 扩容 - ensureCapacity(int capacity)3. 代码基础…

[附源码]Python计算机毕业设计SSM基于移动端的药方收集系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

在Mac系统下搭建Selenium环境并驱动Chrome浏览器

本文带领那些使用Mac的童鞋们实现Selenium驱动Chrome浏览器,虽然会有坑,但是我们可以凭借敏捷的身手躲过。下面就开始吧: 安装selenium 打开终端 ->pip安装(安装命令:pip3 install selenium) 安装浏览…

windows 安装paddleocr(CPU)

下载anaconda 注意需要下载64位(x86_64结尾的版本) https://mirrors.bfsu.edu.cn/anaconda/archive/ conda create -n OCR python3.9成功 conda activate OCR添加环境变量,cmd才可以识别conda 安装paddlepaddle(有独立显卡的才能安装GPU版本&#x…

双十二电容笔啥牌子好?十大电容笔知名品牌

要为ipad配备一款电容笔,如果你觉得苹果原装的电容笔的价格要比你的预算高得多。而平替电容笔,就是最好的选择了。可以想象,一支原版的苹果电脑容,可以买四支平替电容笔,而平替电容笔的性能并不比苹果的电容笔差多少。…

期末前端web大作业:餐饮美食网站设计与实现——HTML+CSS+JavaScript美食餐饮网站 3页面

👨‍🎓静态网站的编写主要是用HTML DIVCSS JS等来完成页面的排版设计👩‍🎓,常用的网页设计软件有Dreamweaver、EditPlus、HBuilderX、VScode 、Webstorm、Animate等等,用的最多的还是DW,当然不同软件写出的…