每日一学(28)——(常用API)基本类型包装类

基本类型包装类概述

int对应的是Integer,char对应的Character,其他6个都是基本类型首字母大写即可

基本数据类型对象包装类特点:用于在基本数据和字符串之间进行转换。

将字符串转成基本类型:

1、static byte parseByte(String s) 将String参数解析为有符号的十进制 byte

2、static short parseShort(String s) 将String参数解析为有符号的十进制 short

3、static int parseInt(String s) 将String参数解析为有符号的十进制 整数

4、static float parseLong(String s) 将String参数解析为有符号的十进制 long

5、static long parseFloat(String s) 返回一个新的float值,该值被初始化为用指定String表示的值

6、static double parseDouble(String s) 返回一个新的double值,该值被初始化为用指定String表示的值

7、static boolean parseBoolean(String s) 将字符串参数解析为boolean值

parsexxx(String s)其中xxx表示基本类型,参数为可以转成基本类型的字符串,如果无法转,出现数字转换异常NumberFormatException

/*
   * Integer类中静态方法parseInt(String s)返回基本数据类型
   * 要求:字符串必须是数字格式的
   */
  public static void function(){
     int i=Integer.parseInt("-12");//还支持负数,但是不能有空格,输出-6
     System.out.println(i/2);

转换十进制的方法

/*
   * Integer类中静态方法parseInt(String s,int radix)
   * radix基数,进制
   * "110", 2含义:前面的数字是二进制的,但是方法parseInt运行结果都是十进制
   * 
   */
  public static void function1(){//110之中不能出现数字2
      int i=Integer.parseInt("110", 2);//("A",16)输出结果为10十六进制
      System.out.println(i); 

int转成字符串只要在后面加上“ ”(一个空格),就好,另外一种Integer类中静态方法toString()(StringBuffer之间的区别为这个是有参数的,那个是没有参数的) 

/*
   * 如何将基本数据类型int转变成字符串
   * int=>String  任何类型+""变成String类型
   * 另一种方法:Integer类中静态方法toString()
   * toString(int, int进制),将int整数,转成指定进制数
   */
  public static void function2(){
      int i=3;
      String s=3+"";
      System.out.println(s+1);
      String s1=Integer.toString(5);
      //String s1=Integer.toString(5,2);结果便是101
      //(5,2)可以随笔换,最高进制36,0-9十进制,A-Z 26进制10+20
      System.out.println(s1+1);
  }

将基本数值转成字符串有3种方式:

1、基本类型直接与””相连接即可;34+""

2、调用String的valueOf方法;String.valueOf(34)

3、调用包装类中的toString方法;Integer.toString(34)

基本类型和对象转换

基本类型——>包装对象

1、Integer ( int  value ) 构造一个新分配的Integer对象,他表示指定的int值

2、Integer(String  s)构造一个新分配的Integer对象,他表示String 参数所指示的int值

Integer i = new Integer(4);//使用构造函数函数

Integer ii = new Integer("4");//构造函数中可以传递一个数字字符串

3、static  Integer  valueOf ( int i) 返回一个表示指定的int 值得 Integer 实例

4、static  Integer  valueOf ( String i) 返回保存指定的String的值得 Integer 对象

Integer iii = Integer.valueOf(4);//使用包装类中的valueOf方法

Integer iiii = Integer.valueOf("4");//使用包装类中的valueOf方法

包装类——>基本数值

int  intValue()  以int 类型返回该Integer的值

int num = i.intValue();

 Integer类的构造方法:Integer(String s)

/*
   * Integer类的构造方法
   * Integer(String s)
   * 将数字格式的字符串,传递到Integer类的构造方法中
   * 创建Integer对象,包装的是一个字符串
   * 构造方法中的字符串,转成基本数据类型,调用方法,非静态的,intValue()
   */
  public static void function3(){
      Integer in=new Integer("100");
      int i=in.intValue();
      System.out.println(i);//--i输出的是99,i--输出的是100
  }

 Integer类的其他方法:三个方法和两个静态成员变量

静态成员变量

/*

  * Integer类的静态成员变量

  * MAX_VALUE

  * MIN_VALUE

  */

 public static void function(){

     System.out.println(Integer.MAX_VALUE);//输出2147483647

     System.out.println(Integer.MIN_VALUE);//输出-2147483648

     System.out.println(Long.MAX_VALUE);//输出9223372036854775807

     System.out.println(Long.MIN_VALUE);//输出-9223372036854775808

     System.out.println(Double.MAX_VALUE);//输出1.7976931348623157E308

     System.out.println(Double.MIN_VALUE);//输出4.9E-324

 }

三个方法:

/*

  * Integer类的3个静态方法

  * 做进制的转换

  * 十进制转成二进制 toBinarString(int)

  * 十进制转成八进制toOctalString(int)

  * 十进制转成十六进制toHexString(int)

  * 三个方法返回值都是以String形式出现

  */

 public static void function1(){

     System.out.println(Integer.toBinaryString(99));//输出结果为1100011

     System.out.println(Integer.toOctalString(99));//输出结果为143

     System.out.println(Integer.toHexString(999));//输出结果为3e7

}

 自动拆装箱:jdk1.5之后出现的

自动拆箱:对象转成基本数值

自动装箱:基本数值转成对象

Integer i = 4;//自动装箱。相当于Integer i = Integer.valueOf(4);

i = i + 5;//等号右边:将i对象转成基本数值(自动拆箱) i.intValue() + 5; 加法运算完成后,再次装箱,把基本数值转成对象。

//自动装箱和拆箱的弊端,会报空指针异常,如果想防止用if条件句让in !=null
 public static void function1(){
     Integer in=null;
     //in=null.intValue()+1
     in=in+1;
     System.out.println(in);
 }
 //自动装箱和自动拆箱的好处:基本类型和引用类型直接运算
 public static void function(){
     //引用类型,引用变量一定指向对象
     //自动装箱,基本数据类型1,直接变成了对象
     Integer in=1;//Integer in=new Integer(1)
     //in是引用类型,不能和基本类型运算,自动拆箱,引用类型in,转换基本类型
     
     //in+1 ==>in.inValue()+1 =2
     //in=2 自动装箱
     in=in +1;//输出结果为2
 }
}
/*
  ArrayList<Integer> ar=new ArrayList<Integer>();
  ar.add(1)
 */

自动装箱(byte常量池)细节的演示

当数值在byte范围之内时,进行自动装箱,不会新创建对象空间而是使用医来已有的空间。

//关于自动拆箱和装箱的一些题目
 public static void function3(){
     Integer i=new Integer(1);
     Integer j=new Integer(1);
     System.out.println(i==j);//==两边比较的就是对象地址值,返回false
     System.out.println(i.equals(j));//返回true,继承Object重写equals方法,比较对象数据
     System.out.println("------------------");
     Integer a=500;
     Integer b=500;
     System.out.println(a==b);//false
     System.out.println(a.equals(b));//true
     System.out.println("---------------------");
     Integer x = 127;
     Integer y = 127;
     //在jdk1.5自动装箱时,如果数值在byte范围(127)之内,不会新创建对象空间而是使用原来已有的空间。
     System.out.println(x==y); //true
     System.out.println(x.equals(y)); //true

 }

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值