zoukankan      html  css  js  c++  java
  • 基本数据类型的包装类和随机数

    public class BasisTest {
    
        /**
         *  封装类/包装类 :  把 基本数据类型转换成对象!
         * 
         *  基本数据类型               包装类
         *  byte           Byte
         *  short          Short
         *  int            Integer
         *  long           Long
         *  float          Float
         *  double         Double
         *  char           Character
         *  boolean        Boolean
         *  
         *  使用我们的封装类 ,就可以使用类中对应的方法
         *  集合中在存储基本数据类型时!只能存放封装类!
         */
    
        // 所有的封装类 都有将对应的基本数据类型作为参数的方法 来构造实例
        @Test
        public void test01() {
            /**
             * 除了Character来构造实例的时候,没有String类型的参数!
             * Float有三个实例化构造方法  分别是  传递 double  float  String
             */
            Byte a = new Byte((byte) 1);
            Short s = new Short((short) 1);
            Integer b = new Integer(5);
            Long l = new Long(1);
            Float f = new Float(2);
            Double c = new Double(5);
            // 上面的六个封装类都继承了Number
            Boolean boolean1 = new Boolean(true);
            Character character1 = new Character((char) 1);
            Character character2 = new Character('1');
        }
    
        /**
         * 六个封装类继承了Number
         * 用String来构造实例的时候,String中存放的必须是数值类型的字符串
         */
        @Test
        public void test02() {
            Byte a = new Byte("1");
            Short s = new Short("1");
            Integer b = new Integer("1");
            Long l = new Long("1");
            Float f = new Float("1");
            Double c = new Double("1");
            // 除了大小写的true 其它都返回false
            Boolean boolean1 = new Boolean("");
            System.out.println(boolean1);
            // 编译报错 Character character1 = new Character("1");
        }
    
        @Test
        public void test03() {
            System.out.println(Integer.toBinaryString(28)); // 转换成2进制
            System.out.println(Integer.toHexString(28)); // 转换成16进制
            System.out.println(Integer.toOctalString(28)); // 转换成8进制
        }
    
        /**
         * 六个封装类继承了Number,只要不是传递 字符串类型的数值
         * 都会抛出NunberFormatException
         */
        @Test
        public void test04() {
            // Integer integer = new Integer(null);
            double a = 1;
            System.out.println(a);
            Double double1 = new Double(1);
            System.out.println(double1);
        }
    
        /**
         * 
         *除了Character,都有对应的parse的方法
         */
        @Test
        public void test05() {
            Integer integer = new Integer(5);
            //第一个参数是对应进制的写法
            System.out.println(integer.parseInt("11011", 2));
            /**    String num = "27";
                System.out.println(Integer.parseInt(num) + 1);
    
                Double.parseDouble("20");
                Byte.parseByte("1");
                Short.parseShort("1");
    
                System.out.println(1 + 1 + "2"); // 22
                System.out.println("1" + (1 + 2)); // 13
            */
        }
    
        /**
         * valueOf 
         * 把基本数据类型转换成对应的封装类
         * 除了Character没有传递String类型的参数
         * 
         * xxxValue
         * 把xxx类型转换成xxx对应的基本数据类型
         */
        @Test
        public void test06() {
    
            // 基本数据类型和对应封装类之间的转换 我们称之为 装箱和拆箱操作
            int a = 5;
            Integer integer = Integer.valueOf(a);
            integer.intValue();
    
            Double double1 = Double.valueOf(20);
            double1.doubleValue();
    
            Character character = Character.valueOf('a');
            character.charValue();
        }
    
        @Test
        public void test07() {
            Integer a = new Integer(1);
            Integer b = new Integer(1);
            int c = 1;
            System.out.println(a == b); // false 都是new出来的对象
            System.out.println(a == c);
        }
    
        @Test
        public void test08() {
            /**
             *底层默认执行了valueOf() 
             *如果值在  -128到127 之间  则不会new对象
             *否则 会new出来新的对象
             */
            Integer a = 128;
            Integer b = 128;
            System.out.println(a == b); // false
        }
    
    }
    @Test
        public void testMath() {
            System.out.println("向上取值:" + Math.ceil(50.1));
            System.out.println("向下取值:" + Math.floor(50.9));
            System.out.println("绝对值:" + Math.abs(-50.9));
            System.out.println("最大值:" + Math.max(50, 60));
            System.out.println("最小值:" + Math.min(50, 60));
            System.out.println("随机数:" + (int) (Math.random() * 10));
            // 之前使用的Math.random() 其实是调用了Random.nextDouble();
        }
    
        @Test
        public void testRandom() {
            Random random = new Random();
            for (int i = 0; i < 100; i++) {
                // System.out.println(random.nextBoolean()); 随机boolean类型的值
                // System.out.println(random.nextDouble()); 0-1之间
                // System.out.println(random.nextInt()); int取值范围
                System.out.println(random.nextInt(10)); // 参数的范围 但是不包含本身 参数必须大于0
            }
        }
    //随机数
        @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("下次努力...");
            }
        }
        
    }
  • 相关阅读:
    python 安装与pip安装
    使用通配符来解决数据1和11、12/13/14的问题
    数据库中一行变多行,拆分数据
    15-哈希表 HashTable
    13-自平衡二分搜索树 AVLTree
    12-并查集 UnionFind
    11-字典树 Trie
    10-线段树 Segment Tree
    09-堆 Heap(最大堆)
    08-映射 Map
  • 原文地址:https://www.cnblogs.com/xtdxs/p/7093914.html
Copyright © 2011-2022 走看看