一、Java Number&Math类

1.Number类:包装类Integer、Long、Byte、Double、Float、Short等都是抽象类Number的子类。

2.Math类:Java的Math包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数等。Math的方法都被定义为static形式,通过Math类可以在主函数中直接调用。

public class Test6 {
  public static void main(String[] args) {
    double[] nums = { 1.4, 1.5, 1.6, -1.4, -1.5, -1.6 };
    for (double num : nums) {
      test(num);
    }
  }

  private static void test(double num) {
    //floor()返回小于等于当前值的最小整数   
    System.out.println("Math.floor(" + num + ")=" + Math.floor(num));
    //1.0;1.0;1.0;-2.0;-2.0;-2.0
    //round()返回当前值四舍五入后的值   
    System.out.println("Math.round(" + num + ")=" + Math.round(num));
    //1;2;2;-1;-1;-2
    /*为什么-1.5的四舍五入值为-1呢?
      因为小于等于4被舍弃,大于5被保留,而5位于大数与小数的中间,取大数。
    */
    //ceil()返回大于等于当前值的最小整数   
    System.out.println("Math.ceil(" + num + ")=" + Math.ceil(num));
    //2.0;2.0;2.0;-1.0;-1.0;-1.0   
  }
}

二、Java Character类

Character类用于对单个字符的操作,Character类在对象中包装一个基本类型char的值。

public class CharacterTest{
    public static void main(String[] args){
        char x='g';
        System.out.println("x是否是一个字母?"+Character.isLetter(x));
        System.out.println("x是否是一个数字字符?"+Character.isDigit(x));
        System.out.println("x是否是一个空白字符?"+Character.isWhitespace(x));
        System.out.println("x是否是大写字母?"+Character.isUpperCase(x));
    }
}

三、Java String类

        在Java中字符串属于对象,Java提供类String类来创建和操作字符串。String创建的字符串存储在公共池中,而new创建的字符串对象在堆上。

public class StringTest{
    public static void main(String args[]){
        char[] helloArray = {'r','u','n','o','o','b'};
        String helloString = new String(helloArray); //helloString变量被创建在堆
上
        System.out.println(helloString);
        //String类的访问器方法length()方法,返回字符串包含对象的字符数
        String site = "www.runoob.com";//site变量创建在公共池
        int len = site.length();
        System.out.println("菜鸟教程网址长度:"+len);
        String str1 = "菜鸟教程的网址是:";
        String str2 = str1.concat(site);//拼接字符串的方法(用+号连接若干个字符>串)
        System.out.println(str2);
    }
}

四、Java StringBuffer 和 StringBuilder类

对字符串进行修改时,需要使用StringBuffer和StringBuilder类。与String类的区别是:StringBuffer与StringBuilder类的对象能够被多次修改,并且不产生新的未使用对象。

StringBuffer类在使用时,每次都会对StringBuffer对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。StringBuilder 类和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。但由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。

注:在应用程序要求线程安全的情况下,必须使用StringBuffer类。