一、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类。