zoukankan      html  css  js  c++  java
  • 10、匿名内部类、枚举类、日期、Math、Random、String、equals、StringBuffer、包装类、对象数组、克隆,标准输出2

    1、Math类(在java.lang包中)

      Math.abs()计算平均数

      Math.ceil()比浮点数大的最小整数值  6.5——>7  ,常用作分页

      Math.floor()比浮点数小的最大整数值   6.5——>6

      Math.power(2,3);  计算2的3次方

      Math.random();随机数生成器  随机返回一个大于等于0.0,小于等于1.0的浮点数

        随机数的公式:Math.round(Math.random()*(y-x))+x;(随机出x到y的整数)

      Math.round()只能四舍五入到整数位。

      Math.sqrt()开方

      

      引入大整数包:java.math.BigDecimal;

      BigDecimal d= new BigDecimal(9.33);

      System.out.println(d.setScale(2,BigDecimal.ROUND_HALF_UP));

      设置大整数,设置其精确度为0.01位,然后四舍五入

    2、random

      引入随机数类包:java.util.random;

      1、不使用种子:   

        Random r= new Random();

        System.out.println(r.nextInt(bound));——>可以生成随机整数,范围是bound

      2、使用种子:(种子数值无所谓)

        Random r= new Random(10);

        System.out.println(r.nextInt(bound));

        

        Random r1= new Random(10);

        System.out.println(r1.nextInt(bound));  

        相同的种子产生的随机数相同;

      

        汉字的随机生成

        Random r2=new Random();

        System.out.println((char)(r2.nextInt(10000)+20000));

    3、String类

      String对象代表一组不可改变的Unicode字符序列。当引起字符串的属性或长度改变的操作,将会得到一个复制了原对象中所需部分的新的String对象。 (副本)

      1、“字符串”.toCharArray();将字符串转换成字符数组

      2、字符连接:

        1、String a="a"+"b";(开了3个堆)

        2、String b="a".concat("b").concat("c");(开了两个堆)

        3、StringBuilder和StringBuffer类(用在多个字符串连接的场合,会产生好多无用堆,导致速度变慢,这两个解决,速度快)这两个类都在lang包中。

           1、StringBuffer

            优点:速度快   缺点:占内存

             StringBuffer sb=new StringBuffer();

             sb.append("你好");

             sb.append("哈尔滨");

             System.out.println(sb);

            System.out.println(sb.capacity());(开StringBuffer空间,初始16个汉字的大小,满了之后会扩展为(16+1)*2大小)

          这里打印sb对象就能出现一个字符串明显反映了StringBuffer中重写了toString方法

            sb.insert(index,"哈尔滨”);(在index位置上插入)

            sb.delete(1,2);(删除1,2之间的字符串)

            sb.reverse()://翻转字符

            sb.indexOf("哈");

            sb.replace(0,2,"黑龙江");  

      

          2、StringBuilder类

             StringBuffer用在线程同步中,比较安全,性能略差

             StringBuilder不用再线程同步中,不安全,性能好

             其他两者一样。

        工作中遇到StringBuffer的地方很少,大多使用StringBuilder,StringBuilder的性能损失已经很少了

       3、将基本类型转换成字符串

            String s=String.valueOf(123);

           

       4、比较:使用equals()方法可以比较两个字符串,还可以使用equalsIgnoreCase()方法在忽略大小写的情况下看是否相同。

          String a="哈尔滨";

          String b="哈尔滨";

          a==b;

          当字符串内容相等时,a、b两个栈指向同一个堆,所以栈的内容都是同一个堆的地址。

          当要看两个堆内容是否相等时,使用equals();

           a.equals(b);

        能保持==(地址相同,堆就是同一个)的一定equals(同堆内容同),但是equals的不一定==;

        compareTo:比较一个String对象与另一个对象的词汇值,"abc".compareTo("def");得-3;即长度相同,按首个不同的字符进行减;长度不同,比长度。

       5、查找

          能不能查到:前缀查找:startwith()  后缀查找:endwith()

          查找字符在字符串中的位置:indexof(str,fromindex)     /  lastIndexOf(str,fromindex)从后面找,从前面数。

       6、编辑

          trim

          去掉左右空格;rtrim()去掉右空格,ltrim()去掉左空格;

          toUpperCase()  toLowerCase()转大写小写

       7、分割(split(regex)返回一个字符数组)

          String s2="a=100";

          String [] as=s2.split("=");

          as[0]=a;

          as[1]=100;

       8、重写equals

        

    @Override
        public boolean equals(Object obj) {
            if(obj==null){
                return false;
            }
            if(this==obj){
                return true;
            }
            if(this.getClass()!=obj.getClass()){
                return false;
            }
            MyDog dog=(MyDog)obj;
            if(this.year==dog.year&&this.name.equals(dog.name)){
                return true;
            }
            return false;
            
        }

      除了在HashTable、HashMap、HashSet等hash结构的集合时才会重写hashCode不然不重写

    4、包装类

      包装类父类是Number类,基本类型没父类

    包装类相当于基本类型和引用类型的交流的媒介。起到承上启下作用。

    1、将基本类型变成字符串(装箱)——>用String.valueOf可以将基本类型变成字符串  或  Integer data1=10;基本类型变包装类

    2、将字符串变成基本类型(拆箱)——>用包装类Interger.parseInt(s1);

    5、对象数组

      存放对象的数组,也可以排序(Arrays.sort())但是得先让对象的类实现Comparable接口,重写compareto方法。

      可以二分查找:Arrays.binarySearch(array[],key);

    6、标准输出

      print()方法会将它的参数放到标准输出中 

      println()方法会附加一个换行符

      printf()方法能够格式化输出

        %9.2  9是一共9位,2是小数点后两位进位

        %+9.2   +表示带正负号

        %-9.2  -表示左对齐

        

  • 相关阅读:
    减少.NET应用程序内存占用的一则实践
    ASP.NET中检测图片真实否防范病毒上传
    PHP、Python 相关正则函数实例
    利用脚本将java回归到面向函数式编程
    ASP.Net 实现伪静态方法及意义
    ExecuteNonQuery()方法
    在.net中使用split方法!
    str.split()如何用?谢谢
    输出货币型
    (DataRowView)e.Item.DataItem只有在ItemDataBound这个事件中起效
  • 原文地址:https://www.cnblogs.com/television/p/8413008.html
Copyright © 2011-2022 走看看