首页 > 其他分享 >03包装类

03包装类

时间:2023-10-20 20:01:30浏览次数:34  
标签:03 String 包装 System println 类型 Integer out

包装类

一、什么是包装类?

  • 基类数据类型所对应的引用数据类型。(基本类型本身是没有属性和方法的)

    • 基本类型一般都是存储在栈里面
    • 引用类型数据都是存储在堆里面,栈里面存的是引用类型的一个地址。
  • Object 可统一接收所有数据,包装类的默认值是null。

  • 包装类对应的基本类型:

    基本数据类型 包装类型
    byte Byte
    short Short
    int Integer
    long Long
    float Float
    double Double
    boolean Boolean
    char Character

二、类型转换与装箱、拆箱

  • 装箱:基本类型转换成引用类型(栈里面的数据拿到堆里面)

  • 拆箱:引用类型转换成基本类型(堆里面的数据拿到栈里面)

    装箱和拆箱:

    public static void main(String[] args) {
    		//类型转换:装箱,基本类型转换成引用类型
    		//基本类型
    		int num1 = 18;
    		//使用Integer类创建对象
    		Integer integer1 = new Integer(num1);	//有删除线,过时的方法
    		Integer integer2 = Integer.valueOf(num1);//新的方法
    		
    		//类型转换:拆箱,引用类型转成基本类型
    		Integer integer3 = new Integer(100);
    		int num2 = integer3.intValue();
    		
    		
    		//JDK1.5之后提供了自动装箱和拆箱
    		int age = 30;
    		//自动装箱
    		Integer integer4 = age;
    		//自动拆箱
    		int age2 = integer4;
    	}
    

三、8种包装类提供不同类型间的转换方式

  • Number父类中提供的6个共性方法。

  • parseXXX()静态方法。

  • valueOF()静态方法。

    基本数据类型和字符串之间的转换:

    public static void main(String[] args) {
    		//基本类型和字符串之间转换
    		//1.基本类型转成字符串
    		int n1 = 255;
    		//1.1 使用+号
    		String s1 = n1+"";
    		//1.2使用Integer中的toString()方法
    		String s2 = Integer.toString(n1, 16);//使用16进制,将n1转换成字符串
    		
    		System.out.println(s1);
    		System.out.println(s2);
    		
    		//2字符串转成基本类型
    		String str = "150";
    		//使用Integer.parseXXX();
    		int n2 = Integer.parseInt(str);//字符串不能出现非数字的字符
    		System.out.println(n2);
    		
    		//boolean的字符串形式转换成基本类型,"true"--->true,只要不是"true"就会转换成false
    		String str2 = "tru";
    		boolean b1 = Boolean.parseBoolean(str2);
    		System.out.println(b1);
    	}
    

    1

  • 注意:需要保证类型兼容,否则抛出NumberFormatException异常。

四、Integer缓冲区

  • Java预先创建了256个常用的整数包装类型对象,在实际应用中,可以对已创建的对象进行复用。

    public static void main(String[] args) {
    		//面试题
    		Integer integer1 = new Integer(100);
    		Integer integer2 = new Integer(100);
    		System.out.println(integer1 == integer2);//false
    		
    		Integer integer3 = Integer.valueOf(100);
    		Integer integer4 = Integer.valueOf(100);
    		System.out.println(integer3==integer4);//true,因为100是在-128和127之间的256个常用的整数包装类型对象
    		
    		Integer integer5 = Integer.valueOf(200);
    		Integer integer6 = Integer.valueOf(200);
    		System.out.println(integer5==integer6);//false,因为不在256个常用的整数包装类型对象范围
    	}
    

    2

标签:03,String,包装,System,println,类型,Integer,out
From: https://www.cnblogs.com/ahbzbn/p/17777899.html

相关文章

  • 用户故事与敏捷方法03
    第11章测量并监控速率我们将项目分成一系列迭代来做发布计划,每轮迭代中安排一定故事点的任务。一轮迭代完成的故事点就是项目的速率。因为速率是非常重要的度量,所以怎么测量它变得很重要,而且速率在初期的迭代可能很不稳定,经过两三轮迭代后,才能获得一个长期的、比较稳定的速率。......
  • 【从零学习python 】03. Python编程基础:变量、数据类型与标识符
    变量以及数据类型一、变量的定义对于重复使用,并且经常需要修改的数据,可以定义为变量,来提高编程效率。定义变量的语法为:变量名=变量值。(这里的=作用是赋值。)定义变量后可以使用变量名来访问变量值。如下示例:#不使用变量打印三次"今天天气真好",如果需要变成打印"......
  • Unknown collation: 'utf8_0900_ai_ci' 的解决方法
    Unknowncollation:'utf8_0900_ai_ci'解决方法Unknowncollation:'utf8_0900_ai_ci'在使用Navicat导入sql脚本的时候出现报错Unknowncollation:'utf8_0900_ai_ci'原因:当前要导入的sql版本高于目标sql版本,导致的不兼容问题解决方法:使用编辑器打开sql文件全局替换utf8......
  • CF1003E Tree Constructing
    很trivial的构造题首先上来判掉一些显然无解的情况,然后考虑既然最后直径长为\(d\)那么不妨先搞一条长度为\(d\)的链来考虑在链上接一些点使得直径不会变长,对于链上的某个点,它最多能接上的链的长度就是它到两个端点距离的最小值不妨设计递归函数求解,设solve(x,dis,lim)表示在\(x......
  • TypeError: Object of type 'Animal' is not JSON serializable/ 自定义对象 转json串
     importjsonclassAnimal(object):def__init__(self):self.name='tom'def__repr__(self):returnf'mynameis{self.name}&ilikeapple'd1={'county':'china','name':Ani......
  • 03_电容
    电容什么是电容电容的作用旁路的作用没有电容,cpu的电压不稳定去耦(退耦)电容的作用滤波作用储能作用电容在电路中的连接问题常用电容极性判断电容应用总结......
  • Java拾贝第七天——包装类、BigInteger、BigDecimal
    Java拾贝不建议作为0基础学习,都是本人想到什么写什么基本数据类型怎么变化引用数据类型(对象)Java为每种基本类型都提供了对应的包装类型:基本数据类型包装类intIntegercharCharactershortShortlongLongfloatFloatdoubleDoublebooleanBoolean......
  • 文心一言 VS 讯飞星火 VS chatgpt (103)-- 算法导论10.1 1题
    一、用go语言,仿照图10-1,画图表示依次执行操作PUSH(S,4)、PUSH(S,1)、PUSH(S,3)、POP(S)、PUSH(S,8)和POP(S)每一步的结果,栈S初始为空,存储于数组S[1…6]中。文心一言:图10-1展示了在执行一系列栈操作后栈的状态。我会用文字描述来模仿这个图,因为目前我无法直接绘制图片。栈S初始......
  • 错误:You can't specify target table 'xxx' for update in FROM clause的解决
    deleteFROMusrloginwheremember_id=(SELECTmember_idFROMusrloginWHERElogin_id='#011SkhVVje27smbxek0XwjKeA==');会出现报错信息:Youcan'tspecifytargettable'tempA'forupdateinFROMclause大致意思是,在同一语句中,不能先select出同一表中的......
  • 滑模控制:关于滑模面和e-e'相位图
    由s=e+ke'=0可知,e-e'相位图上的s=0曲线为斜率为-k的直线但如果s变量是非线性的,则e-e'相位图上的s=0曲线将不一定是直线,如非奇异终端滑模e+β(e')^p/q=0,其s=0的线是-e^(q/p) 不过当系数如k和β设置不合理,会导致e'过大,使得e的变化也过大,最后导致(e,e')过于偏离s=0面,但由于e......