当前位置: 首页 > 后端技术 > Java

Java包装类_0

时间:2023-04-01 22:12:14 Java

1.1概述Java提供了两种类型系统,基本类型和引用类型。使用基本类型是为了效率。但是,在很多情况下,会创建对象,因为对象可以做更多的功能。如果你想让我们的基本类型像对象一样操作,那么我们可以使用基本类型对应的包装类,如下:method方法名称描述publicInteger(intvalue)从一个int值创建一个Integer对象(废弃)publicInteger(Strings)从一个String值创建一个Integer对象(废弃)publicstaticIntegervalueOf(inti)返回一个实例表示指定int值的整数publicstaticIntegervalueOf(Strings)返回一个包含指定String值的Integer对象staticstringtobinarystring(inti)获取二进制静态字符串tooctalstring(inti)获取八进制静态字符串toHexstring(inti)to获取十六进制staticintparseInt(strings)将string类型的整数转换为int类型的整数示例代码//publicInteger(intvalue):根据int值创建一个Integer对象(废弃)Integeri1=newInteger(100);System.out.println(i1);//publicInteger(Strings):根据String值创建一个Integer对象(废弃)Integeri2=newInteger("100");//Integeri2=newInteger("美国广播公司");//数字格式异常ionSystem.out.println(i2);System.out.println("--------");//publicstaticIntegervalueOf(inti):返回一个代表指定int值的Integer实例Integeri3=Integer.valueOf(100);System.out.println(i3);//publicstaticIntegervalueOf(Strings):返回持有指定String值的Integer对象Integeri4=Integer.valueOf("100");System.out.println(i4);/*publicstaticstringtobinarystring(inti)获取二进制publicstaticstringtooctalstring(inti)获取八进制publicstaticstringtoHexstring(inti)获取十六进制publicstaticintparseInt(strings)会将字符串类型的整数转换为int类型的整数*///1。将整数转换为二进制、十六进制Stringstr1=Integer.toBinaryString(100);System.out.println(str1);//1100100//2.将整数转换为八进制Stringstr2=Integer.toOctalString(100);System.out.println(str2);//144//3.将整数转换为十六进制Stringstr3=Integer.toHexString(100);System.out.println(str3);//64//4.将string类型的整数转换为int类型的整数//强类型语言:java中每个数据都有自己的数据类型//计算时,如果不是同一数据类型,则不能直接计算inti=Integer.parseInt("123");System.out.println(i);System.out.println(i+1);//124//详情1://类型转换时,括号内的参数只能是数字,不能是其他,否则代码会报错//详情2://8个封装类中,除了Character,还有对应的parseXxx方法进行类型转换Stringstr="true";布尔b=Boolean.parseBoolean(str);System.out.println(b);1.3装箱和拆箱基本类型和对应的包装类对象来回转换的过程称为“装箱”和“拆箱”:Box:从原始类型转换为对应的包装类对象。拆箱:将包装类对象转换为对应的原始类型。以Integer和int为例:(只看懂代码)基本值---->包装对象Integeri=newInteger(4);//使用构造函数Integeriii=Integer.valueOf(4);//使用包装类中的valueOf方法来包装对象---->basicvalueintnum=i.intValue();1.4自动装箱和自动拆箱由于我们经常做基本类型和包装类之间的转换,从Java5(JDK1.5)开始,基本类型和包装类的装箱和拆箱动作可以自动完成。例如:整数i=4;//自动装箱。相当于Integeri=Integer.valueOf(4);i=i+5;//等号右边:??将第i个对象转为基础值(自动拆箱)i.intValue()+5;//加法运算完成后,再次装箱,转换将基本值转化为对象。1.5基本类型与字符串的转换基本类型到String的转换方法一:在数字后面直接加一个空字符串方法二:通过String类的静态方法valueOf()示例代码publicclassIntegerDemo{publicstaticvoidmain(String[]args){//int---Stringintnumber=100;//方法一Strings1=number+"";System.out.println(s1);//方法二//publicstaticStringvalueOf(inti)Strings2=String.valueOf(number);System.out.println(s2);System.out.println("--------");}}String转为基本类型除了Character类外,其他包装类都有parseXxx静态方法可以将字符串参数转为对应的基本类型:publicstaticbyteparseByte(Strings):将字符串参数转为对应的byte基本类型。publicstaticshortparseShort(Strings):将字符串参数转换为对应的short基本类型。publicstaticintparseInt(Strings):将字符串参数转换为对应的int基本类型。publicstaticlongparseLong(Strings):将字符串参数转换为对应的long基本类型。publicstaticfloatparseFloat(Strings):将字符串参数转换为对应的float基本类型。publicstaticdoubleparseDouble(Strings):将字符串参数转换为对应的double基本类型。publicstaticbooleanparseBoolean(Strings):将字符串参数转换为对应的boolean基本类型。代码使用(仅以Integer类的静态方法parseXxx为例)如:转换方法一:先将字符串数字转换成Integer,然后调用valueOf()方法方法二:使用Integer静态方法parseInt()转换示例代码publicclassIntegerDemo{publicstaticvoidmain(String[]args){//String---intStrings="100";//方法一:String---Integer---intIntegeri=Integer.valueOf(s);//publicintintValue()intx=i.intValue();System.out.println(x);//方法二//publicstaticintparseInt(Strings)inty=Integer.parseInt(s);System.out.println(y);}}注意:如果字符串参数的内容不能正确转换为对应的基本类型,会抛出java.lang.NumberFormatException。5.6底层原理建议:在获取Integer对象时,不要使用new,而是直接赋值或者静态方法valueOf,因为在实际开发中,-128到127之间的数据用的比较多。如果每次使用都是一个新的对象,那就是浪费内存。因此,预先为这个范围内的每个数据创建一个对象。如果你要使用它,你不会创建一个新的,而是返回已经创建的对象。//1。使用构造方法获取Integer对象(JDK5之前的方式)/*Integeri1=newInteger(1);整数i2=新整数(“1”);System.out.println(i1);系统。out.println(i2);*///2。使用静态方法获取Integer对象(JDK5之前的方式)Integeri3=Integer.valueOf(123);Integeri4=Integer.valueOf("123");Integeri5=Integer.valueOf("123",8);System.out.println(i3);System.out.println(i4);System.out.println(i5);//3.这两种方式获取对象的区别(掌握)//底层原理://因为在实际开发中,-128~127之间的数据用的比较多。//如果每次都使用一个新的对象,很浪费内存//所以,提前为这个范围内的每个数据创建一个对象//如果要使用,就不会创建一个新的,但是返回已经创建的对象。Integeri6=Integer.valueOf(127);Integeri7=Integer.valueOf(127);System.out.println(i6==i7);//trueIntegeri8=Integer.valueOf(128);Integeri9=Integer.valueOf(128);System.out.println(i8==i9);//false//因为看到了new关键字,在Java中,每一个new都会创建一个新对象//所以下面两个对象都是new的,和地址值不同。/*整数i10=新整数(127);Integeri11=newsubtitleInteger(127);System.out.println(i10==i11);整数i12=新整数(128);整数i13=新整数(128);System.out.println(i12==i13);*/本文参与SegmentFault思维面试突破挑战,欢迎正在阅读的你加入。

最新推荐
猜你喜欢