基本数据类型的包装类

Posted 小葱拌豆腐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基本数据类型的包装类相关的知识,希望对你有一定的参考价值。

/**
 *                     
 *   包装类/封装类:  把基本数据类型转换成对象!  
 *               每一个基本数据类型都有一个对应的包装类!都是位于java.lang包中!               
 *          作用: 提供我们操作的一系列方法!      
 *           例子:集合中能存放基本数据类型吗???不能! 必须是包装类! 
 *           
 *   基本数据类型                             包装类
 *   byte                Byte   
 *   short               Short  
 *   int                 Integer    
 *   long                Long   
 *   float               Float  
 *   double              Double 
 *   char                Character   
 *   boolean             Boolean 
 *                 
 */
public class BasisTest {

    @Test
    public  void  test01(){
        //所有的包装类都有将对应的基本数据类型作为参数!来构造实例!
         Integer  i=new Integer(1);
         Double   d=new Double(5);
         Boolean b=new Boolean(true);
         Character c=new Character(‘a‘);
    }
    
    
    @Test
    public  void  test02(){
        //除了Character类,其他所有的包装类都可以传一个字符串作为参数!
         Integer  i=new Integer("1");
         Double   d=new Double("5");
         Boolean b=new Boolean("true");
         //Character c=new Character("a");  编译报错
    }
    
    /*
     * Byte,Short,Integer,Float,Double,Long
     * 都继承了 Number这个父类
     * 当他们的参数是String来构造实例的时候  ,如果传递Null都抛出 NumberFormatException
     * 
     * Boolean    传Null是   能正常运行
     * Character  编译就报错了
     */
    @Test
    public  void  test03(){
        //Integer  i=new Integer(null);
        //Double   d=new Double(null);
        //Character c=new Character(null); 编译报错
        //在参数是String的类型时,除了 大小写的TRUE,其余的都是false
        Boolean b=new Boolean(null);
        System.out.println(b);
    }
    
    @Test
    public  void  test04(){
        String  num="12345a";
        System.out.println(num+1);  //123451  
        //使用Integer的paseInt(数值类型的String)
        System.out.println(Integer.parseInt(num)+1);
    }
    
    /*
     * valueOf() 只能传递可以转换成对应基本数据类型的值  
     * 除Character类外,其他包装类都有方法(字符串->包装类)
     */

    @Test
    public  void  test05(){
        Integer i=Integer.valueOf(20);  
        Integer a=Integer.valueOf("20"); 
        Integer b=Integer.valueOf("abc");  //NumberFormatException
        Integer c=Integer.valueOf("20.0");  //NumberFormatException
    }
    
    
    //基本数据类型和对应包装类之间的转换 我们称之为  装箱和拆箱操作
    @Test
    public  void  test06(){
        int a =5;
        Integer i=new Integer(a);   //相当于装箱
        a=i.intValue(); //相当于拆箱
        Integer b=5; //相当于装箱
        int  num=b;  //相当于拆箱
    }
    
    
    
    //所有的包装类 都有对应的方法叫做    包装类Value()  作用:转换成基本数据类型 (拆箱)
    @Test
    public  void  test07(){
        Double a=new Double(50);
        Double b=new Double(50.5);
        Double c=new Double("50.5");
        double d=c.doubleValue();  //转换成基本数据类型 
        System.out.println(d);
        Float f=new Float(58.0);
        float e=f.floatValue(); //转换成基本数据类型 
        Character t =new Character(‘a‘);
        System.out.println(t.charValue()+1);
        
        Boolean l=new Boolean("true");
        System.out.println(l.booleanValue());
    }
    
    
    @Test
    public  void  test08(){
        /*
         * 除了 Character之外 ,每个包装类都有对应的parse方法
         */
        System.out.println(Integer.parseInt("123"));
        System.out.println(Double.parseDouble("123"));
        System.out.println(Boolean.parseBoolean("123"));
        System.out.println(Long.parseLong("123"));
        /*int  n =null;   编译报错
        Integer an=null;*/
    }
    
    
    
    @Test
    public  void  test09(){
        Integer a=50;
        Integer b=new Integer(50);
        int     c=50;
        System.out.println(a==b);  //false
        System.out.println(c==b);  //true    基本数据类型和对应的包装类比较 都是true
        System.out.println(c==a);  //true
    }
    
    
    @Test
    public  void  test10(){
        /*Integer a=new Integer(50);
        Integer b=new Integer(50);
        System.out.println(a==b);  //false*/
    /*    Integer a=127;
        Integer b=127;
        System.out.println(a==b); //true*/    
    
        Integer a=128;  //底层 执行了  valueOf()   new  Integer(128)
        Integer b=128;
        System.out.println(a==b); //false
        
    }
    
    
    
    
    @Test
    public  void  test11(){
        System.out.println("向上取值:"+Math.ceil(50.1));
        System.out.println("向下取值:"+Math.floor(50.2));
        System.out.println("绝对值:"+Math.abs(-50));
        System.out.println("最大值:"+Math.max(50, 60));
        System.out.println("最小值:"+Math.min(50, 60));
        System.out.println("随机数:"+(int)(Math.random()*10));
        
        Random random=new Random();
        for (int i = 1; i <=100; i++) {
            System.out.println(random.nextInt());  //int值的区间
        }
        System.out.println("*********************");
        for (int i = 1; i <=100; i++) {
            System.out.println(random.nextInt(100));  //0-99  不包含100
        }
    }
    
    
    
    //随机数
    @Test
    public   void  test12(){
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入一个4位数字:");
        String num=scanner.next();
        //把String类型的num转换成int
        int realNum=Integer.parseInt(num);
        //获取百位
        int bai=realNum/100%10;
        Random random=new Random();
        //定义一个标记
        boolean flag=false;
        for (int i = 1; i <=100; i++) {
        int a=    random.nextInt(10);
        System.out.println("第"+i+"次的随机数:"+a);
            if (a==bai) {
                //找到了
                flag=true;
                break;
            }
        }
        if (flag) {
            System.out.println("中奖了");
        }else {
            System.out.println("下次努力...");
        }
    }
    
}

 

以上是关于基本数据类型的包装类的主要内容,如果未能解决你的问题,请参考以下文章

Java包装类之实体类不要使用基本类型

java中怎样把double基本数据类型包装在Double类

JAVA包装类介绍(包装类基本类型数据)

基本数据类型的包装类

从零开始的Java开发1-5-2 包装类与基本数据类型常用API基本数据类型与包装类字符串之间的转换包装类的初始值与比较对象常量池

基本类型对象包装类